]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
2 years agozebra: fix a couple of typos
Mark Stapp [Tue, 3 Jan 2023 15:46:01 +0000 (10:46 -0500)]
zebra: fix a couple of typos

Fix a couple of typos in vty prompt and output text.

Signed-off-by: Mark Stapp <mjs@labn.net>
2 years agoMerge pull request #12535 from donaldsharp/mpattr_size_enum
Donatas Abraitis [Mon, 19 Dec 2022 18:54:53 +0000 (20:54 +0200)]
Merge pull request #12535 from donaldsharp/mpattr_size_enum

Use switch statements without default for safi_t and afi_t enum's

2 years agoMerge pull request #12537 from anlancs/fix/fpm-debug-info
Rafael Zalamena [Mon, 19 Dec 2022 18:01:43 +0000 (15:01 -0300)]
Merge pull request #12537 from anlancs/fix/fpm-debug-info

zebra: fix wrong gateway for fpm debug

2 years agoMerge pull request #12538 from donaldsharp/zebra_crash_in_shutdown
Rafael Zalamena [Mon, 19 Dec 2022 17:58:49 +0000 (14:58 -0300)]
Merge pull request #12538 from donaldsharp/zebra_crash_in_shutdown

zebra: Ensure memory is not freed that dplane depends on in shutdown

2 years agoMerge pull request #12534 from donaldsharp/notice_missed
Mark Stapp [Mon, 19 Dec 2022 14:31:12 +0000 (09:31 -0500)]
Merge pull request #12534 from donaldsharp/notice_missed

zebra: Notice Optional Router Advertisement types that are not handled

2 years agozebra: Notice Optional Router Advertisement types that are not handled
Donald Sharp [Wed, 12 Oct 2022 11:59:37 +0000 (07:59 -0400)]
zebra: Notice Optional Router Advertisement types that are not handled

Currently when zebra receives a RA with optional types, note
the optional types that we are ignoring.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Ensure memory is not freed that dplane depends on in shutdown
Donald Sharp [Sat, 17 Dec 2022 19:09:29 +0000 (14:09 -0500)]
zebra: Ensure memory is not freed that dplane depends on in shutdown

Zebra has a shutdown setup where it asks the dplane to shutdown but can
still be processing data.  This is especially true if something the dplane
is listening on receives data that will be processed by the main dplane thread
from netlink.   When zebra_finalize is called it is possible that a bit
of data comes in before the zebra_dplane_shutdown() function is called
and the memory freed in ns_walk_func() causes the main dplane event
to crash when it cannot find the ns data anymore.

Reverse the order, stop the zebra dplane pthread and then free the
memory associated with the namespaces.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #12536 from donaldsharp/peer_print_null
Donatas Abraitis [Sat, 17 Dec 2022 14:59:53 +0000 (16:59 +0200)]
Merge pull request #12536 from donaldsharp/peer_print_null

bgpd: Print out useful information about peer

2 years agozebra: fix wrong gateway for fpm debug
anlan_cs [Sat, 17 Dec 2022 08:25:56 +0000 (16:25 +0800)]
zebra: fix wrong gateway for fpm debug

The wrong parameter is passed in `inet_ntop()` of `zfpm_log_route_info()` in
old fpm module, so the display of gateway is always wrong. Just remove
that extra ampersand.

Additionally, use "none" as gateway value for the case of no gateway.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #12533 from donaldsharp/returns_are_needed
Mark Stapp [Fri, 16 Dec 2022 17:42:14 +0000 (12:42 -0500)]
Merge pull request #12533 from donaldsharp/returns_are_needed

lib, staticd: return values even after an assert

2 years agobgpd: Print out useful information about peer
Donald Sharp [Fri, 16 Dec 2022 14:32:44 +0000 (09:32 -0500)]
bgpd: Print out useful information about peer

I am seeing this output:
2022/12/16 09:16:00.206 BGP: [MNE5N-K0G4Z] Resetting peer (null) due to change in addpath config

Switch over to %pBP

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #12522 from donaldsharp/some_various_stuff
David Lamparter [Fri, 16 Dec 2022 14:30:37 +0000 (15:30 +0100)]
Merge pull request #12522 from donaldsharp/some_various_stuff

