/*
 * Note: this file originally auto-generated by mib2c using
 *  : generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
 *
 * $Id:ipv6ScopeZoneIndexTable_enums.h 14170 2007-04-29 00:12:32Z varun_c$
 */
#ifndef IPV6SCOPEZONEINDEXTABLE_ENUMS_H
#define IPV6SCOPEZONEINDEXTABLE_ENUMS_H

#ifdef __cplusplus
extern          "C" {
#endif

    /*
     * NOTES on enums
     * ==============
     *
     * Value Mapping
     * -------------
     * If the values for your data type don't exactly match the
     * possible values defined by the mib, you should map them
     * below. For example, a boolean flag (1/0) is usually represented
     * as a TruthValue in a MIB, which maps to the values (1/2).
     *
     */
/*************************************************************************
 *************************************************************************
 *
 * enum definitions for table ipv6ScopeZoneIndexTable
 *
 *************************************************************************
 *************************************************************************/



#ifdef __cplusplus
}
#endif
#endif                          /* IPV6SCOPEZONEINDEXTABLE_ENUMS_H */
