]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: snmp MIB bgp4v2 fix indexes in OID
authorFrancois Dumontet <francois.dumontet@6wind.com>
Thu, 14 Sep 2023 12:47:59 +0000 (14:47 +0200)
committerFrancois Dumontet <francois.dumontet@6wind.com>
Tue, 19 Sep 2023 12:26:41 +0000 (14:26 +0200)
currently snmpwalk give results such :
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6z.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6z.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

the expected result is the following

BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv4.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 =
 INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv4.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex
-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

in draft-ietf-idr-bgp4-mibv2-11

INDEX for Bgp4V2PeerEntry is define as follows
INDEX {
          bgp4V2PeerInstance,
          bgp4V2PeerRemoteAddrType,
          bgp4V2PeerRemoteAddr
      }

the peer instance is defined as follows
OBJECT bgp4V2PeerInstance
        SYNTAX Unsigned32 (1..4294967295)

more this interpretation is conformant with the snmpwalk implementation
for instance we obtain the following result

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemotePort.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 179

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemoteAs.1.ipv4.10.125.0.2 = Gauge32: 65200

since currently we are not supporting  multi instance for bgp peer in
SNMP the bgp4V2PeerInstance value is set to 1 coforming to:

"Implementations that do not support multiple routing instances should return 1 for this object."

test is updated accordingly to fix.
currently index for bgp4V2NlriEntry is not coformant to MIB definition

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
bgpd/bgp_snmp_bgp4v2.c
bgpd/bgp_snmp_bgp4v2.h
tests/topotests/bgp_snmp_bgp4v2mib/test_bgp_snmp_bgp4v2mib.py