2 years agobgpd: Convert bgp_packet_mpattr_prefix to use an enum for safi's
Donald Sharp [Fri, 16 Dec 2022 13:43:16 +0000 (08:43 -0500)]
bgpd: Convert bgp_packet_mpattr_prefix to use an enum for safi's

The function bgp_packet_mpattr_prefix was using an if statement
to encode packets to the peer.  Change it to a switch and make
it handle all the cases and fail appropriately when something
has gone wrong.  Hopefully in the future when a new afi/safi
is added we can catch it by compilation breaking instead of
weird runtime errors

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: make bgp_packet_mpattr_start more prescriptive when using enum's
Donald Sharp [Fri, 16 Dec 2022 13:17:18 +0000 (08:17 -0500)]
bgpd: make bgp_packet_mpattr_start more prescriptive when using enum's

This function was just using default: case statements for
the encoding of nlri's to a peer.  Lay out all the different
cases and make things fail hard when a dev escape is found.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Convert bgp_packet_mpattr_prefix_size to use an enum
Donald Sharp [Fri, 16 Dec 2022 12:58:54 +0000 (07:58 -0500)]
bgpd: Convert bgp_packet_mpattr_prefix_size to use an enum

The function bgp_packet_mpattr_prefix_size had an if/else
body that allowed people to add encoding types to bgpd
such that we could build the wrong size packets.  This
was exposed recently in commit:
0a9705a1e07c1d8176fd21f8f1bde2a9a155331b

Where it was discovered flowspec was causing bgp update
messages to exceed the maximum size and the peer to
drop the connection.  Let's be proscriptive about this
and hopefully make it so that things don't work when
someone adds a new safi to the system ( and they'll have
to update this function ).

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #12528 from spoignant-proton/master
Donald Sharp [Fri, 16 Dec 2022 12:50:43 +0000 (07:50 -0500)]
Merge pull request #12528 from spoignant-proton/master

bgpd: Add support for flowspec prefixes in bgp_packet_mpattr_prefix_size

2 years agoMerge pull request #12532 from opensourcerouting/fix/do_not_forget_updating_docs
Donald Sharp [Fri, 16 Dec 2022 12:42:04 +0000 (07:42 -0500)]
Merge pull request #12532 from opensourcerouting/fix/do_not_forget_updating_docs

docs: Do not forget updating default version for readthedocs.org

2 years agolib, staticd: return values even after an assert
Donald Sharp [Fri, 16 Dec 2022 12:38:58 +0000 (07:38 -0500)]
lib, staticd: return values even after an assert

When compiling with -fsanitize=thread.  I started getting this error:

staticd/static_zebra.c: In function ‘static_zebra_nht_get_prefix’:
staticd/static_zebra.c:316:1: error: control reaches end of non-void function [-Werror=return-type]
  316 | }
      | ^

Just to make future efforts still work, let's just make the compiler happy.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agodocs: Do not forget updating default version for readthedocs.org
Donatas Abraitis [Fri, 16 Dec 2022 07:57:25 +0000 (09:57 +0200)]
docs: Do not forget updating default version for readthedocs.org

docs.frrouting.org

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #10576 from louis-6wind/fix-l3vpn-igmetric
Donatas Abraitis [Fri, 16 Dec 2022 07:18:01 +0000 (09:18 +0200)]
Merge pull request #10576 from louis-6wind/fix-l3vpn-igmetric

bgpd: fix the IGP metric for best path selection on VPN import

2 years agoMerge pull request #12530 from taspelund/remote_macip_memleak
Mark Stapp [Thu, 15 Dec 2022 21:48:16 +0000 (16:48 -0500)]
Merge pull request #12530 from taspelund/remote_macip_memleak

bgpd: cleanup macip_path_list for remote macip

2 years agobgpd: cleanup macip_path_list for remote macip
Trey Aspelund [Thu, 15 Dec 2022 18:49:43 +0000 (18:49 +0000)]
bgpd: cleanup macip_path_list for remote macip

