--- embedaddon/quagga/zebra/zebra_snmp.c 2013/07/21 23:54:41 1.1.1.2 +++ embedaddon/quagga/zebra/zebra_snmp.c 2016/11/02 10:09:10 1.1.1.3 @@ -19,6 +19,10 @@ * 02111-1307, USA. */ +/* + * Currently SNMP is only running properly for MIBs in the default VRF. + */ + #include #ifdef HAVE_SNMP @@ -31,10 +35,11 @@ #include "command.h" #include "smux.h" #include "table.h" +#include "vrf.h" #include "zebra/rib.h" #include "zebra/zserv.h" - + #define IPFWMIB 1,3,6,1,2,1,4,24 /* ipForwardTable */ @@ -78,7 +83,7 @@ #define ROWSTATUS ASN_INTEGER #define IPADDRESS ASN_IPADDRESS #define OBJECTIDENTIFIER ASN_OBJECT_ID - + extern struct zebra_t zebrad; oid ipfw_oid [] = { IPFWMIB }; @@ -130,7 +135,7 @@ struct variable zebra_variables[] = {IPCIDRROUTESTATUS, ROWSTATUS, RONLY, ipCidrTable, 3, {4, 1, 16}} }; - + static u_char * ipFwNumber (struct variable *v, oid objid[], size_t *objid_len, int exact, size_t *val_len, WriteMethod **write_method) @@ -143,7 +148,7 @@ ipFwNumber (struct variable *v, oid objid[], size_t *o if (smux_header_generic(v, objid, objid_len, exact, val_len, write_method) == MATCH_FAILED) return NULL; - table = vrf_table (AFI_IP, SAFI_UNICAST, 0); + table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT); if (! table) return NULL; @@ -168,7 +173,7 @@ ipCidrNumber (struct variable *v, oid objid[], size_t if (smux_header_generic(v, objid, objid_len, exact, val_len, write_method) == MATCH_FAILED) return NULL; - table = vrf_table (AFI_IP, SAFI_UNICAST, 0); + table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT); if (! table) return 0; @@ -330,7 +335,7 @@ get_fwtable_route_node(struct variable *v, oid objid[] if (exact && (*objid_len != (unsigned) v->namelen + 10)) return; - table = vrf_table (AFI_IP, SAFI_UNICAST, 0); + table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT); if (! table) return;