index bda8c75f78247dd54d87d5c7bb51a8a75ecf36c7..fb6f13a6ca2196f72060a5970e799dde7c5e9223 100644 (file)
@@ -438,7 +438,7 @@ bgp4v2PathAttrLookup(struct variable *v, oid name[], size_t *length,
        unsigned int len;
        struct ipaddr paddr = {};
        size_t namelen = v ? v->namelen : BGP4V2_NLRI_ENTRY_OFFSET;
-       sa_family_t family = name[namelen - 1] == 4 ? AF_INET : AF_INET6;
+       sa_family_t family = name[namelen - 1] == 1 ? AF_INET : AF_INET6;
        afi_t afi = AFI_IP;
        size_t afi_len = IN_ADDR_SIZE;
 
@@ -806,7 +806,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_INSTANCE, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_INSTANCE, 1, 2}},
        {BGP4V2_PEER_LOCAL_ADDR_TYPE,
         ASN_INTEGER,
         RONLY,
@@ -818,7 +818,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR_TYPE, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR_TYPE, 1, 2}},
        {BGP4V2_PEER_LOCAL_ADDR,
         ASN_OCTET_STR,
         RONLY,
@@ -830,7 +830,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR, 1, 2}},
        {BGP4V2_PEER_REMOTE_ADDR_TYPE,
         ASN_INTEGER,
         RONLY,
@@ -842,7 +842,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR_TYPE, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR_TYPE, 1, 2}},
        {BGP4V2_PEER_REMOTE_ADDR,
         ASN_OCTET_STR,
         RONLY,
@@ -854,7 +854,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR, 1, 2}},
        {BGP4V2_PEER_LOCAL_PORT,
         ASN_UNSIGNED,
         RONLY,
@@ -866,7 +866,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_LOCAL_PORT, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_LOCAL_PORT, 1, 2}},
        {BGP4V2_PEER_LOCAL_AS,
         ASN_UNSIGNED,
         RONLY,
@@ -878,7 +878,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_LOCAL_AS, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_LOCAL_AS, 1, 2}},
        {BGP4V2_PEER_LOCAL_IDENTIFIER,
         ASN_OCTET_STR,
         RONLY,
@@ -890,7 +890,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_LOCAL_IDENTIFIER, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_LOCAL_IDENTIFIER, 1, 2}},
        {BGP4V2_PEER_REMOTE_PORT,
         ASN_UNSIGNED,
         RONLY,
@@ -902,7 +902,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_REMOTE_PORT, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_REMOTE_PORT, 1, 2}},
        {BGP4V2_PEER_REMOTE_AS,
         ASN_UNSIGNED,
         RONLY,
@@ -914,7 +914,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_REMOTE_AS, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_REMOTE_AS, 1, 2}},
        {BGP4V2_PEER_REMOTE_IDENTIFIER,
         ASN_OCTET_STR,
         RONLY,
@@ -926,7 +926,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_REMOTE_IDENTIFIER, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_REMOTE_IDENTIFIER, 1, 2}},
        {BGP4V2_PEER_ADMIN_STATUS,
         ASN_INTEGER,
         RONLY,
@@ -938,7 +938,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_ADMIN_STATUS, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_ADMIN_STATUS, 1, 2}},
        {BGP4V2_PEER_STATE,
         ASN_INTEGER,
         RONLY,
@@ -950,7 +950,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_STATE, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_STATE, 1, 2}},
        {BGP4V2_PEER_DESCRIPTION,
         ASN_OCTET_STR,
         RONLY,
@@ -962,7 +962,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerTable,
         6,
-        {1, 2, 1, BGP4V2_PEER_DESCRIPTION, 2, 2}},
+        {1, 2, 1, BGP4V2_PEER_DESCRIPTION, 1, 2}},
        /* bgp4V2PeerErrorsEntry */
        {BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED,
         ASN_UNSIGNED,
@@ -975,7 +975,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED,
         ASN_UNSIGNED,
         RONLY,
@@ -987,7 +987,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME,
         ASN_TIMETICKS,
         RONLY,
@@ -999,7 +999,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT,
         ASN_OCTET_STR,
         RONLY,
@@ -1011,7 +1011,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA,
         ASN_OCTET_STR,
         RONLY,
@@ -1023,7 +1023,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_CODE_SENT,
         ASN_UNSIGNED,
         RONLY,
@@ -1035,7 +1035,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_SENT, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_SENT, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT,
         ASN_UNSIGNED,
         RONLY,
@@ -1047,7 +1047,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_SENT_TIME,
         ASN_TIMETICKS,
         RONLY,
@@ -1059,7 +1059,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_SENT_TEXT,
         ASN_OCTET_STR,
         RONLY,
@@ -1071,7 +1071,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TEXT, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TEXT, 1, 2}},
        {BGP4V2_PEER_LAST_ERROR_SENT_DATA,
         ASN_OCTET_STR,
         RONLY,
@@ -1083,7 +1083,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerErrorsTable,
         6,
-        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_DATA, 2, 2}},
+        {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_DATA, 1, 2}},
        /* bgp4V2PeerEventTimesEntry */
        {BGP4V2_PEER_FSM_ESTABLISHED_TIME,
         ASN_UNSIGNED,
@@ -1096,7 +1096,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerEventTimesTable,
         6,
-        {1, 4, 1, BGP4V2_PEER_FSM_ESTABLISHED_TIME, 2, 2}},
+        {1, 4, 1, BGP4V2_PEER_FSM_ESTABLISHED_TIME, 1, 2}},
        {BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME,
         ASN_UNSIGNED,
         RONLY,
@@ -1108,7 +1108,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgpv2PeerEventTimesTable,
         6,
-        {1, 4, 1, BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, 2, 2}},
+        {1, 4, 1, BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, 1, 2}},
        /* bgp4V2NlriTable */
        {BGP4V2_NLRI_INDEX,
         ASN_UNSIGNED,
@@ -1121,7 +1121,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_INDEX, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_INDEX, 1, 2}},
        {BGP4V2_NLRI_AFI,
         ASN_INTEGER,
         RONLY,
@@ -1133,7 +1133,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AFI, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AFI, 1, 2}},
        {BGP4V2_NLRI_SAFI,
         ASN_INTEGER,
         RONLY,
@@ -1145,7 +1145,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_SAFI, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_SAFI, 1, 2}},
        {BGP4V2_NLRI_PREFIX_TYPE,
         ASN_INTEGER,
         RONLY,
@@ -1157,7 +1157,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_PREFIX_TYPE, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_PREFIX_TYPE, 1, 2}},
        {BGP4V2_NLRI_PREFIX,
         ASN_OCTET_STR,
         RONLY,
@@ -1169,7 +1169,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_PREFIX, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_PREFIX, 1, 2}},
        {BGP4V2_NLRI_PREFIX_LEN,
         ASN_UNSIGNED,
         RONLY,
@@ -1181,7 +1181,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_PREFIX_LEN, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_PREFIX_LEN, 1, 2}},
        {BGP4V2_NLRI_BEST,
         ASN_INTEGER,
         RONLY,
@@ -1193,7 +1193,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_BEST, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_BEST, 1, 2}},
        {BGP4V2_NLRI_CALC_LOCAL_PREF,
         ASN_UNSIGNED,
         RONLY,
@@ -1205,7 +1205,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_CALC_LOCAL_PREF, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_CALC_LOCAL_PREF, 1, 2}},
        {BGP4V2_NLRI_ORIGIN,
         ASN_INTEGER,
         RONLY,
@@ -1217,7 +1217,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_ORIGIN, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_ORIGIN, 1, 2}},
        {BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE,
         ASN_INTEGER,
         RONLY,
@@ -1229,7 +1229,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, 1, 2}},
        {BGP4V2_NLRI_NEXT_HOP_ADDR,
         ASN_OCTET_STR,
         RONLY,
@@ -1241,7 +1241,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR, 1, 2}},
        {BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE,
         ASN_INTEGER,
         RONLY,
@@ -1253,7 +1253,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, 1, 2}},
        {BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR,
         ASN_OCTET_STR,
         RONLY,
@@ -1265,7 +1265,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, 1, 2}},
        {BGP4V2_NLRI_LOCAL_PREF_PRESENT,
         ASN_INTEGER,
         RONLY,
@@ -1277,7 +1277,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF_PRESENT, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF_PRESENT, 1, 2}},
        {BGP4V2_NLRI_LOCAL_PREF,
         ASN_UNSIGNED,
         RONLY,
@@ -1289,7 +1289,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF, 1, 2}},
        {BGP4V2_NLRI_MED_PRESENT,
         ASN_INTEGER,
         RONLY,
@@ -1301,7 +1301,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_MED_PRESENT, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_MED_PRESENT, 1, 2}},
        {BGP4V2_NLRI_MED,
         ASN_UNSIGNED,
         RONLY,
@@ -1313,7 +1313,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_MED, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_MED, 1, 2}},
        {BGP4V2_NLRI_ATOMIC_AGGREGATE,
         ASN_INTEGER,
         RONLY,
@@ -1325,7 +1325,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_ATOMIC_AGGREGATE, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_ATOMIC_AGGREGATE, 1, 2}},
        {BGP4V2_NLRI_AGGREGATOR_PRESENT,
         ASN_INTEGER,
         RONLY,
@@ -1337,7 +1337,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_PRESENT, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_PRESENT, 1, 2}},
        {BGP4V2_NLRI_AGGREGATOR_AS,
         ASN_UNSIGNED,
         RONLY,
@@ -1349,7 +1349,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_AS, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_AS, 1, 2}},
        {BGP4V2_NLRI_AGGREGATOR_ADDR,
         ASN_OCTET_STR,
         RONLY,
@@ -1361,7 +1361,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_ADDR, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_ADDR, 1, 2}},
        {BGP4V2_NLRI_AS_PATH_CALC_LENGTH,
         ASN_UNSIGNED,
         RONLY,
@@ -1373,7 +1373,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AS_PATH_CALC_LENGTH, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AS_PATH_CALC_LENGTH, 1, 2}},
        {BGP4V2_NLRI_AS_PATH_STRING,
         ASN_OCTET_STR,
         RONLY,
@@ -1385,7 +1385,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AS_PATH_STRING, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AS_PATH_STRING, 1, 2}},
        {BGP4V2_NLRI_AS_PATH,
         ASN_OCTET_STR,
         RONLY,
@@ -1397,7 +1397,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_AS_PATH, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_AS_PATH, 1, 2}},
        {BGP4V2_NLRI_PATH_ATTR_UNKNOWN,
         ASN_OCTET_STR,
         RONLY,
@@ -1409,7 +1409,7 @@ static struct variable bgpv2_variables[] = {
         RONLY,
         bgp4v2PathAttrTable,
         6,
-        {1, 9, 1, BGP4V2_NLRI_PATH_ATTR_UNKNOWN, 2, 2}},
+        {1, 9, 1, BGP4V2_NLRI_PATH_ATTR_UNKNOWN, 1, 2}},
 };
 
 int bgp_snmp_bgp4v2_init(struct event_loop *tm)
