
/*
 * This file was generated by mib2c and is intended for use as a mib module
 * for the ucd-snmp snmpd agent. 
 */

#ifndef _MIBGROUP_SNMPMPDSTATS_H
#define _MIBGROUP_SNMPMPDSTATS_H

/*
 * we use header_generic from the util_funcs module 
 */

config_require(util_funcs/header_generic)
config_exclude(snmpv3/snmpMPDStats_5_5)
config_add_mib(SNMP-MPD-MIB)

    /*
     * Magic number definitions: 
     */
#define   SNMPUNKNOWNSECURITYMODELS  0
#define   SNMPINVALIDMSGS            1
#define   SNMPUNKNOWNPDUHANDLERS     2
    /*
     * function definitions 
     */
     void            init_snmpMPDStats(void);
     extern FindVarMethod var_snmpMPDStats;

#endif                          /* _MIBGROUP_SNMPMPDSTATS_H */