ASAN reported the following memleak:
```
Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x4d4342 in calloc (/usr/lib/frr/bgpd+0x4d4342)
    #1 0xbc3d68 in qcalloc /home/sharpd/frr8/lib/memory.c:116:27
    #2 0xb869f7 in list_new /home/sharpd/frr8/lib/linklist.c:64:9
    #3 0x5a38bc in bgp_evpn_remote_ip_hash_alloc /home/sharpd/frr8/bgpd/bgp_evpn.c:6789:24
    #4 0xb358d3 in hash_get /home/sharpd/frr8/lib/hash.c:162:13
    #5 0x593d39 in bgp_evpn_remote_ip_hash_add /home/sharpd/frr8/bgpd/bgp_evpn.c:6881:7
    #6 0x59dbbd in install_evpn_route_entry_in_vni_common /home/sharpd/frr8/bgpd/bgp_evpn.c:3049:2
    #7 0x59cfe0 in install_evpn_route_entry_in_vni_ip /home/sharpd/frr8/bgpd/bgp_evpn.c:3126:8
    #8 0x59c6f0 in install_evpn_route_entry /home/sharpd/frr8/bgpd/bgp_evpn.c:3318:8
    #9 0x59bb52 in install_uninstall_route_in_vnis /home/sharpd/frr8/bgpd/bgp_evpn.c:3888:10
    #10 0x59b6d2 in bgp_evpn_install_uninstall_table /home/sharpd/frr8/bgpd/bgp_evpn.c:4019:5
    #11 0x578857 in install_uninstall_evpn_route /home/sharpd/frr8/bgpd/bgp_evpn.c:4051:9
    #12 0x58ada6 in bgp_evpn_import_route /home/sharpd/frr8/bgpd/bgp_evpn.c:6049:9
    #13 0x713794 in bgp_update /home/sharpd/frr8/bgpd/bgp_route.c:4842:3
    #14 0x583fa0 in process_type2_route /home/sharpd/frr8/bgpd/bgp_evpn.c:4518:9
    #15 0x5824ba in bgp_nlri_parse_evpn /home/sharpd/frr8/bgpd/bgp_evpn.c:5732:8
    #16 0x6ae6a2 in bgp_nlri_parse /home/sharpd/frr8/bgpd/bgp_packet.c:363:10
    #17 0x6be6fa in bgp_update_receive /home/sharpd/frr8/bgpd/bgp_packet.c:2020:15
    #18 0x6b7433 in bgp_process_packet /home/sharpd/frr8/bgpd/bgp_packet.c:2929:11
    #19 0xd00146 in thread_call /home/sharpd/frr8/lib/thread.c:2006:2
```

The list itself was not being cleaned up when the final list entry was
removed, so make sure we do that instead of leaking memory.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2 years agobgpd: If we don't find what we are looking for cleanup the json structure
Donald Sharp [Wed, 14 Dec 2022 21:31:37 +0000 (16:31 -0500)]
bgpd: If we don't find what we are looking for cleanup the json structure

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agolib: Fix free function
Donald Sharp [Wed, 14 Dec 2022 20:53:06 +0000 (15:53 -0500)]
lib: Fix free function

The list delete function on creation was set to srv6_locator_chunk_free
Which takes a double pointer and dereferences it to free the data.
When list_delete is called it calls the delete function like this:
                if (*list->del)
                        (*list->del)(node->data);

The data is not passed in by reference and as such we do not have
a double pointer.  Fortunately this list_delete is only really
called on shutdown when the locator was deleted and we do not
have a fun situation where we were suddenly freeing 'something'.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospf6d: Fix auth_key string memory leak
Donald Sharp [Wed, 14 Dec 2022 20:22:38 +0000 (15:22 -0500)]
ospf6d: Fix auth_key string memory leak

When using auth keys in ospfv3, there are some memory
leaks when you change the key or remove the interface

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: When freeing the early route queue, actually free it right
Donald Sharp [Wed, 14 Dec 2022 19:20:26 +0000 (14:20 -0500)]
zebra: When freeing the early route queue, actually free it right

The early route queue has a series of `struct zebra_early_route *`
entries.  Zebra is treating this memory as just a `struct route entry`.
This is wrong.  Correct this to free the memory correctly.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agolib, tests, zebra: Remove unused workqueue error function
Donald Sharp [Wed, 14 Dec 2022 19:05:11 +0000 (14:05 -0500)]
lib, tests, zebra: Remove unused workqueue error function