index 7cdad586bc9166ddbc2a3508e5c75980d6d7b843..6587a825c58546f7bcaf838721c5ec22e8aefcdd 100644 (file)
@@ -14,6 +14,7 @@
 
 /* bgp4V2PeerEntry:
  * offset 1.3.6.1.3.5.1.1.2.1.x.(1|2).(4|16) = 13
+ * offset 1.3.6.1.4.1.7336.3.2.1.1.2.1.x.1.(1|2) = 16
  */
 #define BGP4V2_PEER_ENTRY_OFFSET 13
 #define BGP4V2_PEER_INSTANCE 1
@@ -49,6 +50,7 @@
 
 /* bgp4V2NlriEntry
  * offset 1.3.6.1.3.5.1.1.9.1.x.(1|2).(4|16) = 13
+ * offset 1.3.6.1.4.1.7336.3.2.1.1.9.1.x.1.(1|2) = 16
  */
 #define BGP4V2_NLRI_ENTRY_OFFSET 13
 #define BGP4V2_NLRI_INDEX 1
index 583d89d40f02aaaf0b94e44a55f225580e2e66d2..6b6153db46302a0929af72c2304cb41e46e07dd2 100755 (executable)
@@ -146,8 +146,8 @@ def test_bgp_snmp_bgp4v2():
 
     def _snmpwalk_remote_addr():
         expected = {
-            "1.3.6.1.3.5.1.1.2.1.5.1.4.192.168.12.1": "C0 A8 0C 01",
-            "1.3.6.1.3.5.1.1.2.1.5.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "20 01 0D B8 00 00 00 00 00 00 00 00 00 12 00 01",
+            "1.3.6.1.3.5.1.1.2.1.5.1.1.192.168.12.1": "C0 A8 0C 01",
+            "1.3.6.1.3.5.1.1.2.1.5.1.2.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "20 01 0D B8 00 00 00 00 00 00 00 00 00 12 00 01",
         }
 
         # bgp4V2PeerRemoteAddr
