From 3ccb263c247469dc1378f3cfc890e75f6d43d0d6 Mon Sep 17 00:00:00 2001 From: Francois Dumontet Date: Wed, 13 Sep 2023 14:29:34 +0200 Subject: [PATCH 1/3] bgpd: snmp MIB bg4v2 fix wrong type values snmpwalk exhibit the followinfg errors: BGP4V2-MIB::bgp4V2PeerLastErrorReceivedTime.1.ipv6z.10.125.0.2 = Wrong Type (should be Timeticks): Gauge32: 0 BGP4V2-MIB::bgp4V2PeerLastErrorReceivedTime.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Wrong Type (should be Timeticks): Hex-STRING: 00 00 00 00 00 00 00 00 BGP4V2-MIB::bgp4V2PeerLastErrorSentTime.1.ipv6z.10.125.0.2 = Wrong Type (should be Timeticks): Gauge32: 178 BGP4V2-MIB::bgp4V2PeerLastErrorSentTime.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Wrong Type (should be Timeticks): Hex-STRING: B2 00 00 00 00 00 00 00 Error: OID not increasing: BGP4V2-MIB::bgp4V2NlriIndex.1.4.10.200."".0.24.10.125.0.2 >= BGP4V2-MIB::bgp4V2NlriIndex.1.4.10.200."".0.24."".0.0.0 draft-ietf-idr-bgp4-mibv2-11 states the following bgp4V2PeerLastErrorReceivedTime OBJECT-TYPE SYNTAX TimeStamp bgp4V2PeerLastErrorSentTime OBJECT-TYPE SYNTAX TimeStamp we set the correct values Signed-off-by: Francois Dumontet --- bgpd/bgp_snmp_bgp4v2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bgpd/bgp_snmp_bgp4v2.c b/bgpd/bgp_snmp_bgp4v2.c index cfafae55dc93..adfced175f4f 100644 --- a/bgpd/bgp_snmp_bgp4v2.c +++ b/bgpd/bgp_snmp_bgp4v2.c @@ -989,13 +989,13 @@ static struct variable bgpv2_variables[] = { 6, {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 2, 16}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, - ASN_UNSIGNED, + ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 1, 4}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, - ASN_UNSIGNED, + ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, @@ -1049,13 +1049,13 @@ static struct variable bgpv2_variables[] = { 6, {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 2, 16}}, {BGP4V2_PEER_LAST_ERROR_SENT_TIME, - ASN_UNSIGNED, + ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 1, 4}}, {BGP4V2_PEER_LAST_ERROR_SENT_TIME, - ASN_UNSIGNED, + ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, From f73eaedcc33a3178d3c8608da95c9800e756a0bd Mon Sep 17 00:00:00 2001 From: Francois Dumontet Date: Wed, 13 Sep 2023 14:26:48 +0200 Subject: [PATCH 2/3] bgpd: snmp MIB bg4v2 fix invalid address Type value currently an snmpwalk gives: BGP4V2-MIB::bgp4V2PeerFsmEstablishedTime.1.ipv6z.10.125.0.2 = Gauge32: 103 seconds BGP4V2-MIB::bgp4V2PeerFsmEstablishedTime.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 103 seconds but ipv6z and dns are not the valid address type this must be ipv4 and ipv6. Signed-off-by: Francois Dumontet --- bgpd/bgp_snmp_bgp4v2.c | 206 ++++++++++++++++++++--------------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/bgpd/bgp_snmp_bgp4v2.c b/bgpd/bgp_snmp_bgp4v2.c index adfced175f4f..bda8c75f7824 100644 --- a/bgpd/bgp_snmp_bgp4v2.c +++ b/bgpd/bgp_snmp_bgp4v2.c @@ -139,7 +139,7 @@ static struct peer *bgpv2PeerTable_lookup(struct variable *v, oid name[], struct peer *peer = NULL; size_t namelen = v ? v->namelen : BGP4V2_PEER_ENTRY_OFFSET; oid *offset = name + namelen; - sa_family_t family = name[namelen - 1] == 4 ? AF_INET : AF_INET6; + sa_family_t family = name[namelen - 1] == 1 ? AF_INET : AF_INET6; int afi_len = IN_ADDR_SIZE; size_t offsetlen = *length - namelen; @@ -800,616 +800,616 @@ static struct variable bgpv2_variables[] = { RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_INSTANCE, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_INSTANCE, 1, 1}}, {BGP4V2_PEER_INSTANCE, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_INSTANCE, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_INSTANCE, 2, 2}}, {BGP4V2_PEER_LOCAL_ADDR_TYPE, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR_TYPE, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR_TYPE, 1, 1}}, {BGP4V2_PEER_LOCAL_ADDR_TYPE, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR_TYPE, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR_TYPE, 2, 2}}, {BGP4V2_PEER_LOCAL_ADDR, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR, 1, 1}}, {BGP4V2_PEER_LOCAL_ADDR, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_ADDR, 2, 2}}, {BGP4V2_PEER_REMOTE_ADDR_TYPE, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR_TYPE, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR_TYPE, 1, 1}}, {BGP4V2_PEER_REMOTE_ADDR_TYPE, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR_TYPE, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR_TYPE, 2, 2}}, {BGP4V2_PEER_REMOTE_ADDR, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR, 1, 1}}, {BGP4V2_PEER_REMOTE_ADDR, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_ADDR, 2, 2}}, {BGP4V2_PEER_LOCAL_PORT, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_PORT, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_PORT, 1, 1}}, {BGP4V2_PEER_LOCAL_PORT, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_PORT, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_PORT, 2, 2}}, {BGP4V2_PEER_LOCAL_AS, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_AS, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_AS, 1, 1}}, {BGP4V2_PEER_LOCAL_AS, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_AS, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_AS, 2, 2}}, {BGP4V2_PEER_LOCAL_IDENTIFIER, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_IDENTIFIER, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_IDENTIFIER, 1, 1}}, {BGP4V2_PEER_LOCAL_IDENTIFIER, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_LOCAL_IDENTIFIER, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_LOCAL_IDENTIFIER, 2, 2}}, {BGP4V2_PEER_REMOTE_PORT, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_PORT, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_PORT, 1, 1}}, {BGP4V2_PEER_REMOTE_PORT, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_PORT, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_PORT, 2, 2}}, {BGP4V2_PEER_REMOTE_AS, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_AS, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_AS, 1, 1}}, {BGP4V2_PEER_REMOTE_AS, ASN_UNSIGNED, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_AS, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_AS, 2, 2}}, {BGP4V2_PEER_REMOTE_IDENTIFIER, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_IDENTIFIER, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_IDENTIFIER, 1, 1}}, {BGP4V2_PEER_REMOTE_IDENTIFIER, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_REMOTE_IDENTIFIER, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_REMOTE_IDENTIFIER, 2, 2}}, {BGP4V2_PEER_ADMIN_STATUS, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_ADMIN_STATUS, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_ADMIN_STATUS, 1, 1}}, {BGP4V2_PEER_ADMIN_STATUS, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_ADMIN_STATUS, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_ADMIN_STATUS, 2, 2}}, {BGP4V2_PEER_STATE, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_STATE, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_STATE, 1, 1}}, {BGP4V2_PEER_STATE, ASN_INTEGER, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_STATE, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_STATE, 2, 2}}, {BGP4V2_PEER_DESCRIPTION, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_DESCRIPTION, 1, 4}}, + {1, 2, 1, BGP4V2_PEER_DESCRIPTION, 1, 1}}, {BGP4V2_PEER_DESCRIPTION, ASN_OCTET_STR, RONLY, bgpv2PeerTable, 6, - {1, 2, 1, BGP4V2_PEER_DESCRIPTION, 2, 16}}, + {1, 2, 1, BGP4V2_PEER_DESCRIPTION, 2, 2}}, /* bgp4V2PeerErrorsEntry */ {BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_RECEIVED, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_RECEIVED, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TIME, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_TEXT, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_RECEIVED_DATA, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_CODE_SENT, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_SENT, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_SENT, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_CODE_SENT, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_SENT, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_CODE_SENT, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, ASN_UNSIGNED, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SUBCODE_SENT, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_SENT_TIME, ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_SENT_TIME, ASN_TIMETICKS, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TIME, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_SENT_TEXT, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TEXT, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TEXT, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_SENT_TEXT, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TEXT, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_TEXT, 2, 2}}, {BGP4V2_PEER_LAST_ERROR_SENT_DATA, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_DATA, 1, 4}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_DATA, 1, 1}}, {BGP4V2_PEER_LAST_ERROR_SENT_DATA, ASN_OCTET_STR, RONLY, bgpv2PeerErrorsTable, 6, - {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_DATA, 2, 16}}, + {1, 3, 1, BGP4V2_PEER_LAST_ERROR_SENT_DATA, 2, 2}}, /* bgp4V2PeerEventTimesEntry */ {BGP4V2_PEER_FSM_ESTABLISHED_TIME, ASN_UNSIGNED, RONLY, bgpv2PeerEventTimesTable, 6, - {1, 4, 1, BGP4V2_PEER_FSM_ESTABLISHED_TIME, 1, 4}}, + {1, 4, 1, BGP4V2_PEER_FSM_ESTABLISHED_TIME, 1, 1}}, {BGP4V2_PEER_FSM_ESTABLISHED_TIME, ASN_UNSIGNED, RONLY, bgpv2PeerEventTimesTable, 6, - {1, 4, 1, BGP4V2_PEER_FSM_ESTABLISHED_TIME, 2, 16}}, + {1, 4, 1, BGP4V2_PEER_FSM_ESTABLISHED_TIME, 2, 2}}, {BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, ASN_UNSIGNED, RONLY, bgpv2PeerEventTimesTable, 6, - {1, 4, 1, BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, 1, 4}}, + {1, 4, 1, BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, 1, 1}}, {BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, ASN_UNSIGNED, RONLY, bgpv2PeerEventTimesTable, 6, - {1, 4, 1, BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, 2, 16}}, + {1, 4, 1, BGP4V2_PEER_PEER_IN_UPDATES_ELAPSED_TIME, 2, 2}}, /* bgp4V2NlriTable */ {BGP4V2_NLRI_INDEX, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_INDEX, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_INDEX, 1, 1}}, {BGP4V2_NLRI_INDEX, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_INDEX, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_INDEX, 2, 2}}, {BGP4V2_NLRI_AFI, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AFI, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AFI, 1, 1}}, {BGP4V2_NLRI_AFI, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AFI, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AFI, 2, 2}}, {BGP4V2_NLRI_SAFI, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_SAFI, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_SAFI, 1, 1}}, {BGP4V2_NLRI_SAFI, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_SAFI, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_SAFI, 2, 2}}, {BGP4V2_NLRI_PREFIX_TYPE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PREFIX_TYPE, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_PREFIX_TYPE, 1, 1}}, {BGP4V2_NLRI_PREFIX_TYPE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PREFIX_TYPE, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_PREFIX_TYPE, 2, 2}}, {BGP4V2_NLRI_PREFIX, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PREFIX, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_PREFIX, 1, 1}}, {BGP4V2_NLRI_PREFIX, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PREFIX, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_PREFIX, 2, 2}}, {BGP4V2_NLRI_PREFIX_LEN, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PREFIX_LEN, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_PREFIX_LEN, 1, 1}}, {BGP4V2_NLRI_PREFIX_LEN, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PREFIX_LEN, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_PREFIX_LEN, 2, 2}}, {BGP4V2_NLRI_BEST, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_BEST, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_BEST, 1, 1}}, {BGP4V2_NLRI_BEST, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_BEST, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_BEST, 2, 2}}, {BGP4V2_NLRI_CALC_LOCAL_PREF, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_CALC_LOCAL_PREF, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_CALC_LOCAL_PREF, 1, 1}}, {BGP4V2_NLRI_CALC_LOCAL_PREF, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_CALC_LOCAL_PREF, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_CALC_LOCAL_PREF, 2, 2}}, {BGP4V2_NLRI_ORIGIN, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_ORIGIN, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_ORIGIN, 1, 1}}, {BGP4V2_NLRI_ORIGIN, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_ORIGIN, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_ORIGIN, 2, 2}}, {BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, 1, 1}}, {BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR_TYPE, 2, 2}}, {BGP4V2_NLRI_NEXT_HOP_ADDR, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR, 1, 1}}, {BGP4V2_NLRI_NEXT_HOP_ADDR, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_NEXT_HOP_ADDR, 2, 2}}, {BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, 1, 1}}, {BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR_TYPE, 2, 2}}, {BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, 1, 1}}, {BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_LINK_LOCAL_NEXT_HOP_ADDR, 2, 2}}, {BGP4V2_NLRI_LOCAL_PREF_PRESENT, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF_PRESENT, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF_PRESENT, 1, 1}}, {BGP4V2_NLRI_LOCAL_PREF_PRESENT, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF_PRESENT, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF_PRESENT, 2, 2}}, {BGP4V2_NLRI_LOCAL_PREF, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF, 1, 1}}, {BGP4V2_NLRI_LOCAL_PREF, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_LOCAL_PREF, 2, 2}}, {BGP4V2_NLRI_MED_PRESENT, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_MED_PRESENT, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_MED_PRESENT, 1, 1}}, {BGP4V2_NLRI_MED_PRESENT, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_MED_PRESENT, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_MED_PRESENT, 2, 2}}, {BGP4V2_NLRI_MED, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_MED, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_MED, 1, 1}}, {BGP4V2_NLRI_MED, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_MED, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_MED, 2, 2}}, {BGP4V2_NLRI_ATOMIC_AGGREGATE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_ATOMIC_AGGREGATE, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_ATOMIC_AGGREGATE, 1, 1}}, {BGP4V2_NLRI_ATOMIC_AGGREGATE, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_ATOMIC_AGGREGATE, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_ATOMIC_AGGREGATE, 2, 2}}, {BGP4V2_NLRI_AGGREGATOR_PRESENT, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_PRESENT, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_PRESENT, 1, 1}}, {BGP4V2_NLRI_AGGREGATOR_PRESENT, ASN_INTEGER, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_PRESENT, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_PRESENT, 2, 2}}, {BGP4V2_NLRI_AGGREGATOR_AS, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_AS, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_AS, 1, 1}}, {BGP4V2_NLRI_AGGREGATOR_AS, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_AS, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_AS, 2, 2}}, {BGP4V2_NLRI_AGGREGATOR_ADDR, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_ADDR, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_ADDR, 1, 1}}, {BGP4V2_NLRI_AGGREGATOR_ADDR, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_ADDR, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AGGREGATOR_ADDR, 2, 2}}, {BGP4V2_NLRI_AS_PATH_CALC_LENGTH, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AS_PATH_CALC_LENGTH, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AS_PATH_CALC_LENGTH, 1, 1}}, {BGP4V2_NLRI_AS_PATH_CALC_LENGTH, ASN_UNSIGNED, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AS_PATH_CALC_LENGTH, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AS_PATH_CALC_LENGTH, 2, 2}}, {BGP4V2_NLRI_AS_PATH_STRING, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AS_PATH_STRING, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AS_PATH_STRING, 1, 1}}, {BGP4V2_NLRI_AS_PATH_STRING, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AS_PATH_STRING, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AS_PATH_STRING, 2, 2}}, {BGP4V2_NLRI_AS_PATH, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AS_PATH, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_AS_PATH, 1, 1}}, {BGP4V2_NLRI_AS_PATH, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_AS_PATH, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_AS_PATH, 2, 2}}, {BGP4V2_NLRI_PATH_ATTR_UNKNOWN, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PATH_ATTR_UNKNOWN, 1, 4}}, + {1, 9, 1, BGP4V2_NLRI_PATH_ATTR_UNKNOWN, 1, 1}}, {BGP4V2_NLRI_PATH_ATTR_UNKNOWN, ASN_OCTET_STR, RONLY, bgp4v2PathAttrTable, 6, - {1, 9, 1, BGP4V2_NLRI_PATH_ATTR_UNKNOWN, 2, 16}}, + {1, 9, 1, BGP4V2_NLRI_PATH_ATTR_UNKNOWN, 2, 2}}, }; int bgp_snmp_bgp4v2_init(struct event_loop *tm) From b8fe1c16de3e8ba754dc932d86edd08335e48806 Mon Sep 17 00:00:00 2001 From: Francois Dumontet Date: Thu, 14 Sep 2023 14:47:59 +0200 Subject: [PATCH 3/3] bgpd: snmp MIB bgp4v2 fix indexes in OID 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 --- bgpd/bgp_snmp_bgp4v2.c | 104 +++++++++--------- bgpd/bgp_snmp_bgp4v2.h | 2 + .../test_bgp_snmp_bgp4v2mib.py | 28 ++--- 3 files changed, 68 insertions(+), 66 deletions(-) diff --git a/bgpd/bgp_snmp_bgp4v2.c b/bgpd/bgp_snmp_bgp4v2.c index bda8c75f7824..fb6f13a6ca21 100644 --- a/bgpd/bgp_snmp_bgp4v2.c +++ b/bgpd/bgp_snmp_bgp4v2.c @@ -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) diff --git a/bgpd/bgp_snmp_bgp4v2.h b/bgpd/bgp_snmp_bgp4v2.h index 7cdad586bc91..6587a825c585 100644 --- a/bgpd/bgp_snmp_bgp4v2.h +++ b/bgpd/bgp_snmp_bgp4v2.h @@ -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 diff --git a/tests/topotests/bgp_snmp_bgp4v2mib/test_bgp_snmp_bgp4v2mib.py b/tests/topotests/bgp_snmp_bgp4v2mib/test_bgp_snmp_bgp4v2mib.py index 583d89d40f02..6b6153db4630 100755 --- a/tests/topotests/bgp_snmp_bgp4v2mib/test_bgp_snmp_bgp4v2mib.py +++ b/tests/topotests/bgp_snmp_bgp4v2mib/test_bgp_snmp_bgp4v2mib.py @@ -146,8 +146,8 @@ def _bgp_converge_prefixes(): 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 _snmpwalk_remote_addr(): 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 _snmpwalk_peer_state(): 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 _snmpwalk_peer_last_error_code_received(): 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 _snmpwalk_origin(): 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