/* This file was generated by mib2c and is intended for use as a mib module for the ucd-snmp snmpd agent. */ /* This should always be included first before anything else */ #include /* minimal include directives */ #include "mibincl.h" #include "util_funcs.h" #include "diffServMib.h" /* * diffServMib_variables_oid: * this is the top level oid that we want to register under. This * is essentially a prefix, with the suffix appearing in the * variable below. */ oid diffServMib_variables_oid[] = { 1,3,6,1,2,1,12345 }; /* * variable4 diffServMib_variables: * this variable defines function callbacks and type return information * for the diffServMib mib section */ struct variable4 diffServMib_variables[] = { /* magic number , variable type , ro/rw , callback fn , L, oidsuffix */ { DIFFSERVCLASSIFIERUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,1 } }, { DIFFSERVSIXTUPLECLFRUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,2 } }, { DIFFSERVMETERUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,3 } }, { DIFFSERVACTIONUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,4 } }, { DIFFSERVALGDROPUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,7 } }, { DIFFSERVQUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,8 } }, { DIFFSERVSCHEDULERUNIQUE, ASN_INTEGER , RWRITE, var_diffServMib, 2, { 1,9 } }, { DIFFSERVCLASSIFIERIFDIRECTION, ASN_INTEGER , RONLY, var_diffServClassifierTable, 4, { 2,1,1,1 } }, { DIFFSERVCLASSIFIERID, ASN_INTEGER , RONLY, var_diffServClassifierTable, 4, { 2,1,1,3 } }, { DIFFSERVCLASSIFIERFILTER, ASN_OBJECT_ID , RWRITE, var_diffServClassifierTable, 4, { 2,1,1,4 } }, { DIFFSERVCLASSIFIERNEXT, ASN_OBJECT_ID , RWRITE, var_diffServClassifierTable, 4, { 2,1,1,5 } }, { DIFFSERVCLASSIFIERPRECEDENCE, ASN_GAUGE , RWRITE, var_diffServClassifierTable, 4, { 2,1,1,6 } }, { DIFFSERVCLASSIFIERSTATUS, ASN_INTEGER , RWRITE, var_diffServClassifierTable, 4, { 2,1,1,7 } }, { DIFFSERVCLASSIFIERIFINDEX, ASN_INTEGER , RONLY, var_diffServClassifierTable, 4, { 2,1,1,8 } }, { DIFFSERVSIXTUPLECLFRID, ASN_INTEGER , RONLY, var_diffServSixTupleClfrTable, 4, { 2,2,1,1 } }, { DIFFSERVSIXTUPLECLFRDSTADDRTYPE, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,2 } }, { DIFFSERVSIXTUPLECLFRDSTADDR, ASN_OCTET_STR , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,3 } }, { DIFFSERVSIXTUPLECLFRDSTADDRMASK, ASN_GAUGE , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,4 } }, { DIFFSERVSIXTUPLECLFRSRCADDRTYPE, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,5 } }, { DIFFSERVSIXTUPLECLFRSRCADDR, ASN_OCTET_STR , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,6 } }, { DIFFSERVSIXTUPLECLFRSRCADDRMASK, ASN_GAUGE , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,7 } }, { DIFFSERVSIXTUPLECLFRDSCP, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,8 } }, { DIFFSERVSIXTUPLECLFRPROTOCOL, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,9 } }, { DIFFSERVSIXTUPLECLFRDSTL4PORTMIN, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,10 } }, { DIFFSERVSIXTUPLECLFRDSTL4PORTMAX, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,11 } }, { DIFFSERVSIXTUPLECLFRSRCL4PORTMIN, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,12 } }, { DIFFSERVSIXTUPLECLFRSRCL4PORTMAX, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,13 } }, { DIFFSERVSIXTUPLECLFRSTATUS, ASN_INTEGER , RWRITE, var_diffServSixTupleClfrTable, 4, { 2,2,1,14 } }, { DIFFSERVMETERID, ASN_INTEGER , RONLY, var_diffServMeterTable, 4, { 2,3,1,2 } }, { DIFFSERVMETERSUCCEEDNEXT, ASN_OBJECT_ID , RWRITE, var_diffServMeterTable, 4, { 2,3,1,3 } }, { DIFFSERVMETERFAILNEXT, ASN_OBJECT_ID , RWRITE, var_diffServMeterTable, 4, { 2,3,1,4 } }, { DIFFSERVMETERSPECIFIC, ASN_OBJECT_ID , RWRITE, var_diffServMeterTable, 4, { 2,3,1,5 } }, { DIFFSERVMETERSTATUS , ASN_INTEGER , RWRITE, var_diffServMeterTable, 4, { 2,3,1,6 } }, { DIFFSERVTBMETERRATE , ASN_GAUGE , RWRITE, var_diffServTBMeterTable, 4, { 2,4,1,1 } }, { DIFFSERVTBMETERBURSTSIZE, ASN_INTEGER , RWRITE, var_diffServTBMeterTable, 4, { 2,4,1,2 } }, { DIFFSERVTBMETERSTATUS, ASN_INTEGER , RWRITE, var_diffServTBMeterTable, 4, { 2,4,1,3 } }, { DIFFSERVTBMETERID, ASN_INTEGER , RONLY, var_diffServTBMeterTable, 4, { 2,4,1,4 } }, { DIFFSERVACTIONID , ASN_INTEGER , RONLY, var_diffServActionTable, 4, { 2,5,1,2 } }, { DIFFSERVACTIONNEXT , ASN_OBJECT_ID , RWRITE, var_diffServActionTable, 4, { 2,5,1,3 } }, { DIFFSERVACTIONSPECIFIC, ASN_OBJECT_ID , RWRITE, var_diffServActionTable, 4, { 2,5,1,4 } }, { DIFFSERVACTIONSTATUS, ASN_INTEGER , RWRITE, var_diffServActionTable, 4, { 2,5,1,5 } }, { DIFFSERVDSCPMARKACTDSCP, ASN_INTEGER , RONLY , var_diffServDscpMarkActTable, 4, { 2,6,1,1 } }, { DIFFSERVDSCPMARKACTID, ASN_INTEGER , RONLY , var_diffServDscpMarkActTable, 4, { 2,6,1,2 } }, { DIFFSERVCOUNTACTOCTETS, ASN_COUNTER , RONLY , var_diffServCountActTable, 4, { 2,7,1,1 } }, { DIFFSERVCOUNTACTHCOCTETS, ASN_COUNTER64 , RONLY , var_diffServCountActTable, 4, { 2,7,1,2 } }, { DIFFSERVCOUNTACTPKTS, ASN_COUNTER , RONLY , var_diffServCountActTable, 4, { 2,7,1,3 } }, { DIFFSERVCOUNTACTHCPKTS, ASN_COUNTER64 , RONLY , var_diffServCountActTable, 4, { 2,7,1,4 } }, { DIFFSERVCOUNTACTSTATUS, ASN_INTEGER , RWRITE, var_diffServCountActTable, 4, { 2,7,1,5 } }, { DIFFSERVCOUNTACTID, ASN_INTEGER , RONLY, var_diffServCountActTable, 4, { 2,7,1,6 } }, { DIFFSERVALGDROPID , ASN_INTEGER , RONLY, var_diffServAlgDropTable, 4, { 2,8,1,2 } }, { DIFFSERVALGDROPTYPE , ASN_INTEGER , RWRITE, var_diffServAlgDropTable, 4, { 2,8,1,3 } }, { DIFFSERVALGDROPNEXT , ASN_OBJECT_ID , RWRITE, var_diffServAlgDropTable, 4, { 2,8,1,4 } }, { DIFFSERVALGDROPQMEASURE, ASN_OBJECT_ID , RWRITE, var_diffServAlgDropTable, 4, { 2,8,1,5 } }, { DIFFSERVALGDROPQTHRESHOLD, ASN_GAUGE , RWRITE, var_diffServAlgDropTable, 4, { 2,8,1,6 } }, { DIFFSERVALGDROPSPECIFIC, ASN_OBJECT_ID , RWRITE, var_diffServAlgDropTable, 4, { 2,8,1,7 } }, { DIFFSERVALGDROPOCTETS, ASN_COUNTER , RONLY , var_diffServAlgDropTable, 4, { 2,8,1,8 } }, { DIFFSERVALGDROPHCOCTETS, ASN_COUNTER64 , RONLY , var_diffServAlgDropTable, 4, { 2,8,1,9 } }, { DIFFSERVALGDROPPKTS , ASN_COUNTER , RONLY , var_diffServAlgDropTable, 4, { 2,8,1,10 } }, { DIFFSERVALGDROPHCPKTS, ASN_COUNTER64 , RONLY , var_diffServAlgDropTable, 4, { 2,8,1,11 } }, { DIFFSERVALGDROPSTATUS, ASN_INTEGER , RWRITE, var_diffServAlgDropTable, 4, { 2,8,1,12 } }, { DIFFSERVQID , ASN_INTEGER , RONLY, var_diffServQTable, 4, { 2,9,1,2 } }, { DIFFSERVQNEXT , ASN_OBJECT_ID , RWRITE, var_diffServQTable, 4, { 2,9,1,3 } }, { DIFFSERVQPRIORITY , ASN_GAUGE , RWRITE, var_diffServQTable, 4, { 2,9,1,4 } }, { DIFFSERVQMINRATEABS , ASN_GAUGE , RWRITE, var_diffServQTable, 4, { 2,9,1,5 } }, { DIFFSERVQMINRATEREL , ASN_GAUGE , RWRITE, var_diffServQTable, 4, { 2,9,1,6 } }, { DIFFSERVQMAXRATEABS , ASN_GAUGE , RWRITE, var_diffServQTable, 4, { 2,9,1,7 } }, { DIFFSERVQMAXRATEREL , ASN_GAUGE , RWRITE, var_diffServQTable, 4, { 2,9,1,8 } }, { DIFFSERVQSTATUS , ASN_INTEGER , RWRITE, var_diffServQTable, 4, { 2,9,1,9 } }, { DIFFSERVSCHEDULERID, ASN_INTEGER , RONLY, var_diffServSchedulerTable, 4, { 2,10,1,2 } }, { DIFFSERVSCHEDULERMETHOD, ASN_INTEGER , RWRITE, var_diffServSchedulerTable, 4, { 2,10,1,3 } }, { DIFFSERVSCHEDULERNEXT, ASN_OBJECT_ID , RWRITE, var_diffServSchedulerTable, 4, { 2,10,1,4 } }, { DIFFSERVSCHEDULERSTATUS, ASN_INTEGER , RWRITE, var_diffServSchedulerTable, 4, { 2,10,1,5 } }, { DIFFSERVSTATISTICSID, ASN_INTEGER , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,1 } }, { DIFFSERVSTATISTICSBYTES, ASN_COUNTER , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,2 } }, { DIFFSERVSTATISTICSPACKETS, ASN_COUNTER , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,3 } }, { DIFFSERVSTATISTICSDROPS, ASN_COUNTER , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,4 } }, { DIFFSERVSTATISTICSOVERLIMITS, ASN_COUNTER , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,5 } }, { DIFFSERVSTATISTICSBPS, ASN_GAUGE , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,6 } }, { DIFFSERVSTATISTICSPPS, ASN_GAUGE , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,7 } }, { DIFFSERVSTATISTICSQLEN, ASN_GAUGE , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,8 } }, { DIFFSERVSTATISTICSBACKLOG, ASN_GAUGE , RONLY, var_diffServStatisticsTable, 4, { 2,11,1,9 } }, { DIFFSERVSTATISTICSSTATUS, ASN_INTEGER , RWRITE, var_diffServStatisticsTable, 4, { 2,11,1,10 } } }; /* (L = length of the oidsuffix) */ /* * init_diffServMib(): * Initialization routine. This is called when the agent starts up. * At a minimum, registration of your variables should take place here. */ void init_diffServMib(void) { /* register ourselves with the agent to handle our mib tree */ REGISTER_MIB("diffServMib", diffServMib_variables, variable4, diffServMib_variables_oid); /* place any other initialization junk you need here */ init_diffserv(); } /* * var_diffServMib(): * This function is called every time the agent gets a request for * a scalar variable that might be found within your mib section * registered above. It is up to you to do the right thing and * return the correct value. * You should also correct the value of "var_len" if necessary. * * Please see the documentation for more information about writing * module extensions, and check out the examples in the examples * and mibII directories. */ unsigned char * var_diffServMib(struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { /* variables we may use later */ static long long_ret; static unsigned char string[SPRINT_MAX_LEN]; static oid objid[MAX_OID_LEN]; static struct counter64 c64; if (header_generic(vp,name,length,exact,var_len,write_method) == MATCH_FAILED ) return NULL; /* * this is where we do the value assignments for the mib results. */ switch(vp->magic) { case DIFFSERVCLASSIFIERUNIQUE: *write_method = write_diffServClassifierUnique; long_ret = 0; return (unsigned char *) &long_ret; case DIFFSERVSIXTUPLECLFRUNIQUE: *write_method = write_diffServSixTupleClfrUnique; long_ret = 0; return (unsigned char *) &long_ret; case DIFFSERVMETERUNIQUE: *write_method = write_diffServMeterUnique; long_ret = 0; return (unsigned char *) &long_ret; case DIFFSERVACTIONUNIQUE: *write_method = write_diffServActionUnique; long_ret = 0; return (unsigned char *) &long_ret; case DIFFSERVALGDROPUNIQUE: *write_method = write_diffServAlgDropUnique; long_ret = 0; return (unsigned char *) &long_ret; case DIFFSERVQUNIQUE: *write_method = write_diffServQUnique; long_ret = 0; return (unsigned char *) &long_ret; case DIFFSERVSCHEDULERUNIQUE: *write_method = write_diffServSchedulerUnique; long_ret = 0; return (unsigned char *) &long_ret; default: ERROR_MSG(""); } return NULL; } int write_diffServClassifierUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServClassifierUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServClassifierUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; } int write_diffServSixTupleClfrUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServSixTupleClfrUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServSixTupleClfrUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; } int write_diffServMeterUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServMeterUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServMeterUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; } int write_diffServActionUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServActionUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServActionUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; } int write_diffServAlgDropUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServAlgDropUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServAlgDropUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; } int write_diffServQUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServQUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServQUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; } int write_diffServSchedulerUnique(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len) { static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to diffServSchedulerUnique not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to diffServSchedulerUnique: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR; }