The wq->spec.errorfunc is never used in the code.
It's been in the code base since 2005 and I also
do not remember ever seeing it being called.  No
workqueue process function ever returns error.
Since it's not used let's just remove it from the
code base.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Limit run of config_timing when building with --enable-address-sanitizer
Donald Sharp [Wed, 14 Dec 2022 17:53:53 +0000 (12:53 -0500)]
tests: Limit run of config_timing when building with --enable-address-sanitizer

Building FRR with --enable-address-sanitizer and then running the
config_timing test makes the test run for over an hour on my machine.
The goal of this test is to ensure that the test runs 10000 routes
in/out in a reasonable amount of time.  We cannot test this with
address-sanitizer enabled.  So just make the test meaningless
from a timing perspective but keep it `alive` from a it might
catch some address sanitizer issue with 50 -vs- 10000 routes

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Fix nexthop group memory leak
Donald Sharp [Wed, 14 Dec 2022 17:30:43 +0000 (12:30 -0500)]
zebra: Fix nexthop group memory leak

Address Sanitizer found this:

=================================================================
==418623==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 128 byte(s) in 4 object(s) allocated from:
    #0 0x4bd732 in calloc (/usr/lib/frr/zebra+0x4bd732)
    #1 0x7feaeab8f798 in qcalloc /home/sharpd/frr8/lib/memory.c:116:27
    #2 0x7feaeaba40f4 in nexthop_group_new /home/sharpd/frr8/lib/nexthop_group.c:270:9
    #3 0x56859b in netlink_route_change_read_unicast /home/sharpd/frr8/zebra/rt_netlink.c:950:9
    #4 0x5651c2 in netlink_route_change /home/sharpd/frr8/zebra/rt_netlink.c:1204:2
    #5 0x54af15 in netlink_information_fetch /home/sharpd/frr8/zebra/kernel_netlink.c:407:10
    #6 0x53e7a3 in netlink_parse_info /home/sharpd/frr8/zebra/kernel_netlink.c:1184:12
    #7 0x548d46 in kernel_read /home/sharpd/frr8/zebra/kernel_netlink.c:501:2
    #8 0x7feaeacc87f6 in thread_call /home/sharpd/frr8/lib/thread.c:2006:2
    #9 0x7feaeab36503 in frr_run /home/sharpd/frr8/lib/libfrr.c:1198:3
    #10 0x550d38 in main /home/sharpd/frr8/zebra/main.c:476:2
    #11 0x7feaea492d09 in __libc_start_main csu/../csu/libc-start.c:308:16

Indirect leak of 576 byte(s) in 4 object(s) allocated from:
    #0 0x4bd732 in calloc (/usr/lib/frr/zebra+0x4bd732)
    #1 0x7feaeab8f798 in qcalloc /home/sharpd/frr8/lib/memory.c:116:27
    #2 0x7feaeab9b3f8 in nexthop_new /home/sharpd/frr8/lib/nexthop.c:373:7
    #3 0x56875e in netlink_route_change_read_unicast /home/sharpd/frr8/zebra/rt_netlink.c:960:15
    #4 0x5651c2 in netlink_route_change /home/sharpd/frr8/zebra/rt_netlink.c:1204:2
    #5 0x54af15 in netlink_information_fetch /home/sharpd/frr8/zebra/kernel_netlink.c:407:10
    #6 0x53e7a3 in netlink_parse_info /home/sharpd/frr8/zebra/kernel_netlink.c:1184:12
    #7 0x548d46 in kernel_read /home/sharpd/frr8/zebra/kernel_netlink.c:501:2
    #8 0x7feaeacc87f6 in thread_call /home/sharpd/frr8/lib/thread.c:2006:2
    #9 0x7feaeab36503 in frr_run /home/sharpd/frr8/lib/libfrr.c:1198:3
    #10 0x550d38 in main /home/sharpd/frr8/zebra/main.c:476:2
    #11 0x7feaea492d09 in __libc_start_main csu/../csu/libc-start.c:308:16

SUMMARY: AddressSanitizer: 704 byte(s) leaked in 8 allocation(s).

Fix this!

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agolib: On shutdown, disable snmp from working
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>
2 years agotests: fix IGP metric best path selection in bgp_l3vpn_to_bgp_vrf
Louis Scalbert [Wed, 26 Oct 2022 15:35:52 +0000 (17:35 +0200)]
tests: fix IGP metric best path selection in bgp_l3vpn_to_bgp_vrf

The L3VPN best path computation now takes into accound the IGP metric.

