]>
git.puffer.fish Git - mirror/frr.git/log
Donald Sharp [Fri, 4 Nov 2022 18:20:57 +0000 (14:20 -0400)]
lib: On shutdown, disable snmp from working
When shutting down ensure that any daemon operating with
snmp tells it to stop operating so no more data is sent.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Fri, 4 Nov 2022 14:08:38 +0000 (10:08 -0400)]
lib: Convert agentx_enabled to a bool
FRR is using this as a bool. Let's just use a bool.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Thu, 3 Nov 2022 23:01:36 +0000 (19:01 -0400)]
bgpd: use the enum instead of an int
The bgp_fsm_change_status function takes an int
for the new bgp state, which is an `enum bgp_fsm_status status`
let's convert over to being explicit.bgpd: use the enum instead of an int
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Thu, 15 Dec 2022 12:31:49 +0000 (07:31 -0500)]
Merge pull request #12481 from kuldeepkash/topotests_startup
tests: Topotests daemon start as per feature test
Donatas Abraitis [Thu, 15 Dec 2022 07:09:09 +0000 (09:09 +0200)]
Merge pull request #12438 from proelbtn/fix-#12349
bgpd: Stop overriding nexthop in vpn_leak_from_vrf_update when the peer is BGP unnumberred
Donatas Abraitis [Thu, 15 Dec 2022 06:48:35 +0000 (08:48 +0200)]
Merge pull request #12513 from Pdoijode/master
zebra: JSON support for show nexthop-group rib
Pooja Jagadeesh Doijode [Wed, 14 Dec 2022 18:46:32 +0000 (10:46 -0800)]
zebra: JSON support for show nexthop-group rib
Added JSON support for show nexthop-group rib
command.
JSON output:
{
"10":{
"type":"zebra",
"refCount":3,
"uptime":"00:00:46",
"vrf":"default",
"valid":true,
"installed":true,
"interfaceIndex":3,
"nexthops":[
{
"flags":3,
"fib":true,
"ip":"2001::2",
"afi":"ipv6",
"interfaceIndex":3,
"interfaceName":"eth0",
"vrf":"default",
"active":true,
"weight":1
}
]
}
}
Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
Donald Sharp [Wed, 14 Dec 2022 11:50:04 +0000 (06:50 -0500)]
Merge pull request #12511 from opensourcerouting/accords-color
accords: CLI coloring
Donald Sharp [Wed, 14 Dec 2022 11:48:37 +0000 (06:48 -0500)]
Merge pull request #12517 from opensourcerouting/fix/forward_null_snmp_bgp
bgpd: Fix coverity FORWARD_NULL for v->namelen in SNMP code
Rafael Zalamena [Wed, 14 Dec 2022 10:54:52 +0000 (07:54 -0300)]
Merge pull request #12075 from donaldsharp/highline
Add ability for dplane_fpm_nl to receive RTM_NEWROUTE netlink messages that signal route handling in the asic
Donatas Abraitis [Wed, 14 Dec 2022 08:08:27 +0000 (10:08 +0200)]
bgpd: Fix coverity FORWARD_NULL for v->namelen in SNMP code
```
*** CID
1529864 : (FORWARD_NULL)
/bgpd/bgp_snmp_bgp4v2.c: 443 in bgp4v2PathAttrLookup()
437
438 #define BGP_NLRI_ENTRY_OFFSET (afi_len + 1 + afi_len)
439
440 sockunion_init(&su);
441
442 if (exact) {
>>> CID
1529864 : (FORWARD_NULL)
>>> Dereferencing null pointer "v".
443 if (*length - v->namelen != BGP_NLRI_ENTRY_OFFSET)
444 return NULL;
445
446 /* Set OID offset for prefix */
447 offset = name + v->namelen;
448 if (family == AF_INET)
/bgpd/bgp_snmp_bgp4v2.c: 480 in bgp4v2PathAttrLookup()
474 bgp_dest_unlock_node(dest);
475 }
476
477 return NULL;
478 }
479
>>> CID
1529864 : (FORWARD_NULL)
>>> Dereferencing null pointer "v".
480 offset = name + v->namelen;
481 offsetlen = *length - v->namelen;
482 len = offsetlen;
483
484 if (offsetlen == 0) {
485 dest = bgp_table_top(bgp->rib[afi][SAFI_UNICAST]);
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Kuldeep Kashyap [Tue, 13 Dec 2022 18:38:44 +0000 (10:38 -0800)]
tests: Fix frrbot style issues
There were some style issues found by
frrbot, fixing as part of this commit.
Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
Kuldeep Kashyap [Tue, 13 Dec 2022 18:26:14 +0000 (10:26 -0800)]
tests: Cleaning up daemon param used in start_topology()
Earlier daemon parameter was passed to
start_topology(), which is not needed now,
as new code is implemented to start
feature specific daemons.
Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
Kuldeep Kashyap [Fri, 9 Dec 2022 15:21:29 +0000 (07:21 -0800)]
tests: Topotests daemon start as per feature test
Currently topotests starts all daemons by default,
made changes to f/w so only needed daemons can
be started, daemons which are needed to tests
particular test suite.
Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
Donald Sharp [Wed, 14 Dec 2022 01:09:45 +0000 (20:09 -0500)]
Merge pull request #12516 from mjstapp/fix_debug_dpdk
zebra: fix flags used for debug dpdk
Mark Stapp [Tue, 13 Dec 2022 22:02:29 +0000 (17:02 -0500)]
zebra: fix flags used for debug dpdk
Use the correct flags for debug zebra dataplane dpdk options.
Signed-off-by: Mark Stapp <mjs@labn.net>
Donald Sharp [Fri, 7 Oct 2022 12:02:44 +0000 (08:02 -0400)]
zebra: Read from the dplane_fpm_nl a route update
Read from the fpm dplane a route update that will
include status about whether or not the asic was
successfull in offloading the route.
Have this data passed up to zebra for processing and disseminate
this data as appropriate.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
David Lamparter [Tue, 13 Dec 2022 17:34:41 +0000 (18:34 +0100)]
accords: CLI coloring
This is pretty much a writeup of the discussion we had on the FRR weekly
call about an hour ago. I added a bunch of detail but hopefully it
still represents the overall consensus.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Donald Sharp [Tue, 13 Dec 2022 17:03:49 +0000 (12:03 -0500)]
Merge pull request #12508 from louis-6wind/ls_prefix_new
lib: fix ls_prefix memory allocation
Russ White [Tue, 13 Dec 2022 15:11:48 +0000 (10:11 -0500)]
Merge pull request #12491 from opensourcerouting/fix/crash_bgp_graceful-restart_json
bgpd: Fix graceful-restart JSON outputs and the crash
Russ White [Tue, 13 Dec 2022 15:08:36 +0000 (10:08 -0500)]
Merge pull request #12501 from opensourcerouting/feature/bgp4v2_bgp4V2PeerEventTimesTable
bgpd: SNMP continued work on IPv6
Russ White [Tue, 13 Dec 2022 14:58:04 +0000 (09:58 -0500)]
Merge pull request #12191 from manojvn/463777
ospf6d: ospf6 route installation when changed from nssa to regular area.
Louis Scalbert [Tue, 13 Dec 2022 14:05:04 +0000 (15:05 +0100)]
lib: fix ls_prefix memory allocation
The wrong size is allocated for struct ls_prefix memory.
Fix ls_prefix memory allocation.
Fixes: b0c0b43348 ("lib: Update Link State Database")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Russ White [Tue, 13 Dec 2022 13:54:13 +0000 (08:54 -0500)]
Merge pull request #12447 from karlquan/master
BGP neighbor JSON output always displays hostname, nexthop and related keys
Donald Sharp [Mon, 12 Dec 2022 23:36:07 +0000 (18:36 -0500)]
Merge pull request #12499 from opensourcerouting/ospf-vertex-leak
ospfd: fix memory leak on SPF calculation
Donald Sharp [Mon, 12 Dec 2022 23:35:53 +0000 (18:35 -0500)]
Merge pull request #12498 from Jafaral/ospf-typo
ospfd: fix typo and report the link name in the warning
Donatas Abraitis [Mon, 12 Dec 2022 19:59:16 +0000 (21:59 +0200)]
bgpd: Implement SNMP BGP4V2-MIB (bgp4V2NlriTable), part 2
```
iso.3.6.1.3.5.1.1.9.1.1.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.2.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.3.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.4.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.4.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.4.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.4.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.4.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.4.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.4.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.4.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.4.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.5.1.4.10.0.0.0.24.192.168.10.65 = Hex-STRING: 0A 00 00 00
iso.3.6.1.3.5.1.1.9.1.5.1.4.100.100.100.100.32.192.168.10.65 = STRING: "dddd"
iso.3.6.1.3.5.1.1.9.1.5.1.4.172.17.0.0.24.192.168.10.65 = Hex-STRING: AC 11 00 00
iso.3.6.1.3.5.1.1.9.1.5.1.4.192.168.0.0.24.192.168.10.65 = Hex-STRING: C0 A8 00 00
iso.3.6.1.3.5.1.1.9.1.5.1.4.192.168.10.0.23.192.168.10.65 = Hex-STRING: C0 A8 0A 00
iso.3.6.1.3.5.1.1.9.1.5.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 02 47 80 00 00 00 00 00 00 00 00 00 00 11 11
iso.3.6.1.3.5.1.1.9.1.5.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 02 47 80 01 23 00 00 00 00 00 00 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.5.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 03 06 80 00 00 00 00 00 00 00 00 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.5.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 03 06 80 00 01 00 00 00 00 00 00 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.6.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 24
iso.3.6.1.3.5.1.1.9.1.6.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 32
iso.3.6.1.3.5.1.1.9.1.6.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 24
iso.3.6.1.3.5.1.1.9.1.6.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 24
iso.3.6.1.3.5.1.1.9.1.6.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 23
iso.3.6.1.3.5.1.1.9.1.6.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 128
iso.3.6.1.3.5.1.1.9.1.6.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 64
iso.3.6.1.3.5.1.1.9.1.6.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 48
iso.3.6.1.3.5.1.1.9.1.6.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 48
iso.3.6.1.3.5.1.1.9.1.7.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.7.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.8.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.8.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.9.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.9.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 3
iso.3.6.1.3.5.1.1.9.1.10.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.10.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.10.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.10.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.10.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.10.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 4
iso.3.6.1.3.5.1.1.9.1.10.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 4
iso.3.6.1.3.5.1.1.9.1.10.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 4
iso.3.6.1.3.5.1.1.9.1.10.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 4
iso.3.6.1.3.5.1.1.9.1.11.1.4.10.0.0.0.24.192.168.10.65 = Hex-STRING: C0 A8 0A 41
iso.3.6.1.3.5.1.1.9.1.11.1.4.100.100.100.100.32.192.168.10.65 = Hex-STRING: C0 A8 0A 41
iso.3.6.1.3.5.1.1.9.1.11.1.4.172.17.0.0.24.192.168.10.65 = Hex-STRING: C0 A8 0A 41
iso.3.6.1.3.5.1.1.9.1.11.1.4.192.168.0.0.24.192.168.10.65 = Hex-STRING: C0 A8 0A 41
iso.3.6.1.3.5.1.1.9.1.11.1.4.192.168.10.0.23.192.168.10.65 = Hex-STRING: C0 A8 0A 41
iso.3.6.1.3.5.1.1.9.1.11.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: FE 80 00 00 00 00 00 00 0A 00 27 FF FE 2C E3 88
iso.3.6.1.3.5.1.1.9.1.11.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: FE 80 00 00 00 00 00 00 0A 00 27 FF FE 2C E3 88
iso.3.6.1.3.5.1.1.9.1.11.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: FE 80 00 00 00 00 00 00 0A 00 27 FF FE 2C E3 88
iso.3.6.1.3.5.1.1.9.1.11.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: FE 80 00 00 00 00 00 00 0A 00 27 FF FE 2C E3 88
iso.3.6.1.3.5.1.1.9.1.14.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.14.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.15.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.15.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.16.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.16.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.17.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.17.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.18.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.18.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.19.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 0
iso.3.6.1.3.5.1.1.9.1.20.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.20.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.21.1.4.10.0.0.0.24.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.1.4.100.100.100.100.32.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.1.4.172.17.0.0.24.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.1.4.192.168.0.0.24.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.1.4.192.168.10.0.23.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.21.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.9.1.22.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.22.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 1
iso.3.6.1.3.5.1.1.9.1.24.1.4.10.0.0.0.24.192.168.10.65 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.1.4.100.100.100.100.32.192.168.10.65 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.1.4.172.17.0.0.24.192.168.10.65 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.1.4.192.168.0.0.24.192.168.10.65 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.1.4.192.168.10.0.23.192.168.10.65 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.2.16.42.2.71.128.10.188.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 02 01 FD EA
iso.3.6.1.3.5.1.1.9.1.24.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 02 01 FD EA
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Thu, 1 Dec 2022 12:12:03 +0000 (14:12 +0200)]
bgpd: Implement SNMP BGP4V2-MIB (bgp4V2NlriTable), part 1
```
iso.3.6.1.3.5.1.1.9.1.1.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.2.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.3.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Thu, 1 Dec 2022 11:26:19 +0000 (13:26 +0200)]
bgpd: Implement SNMP BGP4V2-MIB (bgp4V2PeerEventTimesTable)
```
$ snmpwalk -c public -v1 localhost .1.3.6.1.3.5.1.1.4.1
iso.3.6.1.3.5.1.1.4.1.1.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.1.1.4.192.168.10.65 = Gauge32: 18
iso.3.6.1.3.5.1.1.4.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.2.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.2.1.4.192.168.10.65 = Gauge32: 17
iso.3.6.1.3.5.1.1.4.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.4.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donald Sharp [Mon, 12 Dec 2022 18:55:23 +0000 (13:55 -0500)]
Merge pull request #12485 from opensourcerouting/fix/crash_attrinfo
bgpd: Fix crash for `show bgp attribute-info`
Rafael Zalamena [Mon, 12 Dec 2022 18:11:27 +0000 (15:11 -0300)]
ospfd: fix memory leak on SPF calculation
Fix the following problems:
- Always free vertex next hops on `vertex_parent_free`
- Signalize failure on `ospf_spf_add_parent` when parent already exists
so the caller has the chance to `free()` any allocated resources.
- Don't reuse vertex next hops without the reference count logic in
`ospf_nexthop_calculation`. Instead allocate a new copy so it can be
`free()`d later without complications
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Mark Stapp [Mon, 12 Dec 2022 16:14:10 +0000 (11:14 -0500)]
Merge pull request #12496 from opensourcerouting/ldpd-memleak-plug
lib: fix capability double resource allocation
Donald Sharp [Tue, 4 Oct 2022 19:41:36 +0000 (15:41 -0400)]
zebra: Add ctx to netlink message parsing
Add the initial step of passing in a dplane context
to reading route netlink messages. This code
will be run in two contexts:
a) The normal pthread for reading netlink messages from
the kernel
b) The dplane_fpm_nl pthread.
The goal of this commit is too just allow a) to work
b) will be filled in in the future. Effectively
everything should still be working as it should
pre this change. We will just possibly allow
the passing of the context around( but not used )
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Mon, 3 Oct 2022 17:22:22 +0000 (13:22 -0400)]
zebra: Rearrange dplane_ctx_route_init
In order for a future commit to abstract the dplane_ctx_route_init
so that the kernel can use it, let's move some stuff around
and add a dplane_ctx_route_init_basic that can be used by multiple
different paths
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
create a dplane_ctx_route_init_basic so it can be used
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Mon, 3 Oct 2022 19:28:48 +0000 (15:28 -0400)]
zebra: Add dplane_ctx_get|set_flags
Zebra needs the ability to pass this data around.
Add it to the dplanes ability to pass.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Add a dplane_ctx_set_flags
The dplane_ctx_set_flags call is missing, we will need it. Add it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Mon, 3 Oct 2022 17:13:50 +0000 (13:13 -0400)]
zebra: Remove goto's that do not do anything special
If we have this semantics:
int ret = FAILURE;
if (foo)
goto done;
....
done:
return ret;
This pattern does us no favors and makes it harder to figure out what is going
on. Let's remove.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Wed, 5 Oct 2022 15:28:43 +0000 (11:28 -0400)]
zebra: Re-arrange fpm_read to reduce code duplication
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Wed, 5 Oct 2022 14:04:11 +0000 (10:04 -0400)]
zebra: Add `zrouter.asic_notification_nexthop_control`
Volta submitted notification changes for the dplane that had a
special use case for their system. Volta is no more, the code
is not being actively developed and from talking with ex-Volta
employees there is no current plans to even maintain this code.
Wrap the special handling of nexthops that their asic-dataplane
did in a bit of code to isolate it and allow for future removal,
as that I do not actually believe anyone else is using this code.
Add a CPP_NOTICE several years into the future that will tell us
to remove the code. If someone starts using it then they will
have to notice this variable to set it and hopefully they will
see my CPP_NOTICE to come talk to us. If this is being used then
we can just remove this wrapper.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Wed, 5 Oct 2022 14:26:07 +0000 (10:26 -0400)]
zebra: Return statements do not use paranthesis
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Jafar Al-Gharaibeh [Mon, 12 Dec 2022 15:12:34 +0000 (09:12 -0600)]
ospfd: fix typo and report the link name in the warning
Submitted-by: Marc Boucher <marc@airvitesse.net>
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
Rafael Zalamena [Mon, 12 Dec 2022 12:48:33 +0000 (09:48 -0300)]
lib: fix capability double resource allocation
Don't let `zprivs_caps_init` allocate resources without checking if
there were other caps previously allocated.
This fixes a memory leak that happens on daemons that `fork()` and reuse
the `<daemon>_di` (see `ldpd`/`lde`/`ldpe` code).
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Donatas Abraitis [Sun, 11 Dec 2022 19:38:30 +0000 (21:38 +0200)]
Merge pull request #12487 from anlancs/fix/fix-doc-ospf
doc: fix an incomplete command for ospf
Donatas Abraitis [Sun, 11 Dec 2022 19:37:27 +0000 (21:37 +0200)]
Merge pull request #12457 from donaldsharp/nexthop_free
bgpd: BGP fails to free the nexthop node
Donatas Abraitis [Sun, 11 Dec 2022 19:00:19 +0000 (21:00 +0200)]
bgpd: Fix graceful-restart JSON outputs and the crash
Without this patch:
```
donatas-pc# show bgp neighbors graceful-restart json
vtysh: error reading from bgpd: Resource temporarily unavailable (11)Warning: closing connection to bgpd because of an I/O error!
donatas-pc#
```
And, invalid JSON generated when multiple neighbors exist due to json_neighbor
being freed in a loop.
After the patch:
```
donatas-pc# show bgp ipv4 neighbors 192.168.10.124 graceful-restart json
{
"192.168.10.124":{
"neighborAddr":"192.168.10.124",
"localGrMode":"Helper*",
"remoteGrMode":"Restart",
"rBit":false,
"nBit":true,
"timers":{
"configuredRestartTimer":120,
"receivedRestartTimer":120
},
"ipv4Unicast":{
"fBit":true,
"endOfRibStatus":{
"endOfRibSend":true,
"endOfRibSentAfterUpdate":false,
"endOfRibRecv":true
},
"timers":{
"stalePathTimer":360
}
}
}
}
donatas-pc# show bgp neighbors graceful-restart json
{
"192.168.10.124":{
"neighborAddr":"192.168.10.124",
"localGrMode":"Helper*",
"remoteGrMode":"Restart",
"rBit":false,
"nBit":true,
"timers":{
"configuredRestartTimer":120,
"receivedRestartTimer":120
},
"ipv4Unicast":{
"fBit":true,
"endOfRibStatus":{
"endOfRibSend":true,
"endOfRibSentAfterUpdate":false,
"endOfRibRecv":true
},
"timers":{
"stalePathTimer":360
}
}
},
"2a02:4780:abc::2":{
"neighborAddr":"2a02:4780:abc::2",
"localGrMode":"Helper*",
"remoteGrMode":"Restart",
"rBit":false,
"nBit":true,
"timers":{
"configuredRestartTimer":120,
"receivedRestartTimer":120
},
"ipv4Unicast":{
"fBit":true,
"endOfRibStatus":{
"endOfRibSend":true,
"endOfRibSentAfterUpdate":false,
"endOfRibRecv":true
},
"timers":{
"stalePathTimer":360
}
},
"ipv6Unicast":{
"fBit":true,
"endOfRibStatus":{
"endOfRibSend":true,
"endOfRibSentAfterUpdate":true,
"endOfRibRecv":true
},
"timers":{
"stalePathTimer":360
}
}
}
}
donatas-pc#
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Fri, 9 Dec 2022 20:46:54 +0000 (22:46 +0200)]
bgpd: Fix crash for `show bgp attribute-info`
attr->srv6_vpn might be NULL as well. Let's check both.
Happened after
073801481b0f298a22fa71ee7bbac74adb5e80b9 .
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donald Sharp [Wed, 7 Dec 2022 12:54:58 +0000 (07:54 -0500)]
tests: Add a test to show that BGP does not crash with unnumbered interfaces
This series of events will crash BGP prior to the prior commit:
a) Configure an interfaced based peering
b) Shut the interface the peering is over
c) remove the peering from bgp
Show that this no longer happens
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Pooja Jagadeesh Doijode [Sat, 8 Oct 2022 00:07:46 +0000 (17:07 -0700)]
bgpd: BGP fails to free the nexthop node
In case of BGP unnumbered, BGP fails to free the nexthop
node for peer if the interface is shutdown before
unconfiguring/deleting the BGP neighbor.
This is because, when the interface is shutdown,
peer's LL neighbor address will be cleared. Therefore,
during neighbor deletion, since the peer's neighbor
address is not available, BGP will skip freeing the
nexthop node of this peer. This results in a stale
nexthop node that points to a peer that's already
been freed.
Ticket:
3191547
Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
anlan_cs [Wed, 7 Dec 2022 07:00:27 +0000 (15:00 +0800)]
doc: fix an incomplete command for ospf
The command of "show ip ospf" is incomplete. But "show ipv6 ospf" is fine.
Just complete it with actual parameters.
Signed-off-by: anlan_cs <vic.lan@pica8.com>
Jafar Al-Gharaibeh [Sat, 10 Dec 2022 02:21:33 +0000 (20:21 -0600)]
Merge pull request #12472 from donaldsharp/asic_offload_doc
doc: Clarify asic offload documentation in zebra
Jafar Al-Gharaibeh [Sat, 10 Dec 2022 02:19:28 +0000 (20:19 -0600)]
Merge pull request #12482 from donaldsharp/mem_this
Mem this
Donald Sharp [Sat, 10 Dec 2022 00:44:58 +0000 (19:44 -0500)]
Merge pull request #12462 from opensourcerouting/fix/default_originate_labeled_unicast
bgpd: Labeled unicast with default-originate
Donald Sharp [Sat, 10 Dec 2022 00:43:07 +0000 (19:43 -0500)]
Merge pull request #12483 from opensourcerouting/feature/add_addpath_labeled_more_tests
bgpd: Free memory allocated by info_make() when hitting maximum-prefix
Donald Sharp [Thu, 8 Dec 2022 21:31:50 +0000 (16:31 -0500)]
doc: Clarify asic offload documentation in zebra
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donatas Abraitis [Fri, 9 Dec 2022 18:01:56 +0000 (20:01 +0200)]
bgpd: Free memory allocated by info_make() when hitting maximum-prefix
```
Direct leak of 112 byte(s) in 1 object(s) allocated from:
0 0x7feb66337a06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153
1 0x7feb660cbcc3 in qcalloc lib/memory.c:116
2 0x55cc3cba02d1 in info_make bgpd/bgp_route.c:3831
3 0x55cc3cbab4f1 in bgp_update bgpd/bgp_route.c:4733
4 0x55cc3cbb0620 in bgp_nlri_parse_ip bgpd/bgp_route.c:6111
5 0x55cc3cb79473 in bgp_update_receive bgpd/bgp_packet.c:2020
6 0x55cc3cb7c34a in bgp_process_packet bgpd/bgp_packet.c:2929
7 0x7feb6610ecc5 in thread_call lib/thread.c:2006
8 0x7feb660bfb77 in frr_run lib/libfrr.c:1198
9 0x55cc3cb17232 in main bgpd/bgp_main.c:520
10 0x7feb65ae5082 in __libc_start_main ../csu/libc-start.c:308
SUMMARY: AddressSanitizer: 112 byte(s) leaked in 1 allocation(s).
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donald Sharp [Fri, 9 Dec 2022 18:03:39 +0000 (13:03 -0500)]
Merge pull request #12477 from opensourcerouting/feature/add_addpath_labeled_more_tests
tests: Add more tests for labeled-unicast and addpath
Donald Sharp [Fri, 9 Dec 2022 18:00:39 +0000 (13:00 -0500)]
Merge pull request #12466 from opensourcerouting/bsd-fixes-
20221208
build: FreeBSD fixes
Donatas Abraitis [Fri, 9 Dec 2022 17:02:15 +0000 (19:02 +0200)]
Merge pull request #12464 from taspelund/vxlan_config_docs
doc: add FRR/Linux configuration examples for EVPN
Donald Sharp [Fri, 9 Dec 2022 16:54:13 +0000 (11:54 -0500)]
Merge pull request #12467 from opensourcerouting/fix/advertised_routes_json_naming
bgpd: Deprecate `bgpStatusCodes` and `bgpOriginCodes`
Donald Sharp [Fri, 9 Dec 2022 13:51:34 +0000 (08:51 -0500)]
zebra: Free up routemap name memory on vrf deletion event
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Fri, 9 Dec 2022 13:37:45 +0000 (08:37 -0500)]
lib: Hide list macros in linklist.c
The LISTNODE_ATTACH|DELETE macros are only used in
linklist.c. Let's remove temptation from people
to use them.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Fri, 9 Dec 2022 13:32:12 +0000 (08:32 -0500)]
ospf6d: Don't allocate json memory in non-json path
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Fri, 9 Dec 2022 13:14:31 +0000 (08:14 -0500)]
zebra: Actually free all memory associated ctx->u.iptable.interface_name_list
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Mark Stapp [Fri, 9 Dec 2022 13:34:55 +0000 (08:34 -0500)]
Merge pull request #12471 from opensourcerouting/fix/gh_actions_on_forks_forbidden
github: Prevent running actions on forked repositories
Donald Sharp [Fri, 9 Dec 2022 12:44:26 +0000 (07:44 -0500)]
isisd: Fix sadj memory leak
In some cases the sadj was directly dropped.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donatas Abraitis [Fri, 9 Dec 2022 12:12:32 +0000 (14:12 +0200)]
tests: Add more tests for labeled-unicast and addpath
Check if we advertise more routes when an additional path comes up, and
if we withdraw if dissapears.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Fri, 9 Dec 2022 07:20:00 +0000 (09:20 +0200)]
Merge pull request #12470 from donaldsharp/cleanup_topos
tests: ospf_gr_helper tests are slow
Donatas Abraitis [Fri, 9 Dec 2022 07:17:45 +0000 (09:17 +0200)]
Merge pull request #12473 from donaldsharp/ensure_used
bgpd: Don't always allocate json memory in non-json path
Donald Sharp [Thu, 8 Dec 2022 23:22:17 +0000 (18:22 -0500)]
bgpd: Don't always allocate json memory in non-json path
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Ryoga Saito [Tue, 6 Dec 2022 17:27:16 +0000 (02:27 +0900)]
tests: Add topotest bgp_vrf_leaking_5549_routes
To verify previous changes, this PR introduces topotest to verify
whether imported routes learnt from BGP unnumbered peers will be active
on VPN RIB and other VRF RIB.
Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
Donatas Abraitis [Thu, 8 Dec 2022 20:54:28 +0000 (22:54 +0200)]
github: Prevent running actions on forked repositories
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Trey Aspelund [Wed, 7 Dec 2022 19:57:09 +0000 (14:57 -0500)]
doc: add FRR/Linux configuration examples for EVPN
The existing EVPN documentation in bgp.rst does not provide a holistic
configuration, just examples of individual features, and doesn't give
an operator any idea of what a compatible Linux netdev configuration
might look like. This introduces evpn.rst which includes a sample
frr.conf and corresponding Linux interface config (via iproute2) that
an operator can use to setup a basic EVPN topology and model their
interface manager's config from.
This initial version of evpn.rst shows Linux netdev config for
traditional bridges (vlan_filtering=0) and traditional vxlan devices
(single VNI). Later changes to this file will cover the use of
VLAN-aware bridges (vlan_filtering=1), single VXLAN devices
(multi VNI), and eventually bonds (for EVPN-MH).
Eventually the plan is to move the existing EVPN content from bgp.rst
into evpn.rst, but for now let's get some user-facing documentation in
place for interface configs.
Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
Donald Sharp [Thu, 8 Dec 2022 19:31:31 +0000 (14:31 -0500)]
Merge pull request #12463 from opensourcerouting/fix/totalPrefixCounter_with_default_originate
bgpd: totalPrefixCounter incorectly shows sent prefix count
Donald Sharp [Thu, 8 Dec 2022 19:22:36 +0000 (14:22 -0500)]
Merge pull request #12468 from mjstapp/fix_log_command_types
lib: fix zlog command types table
Donald Sharp [Thu, 8 Dec 2022 15:25:34 +0000 (10:25 -0500)]
tests: ospf_gr_helper tests are slow
With a dead interval of 40 seconds, each tests is waiting 40+
seconds for ospf convergence to occurr because the DR is re-elected
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Quentin Young [Thu, 8 Dec 2022 17:39:48 +0000 (12:39 -0500)]
Merge pull request #12430 from opensourcerouting/accords
Mark Stapp [Thu, 8 Dec 2022 16:37:51 +0000 (11:37 -0500)]
lib: fix zlog command types table
Fix a number of differences between the zapi message enum
and the log description table.
Signed-off-by: Mark Stapp <mjs@labn.net>
Donatas Abraitis [Thu, 8 Dec 2022 14:35:11 +0000 (16:35 +0200)]
Merge pull request #12461 from donaldsharp/evpn_mh_crash
bgpd: Prevent crash in evpn when using default vrf
Donatas Abraitis [Thu, 8 Dec 2022 13:46:43 +0000 (15:46 +0200)]
bgpd: Deprecate `bgpStatusCodes` and `bgpOriginCodes`
```
donatas-pc# sh ip bgp neighbors 192.168.10.124 advertised-routes json
{
"bgpTableVersion":11,
"bgpLocalRouterId":"192.168.10.17",
"defaultLocPrf":100,
"localAS":65002,
"bgpStatusCodes":{
"suppressed":"s",
"damped":"d",
"history":"h",
"valid":"*",
"best":">",
"multipath":"=",
"internal":"i",
"ribFailure":"r",
"stale":"S",
"removed":"R"
},
"bgpOriginCodes":{
"igp":"i",
"egp":"e",
"incomplete":"?"
},
"advertisedRoutes":{
"200.200.200.200\/32":{
"addrPrefix":"200.200.200.200",
"prefixLen":32,
"network":"200.200.200.200\/32",
"nextHopGlobal":"2a02:4780:abc::2",
"weight":0,
"path":"65001",
"bgpOriginCode":"?",
"origin":"incomplete", <<<<<<<
"valid":true, <<<<<<<<
"best":true, <<<<<<<<
"appliedStatusSymbols":{
"*":true,
">":true
}
}
},
"totalPrefixCounter":1,
"filteredPrefixCounter":0
}
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
David Lamparter [Thu, 8 Dec 2022 13:17:17 +0000 (14:17 +0100)]
doc: add FreeBSD 13 build docs
Some minor changes since FreeBSD 11, mostly fewer extra sauce.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
David Lamparter [Thu, 8 Dec 2022 11:45:38 +0000 (12:45 +0100)]
build: pim6d is Linux only
This stops breaking build on FreeBSD.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
David Lamparter [Thu, 8 Dec 2022 11:35:03 +0000 (12:35 +0100)]
build: fix sed regex in Lua macro
Using `\s` to match whitespace is not portable, use `[[:space:]]`
instead.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
David Lamparter [Fri, 2 Dec 2022 10:39:56 +0000 (11:39 +0100)]
doc: introduce FRR community "accords"
The idea here is to pass "non-code agreements" through the PR review
mechanism, and have them visible in the git tree.
Two "example" (but real) accords are included, mostly to illustrate the
idea. Both of these should be non-controversial and have had some
previous discussion in random places.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Donatas Abraitis [Wed, 7 Dec 2022 21:31:36 +0000 (23:31 +0200)]
bgpd: totalPrefixCounter incorectly shows sent prefix count
Using: show bgp ipv4 unicast neighbors 192.168.12.2 advertised-routes json
Before:
```
"bgpOriginatingDefaultNetwork":"0.0.0.0\/0",
"advertisedRoutes":{
"192.168.12.0\/24":{
"addrPrefix":"192.168.12.0",
"prefixLen":24,
"network":"192.168.12.0\/24",
"nextHop":"0.0.0.0",
"metric":0,
"weight":32768,
"path":"",
"bgpOriginCode":"?",
"appliedStatusSymbols":{
"*":true,
">":true
}
}
},
"totalPrefixCounter":1,
"filteredPrefixCounter":0
```
After:
```
"bgpOriginatingDefaultNetwork":"0.0.0.0\/0",
"advertisedRoutes":{
"192.168.12.0\/24":{
"addrPrefix":"192.168.12.0",
"prefixLen":24,
"network":"192.168.12.0\/24",
"nextHop":"0.0.0.0",
"metric":0,
"weight":32768,
"path":"",
"bgpOriginCode":"?",
"appliedStatusSymbols":{
"*":true,
">":true
}
}
},
"totalPrefixCounter":2,
"filteredPrefixCounter":0
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Wed, 7 Dec 2022 21:24:28 +0000 (23:24 +0200)]
tests: Check if default-originate works with labeled-unicast
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Wed, 7 Dec 2022 20:57:29 +0000 (22:57 +0200)]
bgpd: Announce labeled-unicast default-originate
Without this patch, this just crashes:
```
(gdb) bt
0 raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:51
1 0x00007f66d977b10c in core_handler (signo=11, siginfo=0x7ffd87aa0430, context=<optimized out>) at lib/sigevent.c:261
2 <signal handler called>
3 stream_put_labeled_prefix (s=s@entry=0x55bd3ce53050, p=p@entry=0x7ffd87aa0a20, label=label@entry=0x0, addpath_capable=<optimized out>, addpath_tx_id=addpath_tx_id@entry=1)
at lib/stream.c:1057
4 0x000055bd3bfba176 in bgp_packet_mpattr_prefix (s=s@entry=0x55bd3ce53050, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_LABELED_UNICAST, p=p@entry=0x7ffd87aa0a20, prd=prd@entry=0x0,
label=label@entry=0x0, num_labels=0, addpath_capable=true, addpath_tx_id=1, attr=0x7ffd87aa2c20) at bgpd/bgp_attr.c:3964
5 0x000055bd3bfba2b5 in bgp_packet_attribute (bgp=0x55bd3cd8e470, bgp@entry=0x0, peer=peer@entry=0x55bd3cf21fc0, s=s@entry=0x55bd3ce53050, attr=attr@entry=0x7ffd87aa2c20,
vecarr=vecarr@entry=0x7ffd87aa0a10, p=p@entry=0x7ffd87aa0a20, afi=AFI_IP, safi=SAFI_LABELED_UNICAST, from=0x7f66d9ba9010, prd=0x0, label=0x0, num_labels=0, addpath_capable=true,
addpath_tx_id=1, bpi=0x0) at bgpd/bgp_attr.c:4139
6 0x000055bd3c04d455 in subgroup_default_update_packet (subgrp=subgrp@entry=0x55bd3cd885b0, attr=attr@entry=0x7ffd87aa2c20, from=from@entry=0x7f66d9ba9010) at bgpd/bgp_updgrp_packet.c:1129
7 0x000055bd3c04a9a5 in subgroup_default_originate (subgrp=0x55bd3cd885b0, withdraw=withdraw@entry=0) at bgpd/bgp_updgrp_adv.c:972
8 0x000055bd3c022668 in bgp_default_originate (peer=peer@entry=0x7f66d574a010, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_LABELED_UNICAST, withdraw=withdraw@entry=0)
at bgpd/bgp_route.c:5037
9 0x000055bd3c0922e0 in peer_default_originate_set (peer=0x7f66d574a010, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_LABELED_UNICAST, rmap=rmap@entry=0x0, route_map=route_map@entry=0x0)
at bgpd/bgpd.c:5428
10 0x000055bd3c076c07 in peer_default_originate_set_vty (set=1, rmap=0x0, safi=SAFI_LABELED_UNICAST, afi=AFI_IP, peer_str=<optimized out>, vty=0x55bd3ce4c900) at bgpd/bgp_vty.c:6941
11 neighbor_default_originate (self=<optimized out>, vty=0x55bd3ce4c900, argc=<optimized out>, argv=<optimized out>) at bgpd/bgp_vty.c:6958
12 0x00007f66d9721dc0 in cmd_execute_command_real (vline=vline@entry=0x55bd3cd874d0, vty=vty@entry=0x55bd3ce4c900, cmd=cmd@entry=0x0, up_level=up_level@entry=0, filter=FILTER_RELAXED)
at lib/command.c:996
13 0x00007f66d9721f39 in cmd_execute_command (vline=vline@entry=0x55bd3cd874d0, vty=vty@entry=0x55bd3ce4c900, cmd=cmd@entry=0x0, vtysh=vtysh@entry=0) at lib/command.c:1055
14 0x00007f66d9722162 in cmd_execute (vty=vty@entry=0x55bd3ce4c900, cmd=cmd@entry=0x55bd3cd8a230 "neighbor 192.168.34.4 default-originate ", matched=matched@entry=0x0, vtysh=vtysh@entry=0)
at lib/command.c:1223
15 0x00007f66d9792337 in vty_command (vty=vty@entry=0x55bd3ce4c900, buf=<optimized out>) at lib/vty.c:486
16 0x00007f66d9792570 in vty_execute (vty=0x55bd3ce4c900) at lib/vty.c:1249
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donald Sharp [Wed, 7 Dec 2022 19:06:12 +0000 (14:06 -0500)]
bgpd: Prevent crash in evpn when using default vrf
The default vrf in bgp when created, ends up having the
bgp->name as NULL. This of course crashes the ilk
of `json_object_string_add` when a NULL is passed in.
Go through all the places in bgp_evpn_mh.c and fix
so that it doesn't crash.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Donald Sharp [Wed, 7 Dec 2022 18:17:25 +0000 (13:17 -0500)]
Merge pull request #12460 from opensourcerouting/msdp-fixes
pimd: two MSDP packet handling fixes
Rafael Zalamena [Wed, 7 Dec 2022 14:49:26 +0000 (11:49 -0300)]
pimd: fix MSDP packet debug crashes
Add some safe guards to avoid crashes and alert us about programming
errors in packet build.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Rafael Zalamena [Wed, 7 Dec 2022 14:48:47 +0000 (11:48 -0300)]
pimd: fix MSDP crash on unexpected TLV sizes
Increase the MSDP peer stream buffer size to handle the whole TLV
(maximum is 65KiB due to 16bit field). If the stream is not resized
there will be a crash in the read function attempting to put more than
9192 (`PIM_MSDP_SA_TLV_MAX_SIZE`) bytes.
According to the RFC 3618 Section 12 we should accept the TLV and we
should not reset the peer connection.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Donald Sharp [Wed, 7 Dec 2022 13:03:59 +0000 (08:03 -0500)]
Merge pull request #12456 from opensourcerouting/fix/bgpd_labeled_unicast_rr_addpath
bgpd: Labeled unicast fixes for addpath capability
Donatas Abraitis [Tue, 6 Dec 2022 16:28:17 +0000 (18:28 +0200)]
bgpd: Adopt addpath functionality for labeled-unicast
The same as for RIB, labeled-unicast allocations should live in
unicast space.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas Abraitis [Tue, 6 Dec 2022 16:27:40 +0000 (18:27 +0200)]
bgpd: Show in JSON if the advertised path is multipath
```
"advertisedRoutes":{
"10.0.0.1\/32":{
"addrPrefix":"10.0.0.1",
"prefixLen":32,
"network":"10.0.0.1\/32",
"nextHop":"0.0.0.0",
"weight":0,
"path":"65001",
"bgpOriginCode":"?",
"appliedStatusSymbols":{
"*":true,
">":true,
"=":true
}
}
},
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donald Sharp [Tue, 6 Dec 2022 19:11:47 +0000 (14:11 -0500)]
Merge pull request #12339 from anlancs/fix/bgpd-null-show
bgpd: fix null pointer dereference
Donald Sharp [Tue, 6 Dec 2022 19:11:03 +0000 (14:11 -0500)]
Merge pull request #12455 from mjstapp/revert_stop_zebra_last
tools: revert stop zebra daemon last
Manoj Naragund [Wed, 30 Nov 2022 06:33:07 +0000 (22:33 -0800)]
tests: Testcase for OSPFv3 learning.
Have added topotest to verify OSPF can learn different types of LSA,
and processes them
Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
Russ White [Tue, 6 Dec 2022 16:29:31 +0000 (11:29 -0500)]
Merge pull request #12415 from donaldsharp/bgp_use_after_free
Bgp use after free
Donatas Abraitis [Tue, 6 Dec 2022 16:24:13 +0000 (18:24 +0200)]
tests: Check if labeled-unicast works correctly with addpath capability
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Mark Stapp [Tue, 6 Dec 2022 16:21:02 +0000 (11:21 -0500)]
Revert "tools: stop zebra daemon last"
This reverts commit
2000ac4075bbe1a9557ee30286309d3ade72b3a7 .
There were concerns that ensuring zebra stopped last led to
problems with zebra's "-r" flag, so we'll revert that for the
time being and reconsider this area.
Signed-off-by: Mark Stapp <mjs@labn.net>
Russ White [Tue, 6 Dec 2022 13:59:44 +0000 (08:59 -0500)]
Merge pull request #12322 from fdumontet6WIND/confed_num
bgp: fix case where confederation id same as member-as
Russ White [Tue, 6 Dec 2022 13:57:17 +0000 (08:57 -0500)]
Merge pull request #12390 from sigeryang/vrrp-interop
vrrpd: add IPv4 pseudoheader option for VRRPv3