@@ -160,8 +160,8 @@ def test_bgp_snmp_bgp4v2():
 
     def _snmpwalk_peer_state():
         expected = {
-            "1.3.6.1.3.5.1.1.2.1.13.1.4.192.168.12.1": "6",
-            "1.3.6.1.3.5.1.1.2.1.13.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "6",
+            "1.3.6.1.3.5.1.1.2.1.13.1.1.192.168.12.1": "6",
+            "1.3.6.1.3.5.1.1.2.1.13.1.2.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "6",
         }
 
         # bgp4V2PeerState
@@ -174,8 +174,8 @@ def test_bgp_snmp_bgp4v2():
 
     def _snmpwalk_peer_last_error_code_received():
         expected = {
-            "1.3.6.1.3.5.1.1.3.1.1.1.4.192.168.12.1": "0",
-            "1.3.6.1.3.5.1.1.3.1.1.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "0",
+            "1.3.6.1.3.5.1.1.3.1.1.1.1.192.168.12.1": "0",
+            "1.3.6.1.3.5.1.1.3.1.1.1.2.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "0",
         }
 
         # bgp4V2PeerLastErrorCodeReceived
@@ -190,10 +190,10 @@ def test_bgp_snmp_bgp4v2():
 
     def _snmpwalk_origin():
         expected = {
-            "1.3.6.1.3.5.1.1.9.1.9.1.4.10.0.0.0.31.192.168.12.1": "1",
-            "1.3.6.1.3.5.1.1.9.1.9.1.4.10.0.0.2.32.192.168.12.1": "3",
-            "1.3.6.1.3.5.1.1.9.1.9.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.0.0.1.128.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "1",
-            "1.3.6.1.3.5.1.1.9.1.9.2.16.32.1.13.184.0.1.0.0.0.0.0.0.0.0.0.0.56.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "3",
+            "1.3.6.1.3.5.1.1.9.1.9.1.1.10.0.0.0.31.192.168.12.1": "1",
+            "1.3.6.1.3.5.1.1.9.1.9.1.1.10.0.0.2.32.192.168.12.1": "3",
+            "1.3.6.1.3.5.1.1.9.1.9.1.2.32.1.13.184.0.0.0.0.0.0.0.0.0.0.0.1.128.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "1",
+            "1.3.6.1.3.5.1.1.9.1.9.1.2.32.1.13.184.0.1.0.0.0.0.0.0.0.0.0.0.56.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "3",
         }
 
         # bgp4V2NlriOrigin
@@ -206,10 +206,10 @@ def test_bgp_snmp_bgp4v2():
 
     def _snmpwalk_med():
         expected = {
-            "1.3.6.1.3.5.1.1.9.1.17.1.4.10.0.0.0.31.192.168.12.1": "1",
-            "1.3.6.1.3.5.1.1.9.1.17.1.4.10.0.0.2.32.192.168.12.1": "2",
-            "1.3.6.1.3.5.1.1.9.1.17.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.0.0.1.128.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "1",
-            "1.3.6.1.3.5.1.1.9.1.17.2.16.32.1.13.184.0.1.0.0.0.0.0.0.0.0.0.0.56.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "2",
+            "1.3.6.1.3.5.1.1.9.1.17.1.1.10.0.0.0.31.192.168.12.1": "1",
+            "1.3.6.1.3.5.1.1.9.1.17.1.1.10.0.0.2.32.192.168.12.1": "2",
+            "1.3.6.1.3.5.1.1.9.1.17.1.2.32.1.13.184.0.0.0.0.0.0.0.0.0.0.0.1.128.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "1",
+            "1.3.6.1.3.5.1.1.9.1.17.1.2.32.1.13.184.0.1.0.0.0.0.0.0.0.0.0.0.56.32.1.13.184.0.0.0.0.0.0.0.0.0.18.0.1": "2",
         }
 
         # bgp4V2NlriMed