Adapt the bgp_l3vpn_to_bgp_vrf tests so that routes with the best IGP
metric are selected when needed.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agotests: add a bgp path selection topotest
Louis Scalbert [Mon, 24 Oct 2022 13:42:42 +0000 (15:42 +0200)]
tests: add a bgp path selection topotest

Add a bgp path selection topotest to the IGP metric path selection.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agobgpd: display the IGP metric of the ultimate path in snmp
Louis Scalbert [Thu, 3 Nov 2022 11:01:51 +0000 (12:01 +0100)]
bgpd: display the IGP metric of the ultimate path in snmp

Display the IGP metric of the ultimate path in the SNMP OID
mplsL3VpnVrfRteInetCidrMetric1.

Fixes: da0c0ef70c ("bgpd: VRF-Lite fix best path selection")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agobgpd: display the IGP metric of the ultimate path in route details
Louis Scalbert [Mon, 14 Feb 2022 14:17:53 +0000 (15:17 +0100)]
bgpd: display the IGP metric of the ultimate path in route details

Display IGP metric of the ultimate path in the command
"show bgp vrf X ipv(4|6)".

Fixes: da0c0ef70c ("bgpd: VRF-Lite fix best path selection")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agobgpd: fix the IGP metric for best path selection on VPN import
Louis Scalbert [Mon, 14 Feb 2022 13:18:10 +0000 (14:18 +0100)]
bgpd: fix the IGP metric for best path selection on VPN import

Since the commit da0c0ef70c ("bgpd: VRF-Lite fix best path selection"),
the best path selection is made from the comparison of the attributes
of the original route i.e. the ultimate path.

The IGP metric is currently set on the child path instead of the
ultimate path (i.e. the parent path). On eBGP, the ultimate path is the
child path. However, for imported routes, the ultimate path is always
set to 0, which results in skipping the IGP metric comparison when
selecting the best path.

Set the IGP metric on the ultimate path when a BGP nexthop is added or
updated.

Fixes: da0c0ef70c ("bgpd: VRF-Lite fix best path selection")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agobgpd: Add support for flowspec prefixes in bgp_packet_mpattr_prefix_size
Stephane Poignant [Thu, 15 Dec 2022 13:53:48 +0000 (14:53 +0100)]
bgpd: Add support for flowspec prefixes in bgp_packet_mpattr_prefix_size

Currently, bgp_packet_mpattr_prefix_size (bgpd/bgp_attr.c:3978) always returns zero for Flowspec prefixes.
This is because, for flowspec prefixes, the prefixlen attribute of the prefix struct is always set to 0, and the actual length is bytes is set inside the flowspec_prefix struct instead (see lib/prefix.h:293 and lib/prefix.h:178).
Because of this, with a large number of flowspec NLRIs, bgpd ends up building update messages that exceed the maximum size and cause the peer to drop the connection (bgpd/bgp_updgrp_packet.c:L719).
The proposed change allows the bgp_packet_mpattr_prefix_size to return correct result for flowspec prefixes.

Signed-off-by: Stephane Poignant <stephane.poignant@proton.ch>
2 years agolib: Convert agentx_enabled to a bool
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>
2 years agobgpd: use the enum instead of an int
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>
2 years agoMerge pull request #12481 from kuldeepkash/topotests_startup
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

2 years agoMerge pull request #12438 from proelbtn/fix-#12349
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

2 years agoMerge pull request #12513 from Pdoijode/master
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

2 years agozebra: 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>
2 years agoMerge pull request #12511 from opensourcerouting/accords-color
Donald Sharp [Wed, 14 Dec 2022 11:50:04 +0000 (06:50 -0500)]
Merge pull request #12511 from opensourcerouting/accords-color

accords: CLI coloring

2 years agoMerge pull request #12517 from opensourcerouting/fix/forward_null_snmp_bgp
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

2 years agoMerge pull request #12075 from donaldsharp/highline
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

2 years agobgpd: Fix coverity FORWARD_NULL for v->namelen in SNMP code
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>
2 years agotests: Fix frrbot style issues
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>
2 years agotests: Cleaning up daemon param used in start_topology()
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>
2 years agotests: Topotests daemon start as per feature test
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>
2 years agoMerge pull request #12516 from mjstapp/fix_debug_dpdk
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

