/** handles requests for the netStatsTable table */ int netStatsTable_handler(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { netsnmp_request_info *request; netsnmp_table_request_info *table_info; netsnmp_variable_list *requestvb; struct netStatsTable_entry *table_entry; DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler\n")); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { requestvb = request->requestvb; table_entry = (struct netStatsTable_entry *) netsnmp_extract_iterator_context(request); table_info = netsnmp_extract_table_info(request); switch (table_info->colnum) { case COLUMN_NETSTATSINDEX: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSINDEX\n")); snmp_set_var_typed_value(request->requestvb, ASN_INTEGER, (const u_char *) &table_entry->netStatsIndex, sizeof(table_entry->netStatsIndex)); break; case COLUMN_NETSTATSRXERRORS: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSRXERRORS\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsRxErrors, sizeof(table_entry->netStatsRxErrors)); break; case COLUMN_NETSTATSTXERRORS: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSTXERRORS\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsTxErrors, sizeof(table_entry->netStatsTxErrors)); break; case COLUMN_NETSTATSRXDROPPED: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSRXDROPPED\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsRxDropped, sizeof(table_entry->netStatsRxDropped)); break; case COLUMN_NETSTATSTXDROPPED: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSTXDROPPED\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsTxDropped, sizeof(table_entry->netStatsTxDropped)); break; case COLUMN_NETSTATSTXLOWPRIORDROPPED: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSTXLOWPRIORDROPPED\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsTxLowPriorDropped, sizeof(table_entry->netStatsTxLowPriorDropped)); break; case COLUMN_NETSTATSRXPACKETS: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSRXPACKETS\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsRxPackets, sizeof(table_entry->netStatsRxPackets)); break; case COLUMN_NETSTATSTXPACKETS: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSTXPACKETS\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsTxPackets, sizeof(table_entry->netStatsTxPackets)); break; case COLUMN_NETSTATSRXBYTES: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSRXBYTES\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsRxBytes, sizeof(table_entry->netStatsRxBytes)); break; case COLUMN_NETSTATSTXBYTES: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSTXBYTES\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsTxBytes, sizeof(table_entry->netStatsTxBytes)); break; case COLUMN_NETSTATSHEADCOMPRXCMDUNKNOWN: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPRXCMDUNKNOWN\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompRxCmdUnknown, sizeof(table_entry->netStatsHeadCompRxCmdUnknown)); break; case COLUMN_NETSTATSHEADCOMPTXCMD: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPTXCMD\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompTxCmd, sizeof(table_entry->netStatsHeadCompTxCmd)); break; case COLUMN_NETSTATSHEADCOMPTXCMDADDREQ: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPTXCMDADDREQ\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompTxCmdAddReq, sizeof(table_entry->netStatsHeadCompTxCmdAddReq)); break; case COLUMN_NETSTATSHEADCOMPTXCMDFAILED: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPTXCMDFAILED\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompTxCmdFailed, sizeof(table_entry->netStatsHeadCompTxCmdFailed)); break; case COLUMN_NETSTATSHEADCOMPRXCMDADDREQ: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPRXCMDADDREQ\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompRxCmdAddReq, sizeof(table_entry->netStatsHeadCompRxCmdAddReq)); break; case COLUMN_NETSTATSHEADCOMPRXCMD: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPRXCMD\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompRxCmd, sizeof(table_entry->netStatsHeadCompRxCmd)); break; case COLUMN_NETSTATSHEADCOMPTXPKTS: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPTXPKTS\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompTxPkts, sizeof(table_entry->netStatsHeadCompTxPkts)); break; case COLUMN_NETSTATSHEADCOMPTXPKTSUDP: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPTXPKTSUDP\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompTxPktsUdp, sizeof(table_entry->netStatsHeadCompTxPktsUdp)); break; case COLUMN_NETSTATSHEADCOMPRXPKTS: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPRXPKTS\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompRxPkts, sizeof(table_entry->netStatsHeadCompRxPkts)); break; case COLUMN_NETSTATSHEADCOMPRXERR: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPRXERR\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompRxErr, sizeof(table_entry->netStatsHeadCompRxErr)); break; case COLUMN_NETSTATSHEADCOMPRXSIDUNKNOWN: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSHEADCOMPRXSIDUNKNOWN\n")); snmp_set_var_typed_value(request->requestvb, ASN_COUNTER, (const u_char *) &table_entry->netStatsHeadCompRxSidUnknown, sizeof(table_entry->netStatsHeadCompRxSidUnknown)); break; case COLUMN_NETSTATSDROPPEDHIGH: DEBUGMSGTL(("sdslcMIB", "netStatsTable_handler() -> GET COLUMN_NETSTATSDROPPEDHIGH\n")); snmp_set_var_typed_value(request->requestvb, ASN_INTEGER, (const u_char *) &table_entry->netStatsDroppedFreqHigh, sizeof(table_entry->netStatsDroppedFreqHigh)); break; } } break; } return SNMP_ERR_NOERROR; }