/* * Note: this file originally auto-generated by mib2c using * : mib2c.scalar.conf 11805 2005-01-07 09:37:18Z dts12 $ */ #include #include #include #include "mirror-mib.h" #include "mirror-nl-glue.h" void init_mirror_mib(void) { static oid cogentBytes_oid[] = { 1, 3, 6, 1, 4, 1, 27934, 2, 2, 1 }; static oid orionBytes_oid[] = { 1, 3, 6, 1, 4, 1, 27934, 2, 2, 2 }; static oid campusBytes_oid[] = { 1, 3, 6, 1, 4, 1, 27934, 2, 2, 3 }; DEBUGMSGTL(("mirror_mib", "Initializing\n")); mirror_stats_initialize(); netsnmp_register_scalar(netsnmp_create_handler_registration ("cogentBytes", handle_cogentBytes, cogentBytes_oid, OID_LENGTH(cogentBytes_oid), HANDLER_CAN_RONLY)); netsnmp_register_scalar(netsnmp_create_handler_registration ("orionBytes", handle_orionBytes, orionBytes_oid, OID_LENGTH(orionBytes_oid), HANDLER_CAN_RONLY)); netsnmp_register_scalar(netsnmp_create_handler_registration ("campusBytes", handle_campusBytes, campusBytes_oid, OID_LENGTH(campusBytes_oid), HANDLER_CAN_RONLY)); } void explode_counter64(uint64_t num, struct counter64 *counter) { counter->low = num & 0xFFFFFFFF; counter->high = (num >> 32) & 0xFFFFFFFF; } int handle_cogentBytes(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { struct counter64 counter; mirror_stats_refresh(); explode_counter64(get_class_byte_count(&cogent_class), &counter); switch (reqinfo->mode) { case MODE_GET: snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER64, (u_char *)&counter, sizeof(counter)); break; default: die("unknown mode"); } return SNMP_ERR_NOERROR; } int handle_orionBytes(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { struct counter64 counter; mirror_stats_refresh(); explode_counter64(get_class_byte_count(&orion_class), &counter); switch (reqinfo->mode) { case MODE_GET: snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER64, (u_char *)&counter, sizeof(counter)); break; default: die("unknown mode"); } return SNMP_ERR_NOERROR; } int handle_campusBytes(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { struct counter64 counter; mirror_stats_refresh(); explode_counter64(get_class_byte_count(&campus_class), &counter); switch (reqinfo->mode) { case MODE_GET: snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER64, (u_char *)&counter, sizeof(counter)); break; default: die("unknown mode"); } return SNMP_ERR_NOERROR; }