2 years agozebra: 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>
2 years agozebra: Read from the dplane_fpm_nl a route update
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>
2 years agoaccords: CLI coloring
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>
2 years agoMerge pull request #12508 from louis-6wind/ls_prefix_new
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

2 years agoMerge pull request #12491 from opensourcerouting/fix/crash_bgp_graceful-restart_json
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

2 years agoMerge pull request #12501 from opensourcerouting/feature/bgp4v2_bgp4V2PeerEventTimesTable
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

2 years agoMerge pull request #12191 from manojvn/463777
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.

2 years agolib: fix ls_prefix memory allocation
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>
2 years agoMerge pull request #12447 from karlquan/master
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

2 years agoMerge pull request #12499 from opensourcerouting/ospf-vertex-leak
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

2 years agoMerge pull request #12498 from Jafaral/ospf-typo
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

2 years agobgpd: Implement SNMP BGP4V2-MIB (bgp4V2NlriTable), part 2
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>
2 years agobgpd: Implement SNMP BGP4V2-MIB (bgp4V2NlriTable), part 1
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>
2 years agobgpd: Implement SNMP BGP4V2-MIB (bgp4V2PeerEventTimesTable)
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>
2 years agoMerge pull request #12485 from opensourcerouting/fix/crash_attrinfo
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`

2 years agoospfd: fix memory leak on SPF calculation
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>
2 years agoMerge pull request #12496 from opensourcerouting/ldpd-memleak-plug
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

2 years agozebra: Add ctx to netlink message parsing
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>
2 years agozebra: Rearrange dplane_ctx_route_init
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>
2 years agozebra: Add dplane_ctx_get|set_flags
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>
2 years agozebra: Remove goto's that do not do anything special
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>
2 years agozebra: Re-arrange fpm_read to reduce code duplication
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>
2 years agozebra: Add `zrouter.asic_notification_nexthop_control`
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>
2 years agozebra: Return statements do not use paranthesis
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>
2 years agoospfd: fix typo and report the link name in the warning
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>
2 years agolib: fix capability double resource allocation
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>
2 years agoMerge pull request #12487 from anlancs/fix/fix-doc-ospf
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

2 years agoMerge pull request #12457 from donaldsharp/nexthop_free
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

2 years agobgpd: Fix graceful-restart JSON outputs and the crash
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>
2 years agobgpd: Fix crash for `show bgp attribute-info`
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>
2 years agotests: Add a test to show that BGP does not crash with unnumbered interfaces
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>
2 years agobgpd: BGP fails to free the nexthop node
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>
2 years agodoc: fix an incomplete command for ospf
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>
2 years agoMerge pull request #12472 from donaldsharp/asic_offload_doc
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

2 years agoMerge pull request #12482 from donaldsharp/mem_this
Jafar Al-Gharaibeh [Sat, 10 Dec 2022 02:19:28 +0000 (20:19 -0600)]
Merge pull request #12482 from donaldsharp/mem_this

Mem this

2 years agoMerge pull request #12462 from opensourcerouting/fix/default_originate_labeled_unicast
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

2 years agoMerge pull request #12483 from opensourcerouting/feature/add_addpath_labeled_more_tests
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

2 years agodoc: Clarify asic offload documentation in zebra
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>
2 years agobgpd: Free memory allocated by info_make() when hitting maximum-prefix
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>
2 years agoMerge pull request #12477 from opensourcerouting/feature/add_addpath_labeled_more_tests
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

2 years agoMerge pull request #12466 from opensourcerouting/bsd-fixes-20221208
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

2 years agoMerge pull request #12464 from taspelund/vxlan_config_docs
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

2 years agoMerge pull request #12467 from opensourcerouting/fix/advertised_routes_json_naming
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`

2 years agozebra: Free up routemap name memory on vrf deletion event
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>
2 years agolib: Hide list macros in linklist.c
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>
2 years agoospf6d: Don't allocate json memory in non-json path
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>
2 years agozebra: Actually free all memory associated ctx->u.iptable.interface_name_list
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>
2 years agoMerge pull request #12471 from opensourcerouting/fix/gh_actions_on_forks_forbidden
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

2 years agoisisd: Fix sadj memory leak
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>
2 years agotests: Add more tests for labeled-unicast and addpath
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>