]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
16 months agoMerge pull request #14992 from opensourcerouting/fix/oad_missing_parts
Russ White [Tue, 12 Dec 2023 16:04:34 +0000 (11:04 -0500)]
Merge pull request #14992 from opensourcerouting/fix/oad_missing_parts

bgpd: Recent OAD fixes

16 months agoMerge pull request #14984 from pguibert6WIND/bgp_l3nhg_to_bgp_nhg
Russ White [Tue, 12 Dec 2023 16:03:39 +0000 (11:03 -0500)]
Merge pull request #14984 from pguibert6WIND/bgp_l3nhg_to_bgp_nhg

bgpd: move l3nhg functions in separate bgp_nhg.[ch] file

16 months agoMerge pull request #14966 from opensourcerouting/fix/bgpd_route-map_default_originate...
Russ White [Tue, 12 Dec 2023 15:54:34 +0000 (10:54 -0500)]
Merge pull request #14966 from opensourcerouting/fix/bgpd_route-map_default_originate_peer-group

tests: Check if default-originate works combined with peer-groups + route-maps

16 months agoMerge pull request #14985 from donaldsharp/zebra_delete_memory_problems
Donatas Abraitis [Tue, 12 Dec 2023 14:31:52 +0000 (16:31 +0200)]
Merge pull request #14985 from donaldsharp/zebra_delete_memory_problems

Zebra delete memory problems

16 months agoMerge pull request #14986 from LabNConsulting/chopps/fix-asan-odr
Donatas Abraitis [Tue, 12 Dec 2023 13:55:41 +0000 (15:55 +0200)]
Merge pull request #14986 from LabNConsulting/chopps/fix-asan-odr

lib: fix the ASAN OneDefinitionRule violation.

16 months agobgpd: Update sub_sort when handling doppelganger connections
Donatas Abraitis [Tue, 12 Dec 2023 09:55:10 +0000 (11:55 +0200)]
bgpd: Update sub_sort when handling doppelganger connections

This is important especially for OPEN messages. Without this, we can't send
software-version capability which relies on OAD too.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agobgpd: Use sub_sort also when creating a hash key for update-groups
Donatas Abraitis [Tue, 12 Dec 2023 09:38:23 +0000 (11:38 +0200)]
bgpd: Use sub_sort also when creating a hash key for update-groups

If OAD is not set or set at least for one peer in peer-group, then split, and
create a separate update-group for those peers.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agobgpd: Add sub_sort for update group debug logging
Donatas Abraitis [Tue, 12 Dec 2023 09:34:29 +0000 (11:34 +0200)]
bgpd: Add sub_sort for update group debug logging

When added OAD support, it's handy to know peer->sub_sort also when printing
update-group debug messages.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #14983 from donaldsharp/dplane_fpm_nl_deleted
Donatas Abraitis [Tue, 12 Dec 2023 06:44:37 +0000 (08:44 +0200)]
Merge pull request #14983 from donaldsharp/dplane_fpm_nl_deleted

zebra: The dplane_fpm_nl return path leaks memory

16 months agolib: fix the ASAN OneDefinitionRule violation.
Christian Hopps [Tue, 12 Dec 2023 00:53:03 +0000 (19:53 -0500)]
lib: fix the ASAN OneDefinitionRule violation.

Rename global client pointer variables and make the linkage static.

Signed-off-by: Christian Hopps <chopps@labn.net>
16 months agozebra: On shutdown properly free up ns memory
Donald Sharp [Mon, 11 Dec 2023 20:44:26 +0000 (15:44 -0500)]
zebra: On shutdown properly free up ns memory

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: Cleanup linked list on shutdown in label manager
Donald Sharp [Mon, 11 Dec 2023 20:26:20 +0000 (15:26 -0500)]
zebra: Cleanup linked list on shutdown in label manager

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: Properly unregister hook on shutdown
Donald Sharp [Mon, 11 Dec 2023 20:22:07 +0000 (15:22 -0500)]
zebra: Properly unregister hook on shutdown

the zebra pseudo wire code was registering a callback
per vrf.  These callbacks are not per vrf based.  They
are vrf agnostic so this was a mistake.  Modify the code
to on startup register once and on shutdown unregister once.

Finally rename the zebra_pw_init and zebra_pw_exit functions
to more properly reflect when they are called.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobgpd: move l3nhg functions in separate bgp_nhg.[ch] file
Philippe Guibert [Mon, 11 Dec 2023 16:23:50 +0000 (17:23 +0100)]
bgpd: move l3nhg functions in separate bgp_nhg.[ch] file

This rework separates l3nhg functionality from the nexthop
tracking code, by introducing two bgp_nhg.[ch] files. The
calling functions are renamed from bgp_l3nhg* to bgp_nhg*.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agoMerge pull request #14981 from opensourcerouting/fix/remove_depracated_code
Donald Sharp [Mon, 11 Dec 2023 18:53:49 +0000 (13:53 -0500)]
Merge pull request #14981 from opensourcerouting/fix/remove_depracated_code

bgpd: Remove deprecated code for bgpStatusCodes/bgpOriginCodes

16 months agozebra: The dplane_fpm_nl return path leaks memory
Donald Sharp [Mon, 11 Dec 2023 18:41:36 +0000 (13:41 -0500)]
zebra: The dplane_fpm_nl return path leaks memory

The route entry created when using a ctx to pass route
entry data backup to the master pthread in zebra is
being leaked.  Prevent this from happening.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobgpd: Remove deprecated code for bgpStatusCodes/bgpOriginCodes
Donatas Abraitis [Mon, 11 Dec 2023 12:31:46 +0000 (14:31 +0200)]
bgpd: Remove deprecated code for bgpStatusCodes/bgpOriginCodes

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #14967 from opensourcerouting/fix/bgpd_enforce_first_as_peer-groups
Donald Sharp [Sun, 10 Dec 2023 19:32:46 +0000 (14:32 -0500)]
Merge pull request #14967 from opensourcerouting/fix/bgpd_enforce_first_as_peer-groups

bgpd: Respect enforce-first-as command for peer-groups according to the defaults

16 months agoMerge pull request #14962 from Orange-OpenSource/ospf-te
Donald Sharp [Sun, 10 Dec 2023 19:31:40 +0000 (14:31 -0500)]
Merge pull request #14962 from Orange-OpenSource/ospf-te

ospfd: Correct SID check size

16 months agoMerge pull request #14968 from opensourcerouting/fix/missing_whitespace
Donald Sharp [Sun, 10 Dec 2023 19:30:27 +0000 (14:30 -0500)]
Merge pull request #14968 from opensourcerouting/fix/missing_whitespace

zebra: Add missing whitespace when printing route entry status

16 months agoMerge pull request #14971 from opensourcerouting/o6-hidden-area
Donald Sharp [Sun, 10 Dec 2023 19:29:42 +0000 (14:29 -0500)]
Merge pull request #14971 from opensourcerouting/o6-hidden-area

ospf6d: remove hidden obsolete command

16 months agoMerge pull request #14976 from vjardin/fixUbuntuModprobe
Donald Sharp [Sun, 10 Dec 2023 13:36:33 +0000 (08:36 -0500)]
Merge pull request #14976 from vjardin/fixUbuntuModprobe

docker: fix /sbin/modprobe missing

16 months agodocker: fix /sbin/modprobe missing
Vincent Jardin [Sat, 9 Dec 2023 23:45:22 +0000 (23:45 +0000)]
docker: fix /sbin/modprobe missing

kmod is needed in order to get modprobe

Signed-off-by: Vincent Jardin <vjardin@free.fr>
16 months agoMerge pull request #14975 from imzyxwvu/tidy-aggregate-duplication
Donatas Abraitis [Sat, 9 Dec 2023 18:03:00 +0000 (20:03 +0200)]
Merge pull request #14975 from imzyxwvu/tidy-aggregate-duplication

bgpd: Remove duplicated code in `bgp_aggregate_route`

16 months agobgpd: Remove duplicated code in `bgp_aggregate_route`
zyxwvu Shi [Sat, 9 Dec 2023 11:26:45 +0000 (19:26 +0800)]
bgpd: Remove duplicated code in `bgp_aggregate_route`

Signed-off-by: zyxwvu Shi <i@shiyc.cn>
16 months agoospf6d: remove hidden obsolete commands
Rafael Zalamena [Thu, 7 Dec 2023 15:24:04 +0000 (12:24 -0300)]
ospf6d: remove hidden obsolete commands

These commands were hidden in FRR 8.1 for the transition period and
never removed.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
16 months agotopotests: remove obsolete OSPFv3 area config
Rafael Zalamena [Thu, 7 Dec 2023 20:16:42 +0000 (17:16 -0300)]
topotests: remove obsolete OSPFv3 area config

Don't use 'interface WORD area A.B.C.D' for enabling OSPFv3 areas on
interfaces and instead use the standardized 'ipv6 ospf6 area A.B.C.D'.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
16 months agoospfd: Correct SID check size
Olivier Dugeon [Thu, 7 Dec 2023 13:53:16 +0000 (14:53 +0100)]
ospfd: Correct SID check size

Segment Router Identifier (SID) could be an index (4 bytes) within a range
(SRGB or SRLB) or an MPLS label (3 bytes). Thus, before calling check_size
macro to verify SID TLVs size, it is mandatory to determine the SID type to
avoid wrong assert.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
16 months agoMerge pull request #14964 from pguibert6WIND/nhg_del_in_queue
Donald Sharp [Fri, 8 Dec 2023 12:36:44 +0000 (07:36 -0500)]
Merge pull request #14964 from pguibert6WIND/nhg_del_in_queue

zebra: enqueue NHG_DEL in rib_nhg meta queue

16 months agozebra: Add missing whitespace when printing route entry status
Donatas Abraitis [Fri, 8 Dec 2023 11:57:56 +0000 (13:57 +0200)]
zebra: Add missing whitespace when printing route entry status

Before:

```
status: Removed ReplacingInstalled
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agobgpd: Respect enforce-first-as command for peer-groups according to the defaults
Donatas Abraitis [Fri, 8 Dec 2023 11:00:08 +0000 (13:00 +0200)]
bgpd: Respect enforce-first-as command for peer-groups according to the defaults

This was missed for peer-groups. Moved this default handling from peer_create()
to peer_new() which is also used by peer_group_get().

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agotests: Check if default-originate works combined with peer-groups + route-maps
Donatas Abraitis [Fri, 8 Dec 2023 10:11:34 +0000 (12:11 +0200)]
tests: Check if default-originate works combined with peer-groups + route-maps

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agobgpd: Convert variable `withdraw` integer to bool
Donatas Abraitis [Fri, 8 Dec 2023 09:58:59 +0000 (11:58 +0200)]
bgpd: Convert variable `withdraw` integer to bool

It holds only 0/1.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #14963 from donaldsharp/bgp_nht_fix
Donatas Abraitis [Fri, 8 Dec 2023 09:40:37 +0000 (11:40 +0200)]
Merge pull request #14963 from donaldsharp/bgp_nht_fix

bgpd: Ensure BGP does not stop monitoring nexthops

16 months agoMerge pull request #14889 from fdumontet6WIND/snmpv2
Donatas Abraitis [Fri, 8 Dec 2023 04:55:52 +0000 (06:55 +0200)]
Merge pull request #14889 from fdumontet6WIND/snmpv2

bgpd: add multiple paths support for draft ietf bgp4v2 in nlriTable

16 months agoMerge pull request #14936 from LabNConsulting/chopps/mgmt-dbg-improve
Donald Sharp [Thu, 7 Dec 2023 16:20:54 +0000 (11:20 -0500)]
Merge pull request #14936 from LabNConsulting/chopps/mgmt-dbg-improve

Chopps/mgmt dbg improve

16 months agozebra: enqueue NHG_DEL in rib_nhg meta queue
Philippe Guibert [Thu, 7 Dec 2023 14:26:47 +0000 (15:26 +0100)]
zebra: enqueue NHG_DEL in rib_nhg meta queue

The NHG_DEL operation is done directly from ZAPI call, whereas
the NHG_ADD operation is done in the rib_nhg meta queue.

This may be problematic when ADD is followed by DEL. Imagine a
scenarion with two protocol NHIDs. <NH1> depends of <NH2> and
<NH3>. The deletion of <NH3> at the protocol level will trigger
2 messages to ZEBRA: NHG_ADD(<NH1>) and NHG_DEL(<NH3>).

Those operations are properly enqueued in ZAPI, but in the end,
the NHG_DEL is executed first. This causes NHG_ADD to unlink an
already freed NHG.

Fix this by consistently enqueuing NHG_DEL and NHG_ADD operations.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agoMerge pull request #14795 from donaldsharp/zebra_notify_admin_lost
Mark Stapp [Thu, 7 Dec 2023 13:30:00 +0000 (08:30 -0500)]
Merge pull request #14795 from donaldsharp/zebra_notify_admin_lost

zebra: Fix non-notification of better admin won

16 months agoMerge pull request #14957 from donaldsharp/zebra_noprefixroute
Donatas Abraitis [Thu, 7 Dec 2023 13:24:10 +0000 (15:24 +0200)]
Merge pull request #14957 from donaldsharp/zebra_noprefixroute

Add ability to handle `noprefixroute` to zebra

16 months agobgpd: Ensure BGP does not stop monitoring nexthops
Donald Sharp [Mon, 6 Nov 2023 18:02:01 +0000 (13:02 -0500)]
bgpd: Ensure BGP does not stop monitoring nexthops

In some cases BGP can be monitoring the same prefix
in both the nexthop and import check tables.  If this
is the case, when unregistering one bnc from one table
make sure we are not still registered in the other

Example of the problem:

r1(config-router)# address-family ipv4 uni
r1(config-router-af)# no network 192.168.100.41/32
r1(config-router-af)# exit

r1# show bgp import-check-table
Current BGP import check cache:
r1# show bgp nexthop
Current BGP nexthop cache:
 192.168.100.41 valid [IGP metric 0], #paths 1, peer 192.168.100.41
  if r1-eth0
  Last update: Wed Dec  6 11:01:40 2023

BGP now believes it is only watching 192.168.100.41 in the nexthop
cache, but zebra doesn't have anything:

r1# show ip import-check
VRF default:
 Resolve via default: on
r1# show ip nht
VRF default:
 Resolve via default: on

So if anything happens to the route that is being matched for
192.168.100.41 bgp is no longer going to be notified about this.

The source of this problem is that zebra has dropped the two different
tables into 1 table, while bgp has 2 tables to track this.  The solution
to this problem (other than the rewrite that is being done ) is to have
BGP have a bit of smarts about looking in both tables for the bnc and
if found in both don't send the delete of the prefix tracking to zebra.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agotests: Add a noprefixroute test
Donald Sharp [Wed, 6 Dec 2023 14:27:09 +0000 (09:27 -0500)]
tests: Add a noprefixroute test

Add a simple test case to ensure that the noprefixroute
code stays working in the future.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: Add connected with noprefixroute
Donald Sharp [Wed, 6 Dec 2023 13:33:31 +0000 (08:33 -0500)]
zebra: Add connected with noprefixroute

Add ability for the connected routes to know
if they are a prefix route or not.

sharpd@eva:/work/home/sharpd/frr1$ ip addr show dev dummy1
13: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether aa:93:ce:ce:3f:62 brd ff:ff:ff:ff:ff:ff
    inet 192.168.55.1/24 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet 192.168.56.1/24 scope global dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::a893:ceff:fece:3f62/64 scope link
       valid_lft forever preferred_lft forever

sharpd@eva:/work/home/sharpd/frr1$ sudo vtysh -c "show int dummy1"
Interface dummy1 is up, line protocol is up
  Link ups:       0    last: (never)
  Link downs:     0    last: (never)
  vrf: default
  index 13 metric 0 mtu 1500 speed 0 txqlen 1000
  flags: <UP,BROADCAST,RUNNING,NOARP>
  Type: Ethernet
  HWaddr: aa:93:ce:ce:3f:62
  inet 192.168.55.1/24 noprefixroute
  inet 192.168.56.1/24
  inet6 fe80::a893:ceff:fece:3f62/64
  Interface Type Other
  Interface Slave Type None
  protodown: off

sharpd@eva:/work/home/sharpd/frr1$ sudo vtysh -c "show ip route"
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* 0.0.0.0/0 [0/100] via 192.168.119.1, enp13s0, 00:00:08
K>* 169.254.0.0/16 [0/1000] is directly connected, virbr2 linkdown, 00:00:08
L>* 192.168.44.1/32 is directly connected, dummy2, 00:00:08
L>* 192.168.55.1/32 is directly connected, dummy1, 00:00:08
C>* 192.168.56.0/24 is directly connected, dummy1, 00:00:08
L>* 192.168.56.1/32 is directly connected, dummy1, 00:00:08
L>* 192.168.119.205/32 is directly connected, enp13s0, 00:00:08

sharpd@eva:/work/home/sharpd/frr1$ ip route show
default via 192.168.119.1 dev enp13s0 proto dhcp metric 100
169.254.0.0/16 dev virbr2 scope link metric 1000 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.45.0/24 dev virbr2 proto kernel scope link src 192.168.45.1 linkdown
192.168.56.0/24 dev dummy1 proto kernel scope link src 192.168.56.1
192.168.119.0/24 dev enp13s0 proto kernel scope link src 192.168.119.205 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

sharpd@eva:/work/home/sharpd/frr1$ ip route show table 255
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
local 172.17.0.1 dev docker0 proto kernel scope host src 172.17.0.1
broadcast 172.17.255.255 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
local 192.168.44.1 dev dummy2 proto kernel scope host src 192.168.44.1
broadcast 192.168.44.255 dev dummy2 proto kernel scope link src 192.168.44.1
local 192.168.45.1 dev virbr2 proto kernel scope host src 192.168.45.1
broadcast 192.168.45.255 dev virbr2 proto kernel scope link src 192.168.45.1 linkdown
local 192.168.55.1 dev dummy1 proto kernel scope host src 192.168.55.1
broadcast 192.168.55.255 dev dummy1 proto kernel scope link src 192.168.55.1
local 192.168.56.1 dev dummy1 proto kernel scope host src 192.168.56.1
broadcast 192.168.56.255 dev dummy1 proto kernel scope link src 192.168.56.1
local 192.168.119.205 dev enp13s0 proto kernel scope host src 192.168.119.205
broadcast 192.168.119.255 dev enp13s0 proto kernel scope link src 192.168.119.205
local 192.168.122.1 dev virbr0 proto kernel scope host src 192.168.122.1
broadcast 192.168.122.255 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

Fixes: #14952
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: Add ability to note that a address is NOPREFIXROUTE
Donald Sharp [Wed, 6 Dec 2023 13:24:01 +0000 (08:24 -0500)]
zebra: Add ability to note that a address is NOPREFIXROUTE

The linux kernel can send up a flag that tells us that the
connected address is not a PREFIXROUTE.  Add the ability
to note this and pass it up from the data plane.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoMerge pull request #14922 from louis-6wind/fix-bfd-static-source
Rafael Zalamena [Wed, 6 Dec 2023 12:51:32 +0000 (09:51 -0300)]
Merge pull request #14922 from louis-6wind/fix-bfd-static-source

staticd: fix changing to source auto in bfd monitor

16 months agoMerge pull request #14937 from pguibert6WIND/fix_nhid_suppress
Russ White [Wed, 6 Dec 2023 12:40:57 +0000 (07:40 -0500)]
Merge pull request #14937 from pguibert6WIND/fix_nhid_suppress

sharpd: fix deleting nhid when suppressing nexthop from nh group

16 months agoMerge pull request #14913 from chiragshah6/mdev1
Donatas Abraitis [Wed, 6 Dec 2023 05:56:45 +0000 (07:56 +0200)]
Merge pull request #14913 from chiragshah6/mdev1

pbrd: fix map seq installed flag in json

16 months agopbrd: fix map seq installed flag in json
Chirag Shah [Fri, 20 Oct 2023 05:07:15 +0000 (22:07 -0700)]
pbrd: fix map seq installed flag in json

Ticket:#3638598
Testing:

Post fix:
tor-2# show pbr map json
[
  {
    "name":"global-vrf-PBR-map",
    "valid":true,
    "policies":[
      {
        "id":1,
        "sequenceNumber":10,
        "ruleNumber":309,
        "vrfUnchanged":false,
        "installed":true,   <<<< now display correct value
        "installedReason":"Valid",
        "vrfName":"sym_1",
        "matchSrc":"10.1.200.0\/24",
        "matchDst":"10.6.200.0\/24"
      }
    ]
  }

Signed-off-by: Chirag Shah <chirag@nvidia.com>
16 months agoMerge pull request #14870 from opensourcerouting/ospfd-shutdown-leaks
Russ White [Tue, 5 Dec 2023 19:02:35 +0000 (14:02 -0500)]
Merge pull request #14870 from opensourcerouting/ospfd-shutdown-leaks

ospfd: fix deferred shutdown handling

16 months agotests: client testing
Christian Hopps [Tue, 28 Nov 2023 19:25:22 +0000 (14:25 -0500)]
tests: client testing

Signed-off-by: Christian Hopps <chopps@labn.net>
16 months agomgmtd: enable conn debug when user enables mgmtd debugs
Christian Hopps [Thu, 30 Nov 2023 03:29:14 +0000 (22:29 -0500)]
mgmtd: enable conn debug when user enables mgmtd debugs

Signed-off-by: Christian Hopps <chopps@labn.net>
16 months agolib: mgmtd: enable conn debugs when user enables client debug
Christian Hopps [Tue, 28 Nov 2023 23:02:44 +0000 (18:02 -0500)]
lib: mgmtd: enable conn debugs when user enables client debug

Signed-off-by: Christian Hopps <chopps@labn.net>
16 months agoMerge pull request #14934 from LabNConsulting/chopps/new-munet-0.13.10
Donald Sharp [Tue, 5 Dec 2023 18:24:39 +0000 (13:24 -0500)]
Merge pull request #14934 from LabNConsulting/chopps/new-munet-0.13.10

tests: import munet 0.13.10

16 months agoMerge pull request #14947 from pguibert6WIND/nexthop_num_no_recurse_static
Russ White [Tue, 5 Dec 2023 16:55:21 +0000 (11:55 -0500)]
Merge pull request #14947 from pguibert6WIND/nexthop_num_no_recurse_static

lib: fix nexthop_group_nexthop_num_no_recurse() is static

16 months agoMerge pull request #14920 from LabNConsulting/chopps/rr-support
Donald Sharp [Tue, 5 Dec 2023 16:42:10 +0000 (11:42 -0500)]
Merge pull request #14920 from LabNConsulting/chopps/rr-support

tests: add support for running things under `rr`.

16 months agoMerge pull request #12600 from donaldsharp/local_routes
Russ White [Tue, 5 Dec 2023 16:00:44 +0000 (11:00 -0500)]
Merge pull request #12600 from donaldsharp/local_routes

*: Introduce Local Host Routes to FRR

16 months agotests: improve test bgp_snmp_bgp4v2mib for snmp multi path support
Francois Dumontet [Wed, 4 Oct 2023 16:01:02 +0000 (18:01 +0200)]
tests: improve test bgp_snmp_bgp4v2mib for snmp multi path support

multi path support by snmp implies change in configuration and expected
tests results.

ipv6 trap test output is now ordered to avoid radom result due to
timeline.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agolib: fix nexthop_group_nexthop_num_no_recurse() is static
Philippe Guibert [Mon, 27 Nov 2023 08:25:59 +0000 (09:25 +0100)]
lib: fix nexthop_group_nexthop_num_no_recurse() is static

No need to declare 'nexthop_group_nexthop_num_no_recurse()' as external.

Fixes: 98cda54a9543 ("zebra: Add recursive functionality to NHE's")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agoMerge pull request #14939 from rampxxxx/isis_lsp_id
Donatas Abraitis [Tue, 5 Dec 2023 09:11:52 +0000 (11:11 +0200)]
Merge pull request #14939 from rampxxxx/isis_lsp_id

isisd: Fix dislaying LSP ID

16 months agosharpd: fix avoid twice sending NHG_DEL for a nexthop-group
Philippe Guibert [Tue, 5 Dec 2023 08:56:41 +0000 (09:56 +0100)]
sharpd: fix avoid twice sending NHG_DEL for a nexthop-group

After removing the nexthop of a nexthop group, when the nexthop group
is removed, a nhg removal failure happens:

> ubuntu2204(config)# nexthop-group CCC
> ubuntu2204(config-nh-group)#  nexthop 192.0.2.211 loop1
> ubuntu2204(config-nh-group)# no  nexthop 192.0.2.211 loop1
> [..]
> 2023/12/05 08:59:22 SHARP: [H3QKG-WH8ZV] Removed nhg 179687505
> ubuntu2204(config-nh-group)# exi
> ubuntu2204(config)# no nexthop-group CCC
> [..]
> 2023/12/05 08:59:27 SHARP: [N030J-V0SFN] Failed removal of nhg 179687505

The NHG_DEL message is sent twice at the nexthop deletion, and at the
nexthop-group deletion. Avoid sending it twice.

Fixes: 82beaf6ae520 ("sharpd: fix deleting nhid when suppressing nexthop from nh group")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agoMerge pull request #14940 from chiragshah6/fdev2
Donatas Abraitis [Tue, 5 Dec 2023 08:03:27 +0000 (10:03 +0200)]
Merge pull request #14940 from chiragshah6/fdev2

bgpd: check bgp evpn instance presence in soo

16 months agosharpd: fix deleting nhid when suppressing nexthop from nh group
Philippe Guibert [Mon, 4 Dec 2023 15:03:31 +0000 (16:03 +0100)]
sharpd: fix deleting nhid when suppressing nexthop from nh group

When no nexthops are in a nexthop group, two successive events are
sent: NHG_DEL and NHG_ADD, but only the NHG_DEL one is necessary.
Fixes this by returning in the nhg_add() function.

Fixes: 82beaf6ae520 ("sharpd: fix deleting nhid when suppressing nexthop from nh group")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agoMerge pull request #14938 from rampxxxx/ubi8_protobuf
Donatas Abraitis [Tue, 5 Dec 2023 07:15:38 +0000 (09:15 +0200)]
Merge pull request #14938 from rampxxxx/ubi8_protobuf

docker/ubi8-minimal: add protobuf-c runtime dep

16 months agobgpd: check bgp evpn instance presence in soo
Chirag Shah [Tue, 5 Dec 2023 03:23:32 +0000 (19:23 -0800)]
bgpd: check bgp evpn instance presence in soo

    (pi=pi@entry=0x55e86ec1a5a0, evp=evp@entry=0x7fff4edc2160)
    at bgpd/bgp_evpn.c:3623
3623    bgpd/bgp_evpn.c: No such file or directory.
(gdb) info locals
bgp_evpn = 0x0
macvrf_soo = <optimized out>
ret = false
__func__ = <optimized out>

(pi=pi@entry=0x55e86ec1a5a0, evp=evp@entry=0x7fff4edc2160)
    at bgpd/bgp_evpn.c:3623
(bgp=bgp@entry=0x55e86e9cd010, afi=afi@entry=AFI_L2VPN,
    safi=safi@entry=SAFI_EVPN, p=p@entry=0x0,
pi=pi@entry=0x55e86ec1a5a0, import=import@entry=1,
in_vrf_rt=true,
    in_vni_rt=true) at bgpd/bgp_evpn.c:4200
(import=1, pi=pi@entry=0x55e86ec1a5a0, p=p@entry=0x0,
    safi=safi@entry=SAFI_EVPN, afi=afi@entry=AFI_L2VPN,
bgp=bgp@entry=0x55e86e9cd010) at bgpd/bgp_evpn.c:6266
afi=afi@entry=AFI_L2VPN, safi=safi@entry=SAFI_EVPN,
    p=p@entry=0x7fff4edc2160, pi=pi@entry=0x55e86ec1a5a0)
at bgpd/bgp_evpn.c:6266
(peer=peer@entry=0x55e86ea35400, p=p@entry=0x7fff4edc2160,
    addpath_id=addpath_id@entry=0, attr=attr@entry=0x7fff4edc4400,
afi=afi@entry=AFI_L2VPN, safi=<optimized out>,
    safi@entry=SAFI_EVPN, type=9, sub_type=0, prd=0x7fff4edc2120,
label=0x7fff4edc211c, num_labels=1,
    soft_reconfig=0, evpn=0x7fff4edc2130) at bgpd/bgp_route.c:4805
(peer=peer@entry=0x55e86ea35400, afi=afi@entry=AFI_L2VPN,
    safi=safi@entry=SAFI_EVPN, attr=attr@entry=0x7fff4edc4400,
pfx=<optimized out>, psize=psize@entry=34,
    addpath_id=0) at bgpd/bgp_evpn.c:4922
(peer=0x55e86ea35400, attr=0x7fff4edc4400, packet=<optimized out>,
    withdraw=0) at bgpd/bgp_evpn.c:5997
(peer=peer@entry=0x55e86ea35400, attr=attr@entry=0x7fff4edc4400,
    packet=packet@entry=0x7fff4edc43d0,
mp_withdraw=mp_withdraw@entry=0) at bgpd/bgp_packet.c:363
(peer=peer@entry=0x55e86ea35400, size=size@entry=161)
    at bgpd/bgp_packet.c:2076
(thread=<optimized out>) at bgpd/bgp_packet.c:2931

Ticket: #3683053

Signed-off-by: Chirag Shah <chirag@nvidia.com>
16 months agoisisd: Fix dislaying LSP ID
lynnemorrison [Tue, 5 Dec 2023 00:41:28 +0000 (19:41 -0500)]
isisd: Fix dislaying LSP ID

If "no hostname dynamic" command is used this fix correctly
displays the LSP ID.

Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
16 months agodocker/ubi8-minimal: add protobuf-c runtime dep
lynnemorrison [Mon, 4 Dec 2023 22:41:04 +0000 (17:41 -0500)]
docker/ubi8-minimal: add protobuf-c runtime dep

FRR's RPM package requires protobuf-c to be installed on the runtime
system, otherwise it will refuse to be installed.

Signed-off-by: Juan Vidal Allende <juan.vidal1@ibm.com>
16 months agobgpd: add multiple paths support for draft ietf bgp4v2 in nlriTable
Francois Dumontet [Thu, 23 Nov 2023 09:45:24 +0000 (10:45 +0100)]
bgpd: add multiple paths support for draft ietf bgp4v2 in nlriTable

There is no support for dumping multiple paths for the same prefix.
The current implementation only takes the first available entry.

Fix this by walking over the list of available paths, ordered by peer.
The nlri index is set gradually for each path.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
16 months agoMerge pull request #14885 from pguibert6WIND/misc_nhg_fixes
Donald Sharp [Mon, 4 Dec 2023 12:31:14 +0000 (07:31 -0500)]
Merge pull request #14885 from pguibert6WIND/misc_nhg_fixes

various nexthop group fixes

16 months agoMerge pull request #14929 from opensourcerouting/fix/add_rfc9494
Donald Sharp [Mon, 4 Dec 2023 12:30:40 +0000 (07:30 -0500)]
Merge pull request #14929 from opensourcerouting/fix/add_rfc9494

doc: Add RFC 9494 to the supported RFC list

16 months agotests: import munet 0.13.10
Christian Hopps [Mon, 4 Dec 2023 09:58:12 +0000 (04:58 -0500)]
tests: import munet 0.13.10

- Import 0.13.10 which adds watched logs feature, among others.

Signed-off-by: Christian Hopps <chopps@labn.net>
16 months agodoc: Add RFC 9494 to the supported RFC list
Donatas Abraitis [Sun, 3 Dec 2023 17:27:11 +0000 (19:27 +0200)]
doc: Add RFC 9494 to the supported RFC list

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #14923 from opensourcerouting/fix/array_overrun_for_fqdn_domainname
Igor Ryzhov [Sat, 2 Dec 2023 17:42:52 +0000 (19:42 +0200)]
Merge pull request #14923 from opensourcerouting/fix/array_overrun_for_fqdn_domainname

bgpd: Do not null-terminate the domainname when receiving FQDN capability

16 months agoMerge pull request #14925 from pguibert6WIND/doctring_pathd_fix
Jafar Al-Gharaibeh [Fri, 1 Dec 2023 17:24:30 +0000 (11:24 -0600)]
Merge pull request #14925 from pguibert6WIND/doctring_pathd_fix

pathd: fix excessive doc string on pcep msd command

16 months agotests: add support for running things under `rr`.
Christian Hopps [Thu, 30 Nov 2023 09:49:59 +0000 (04:49 -0500)]
tests: add support for running things under `rr`.

Signed-off-by: Christian Hopps <chopps@labn.net>
16 months agopathd: fix excessive doc string on pcep msd command
Philippe Guibert [Fri, 1 Dec 2023 08:24:50 +0000 (09:24 +0100)]
pathd: fix excessive doc string on pcep msd command

The following message appears after starting pathd:
> root@ubuntu2204:~# vtysh
> 2023/10/31 05:59:10 [K2CCG-5Y7ZJ] Excessive docstring while parsing 'msd (1-32)'
> 2023/10/31 05:59:10 [W7ENN-K2SVA] ----------
> 2023/10/31 05:59:10 [WCW75-6TZPF] PCC maximum SID depth value
> 2023/10/31 05:59:10 [W7ENN-K2SVA] ----------

Remove the excessive doc string in the pcep msd command.

Fixes: d6d2527448ef ("pathd: fix 'no msd' command not possible under pcc node")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agotopotests: test wrong bfd source in bfd_topo3
Louis Scalbert [Thu, 30 Nov 2023 15:07:40 +0000 (16:07 +0100)]
topotests: test wrong bfd source in bfd_topo3

Test setting a wrong bfd source and restore the source auto parameter.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
16 months agotopotests: redispatch tests in bfd_topo3
Louis Scalbert [Thu, 30 Nov 2023 15:01:09 +0000 (16:01 +0100)]
topotests: redispatch tests in bfd_topo3

Redispatch tests in bfd_topo3 in order to prepare next commit.
Cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
16 months agostaticd: fix changing to source auto in bfd monitor
Louis Scalbert [Thu, 30 Nov 2023 16:29:20 +0000 (17:29 +0100)]
staticd: fix changing to source auto in bfd monitor

When monitoring a static route with BFD multi-hop, the source IP can be
either configured or retrieved from NextHop-Tracking (NHT). After
removing a configured source, the source is supposed to be retrieved
from NHT but it remains to the previous value. This is problematic if
the user desires to fix the configuration of a incorrect source IP.

For example, theses two commands results in the incorrect state:

> ip route 10.0.0.0/24 10.1.0.1 bfd multi-hop source 10.2.2.2
> ip route 10.0.0.0/24 10.1.0.1 bfd multi-hop

When removing the source, BFD is unable to find the source from NHT via
bfd_nht_update() were called.

Force zebra to resend the information to BFD by unregistering and
registering again NHT. The (...)/frr-nexthops/nexthop northbound
apply_finish function will trigger a call to static_install_nexthop()
that does a call to static_zebra_nht_register(nh, true);

Fixes: b7ca809d1c ("lib: BFD automatic source selection")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
16 months agoospfd: fix deferred shutdown handling
Renato Westphal [Thu, 23 Nov 2023 23:23:52 +0000 (20:23 -0300)]
ospfd: fix deferred shutdown handling

The ospfd cleanup code is relatively complicated given the need to
appropriately handle the "max-metric router-lsa on-shutdown (5-100)"
command. When that command is configured and an OSPF instance is
unconfigured, the removal of the instance should be deferred to allow
other routers sufficient time to find alternate paths before the
local Router-LSAs are flushed. When ospfd is killed, however, deferred
shutdown shouldn't take place and all instances should be cleared
immediately.

This commit fixes a problem where ospf_deferred_shutdown_finish()
was prematurely exiting the daemon when no instances were left,
inadvertently preventing ospf_terminate() from clearing the ospfd
global variables. Additionally, the commit includes code refactoring
to enhance readability and maintainability.

Fixes #14855.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
16 months agoospfd: improve memory cleanup during shutdown
Renato Westphal [Thu, 23 Nov 2023 23:21:31 +0000 (20:21 -0300)]
ospfd: improve memory cleanup during shutdown

* On ospf_terminate(), proceed to clear the ospfd global variables even
  when no OSPF instance is configured
* Remove double call to route_map_finish()
* Call ospf_opaque_term() to clear the opaque LSA infrastructure
* Clear the `OspfRI.area_info` and `om->ospf` global lists.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
16 months agoMerge pull request #14911 from LabNConsulting/chopps/speed-xpath-up
Igor Ryzhov [Fri, 1 Dec 2023 11:32:32 +0000 (13:32 +0200)]
Merge pull request #14911 from LabNConsulting/chopps/speed-xpath-up

lib: all: remove './' from xpath 22% speedup

16 months agobgpd: Do not null-terminate the domainname when receiving FQDN capability
Donatas Abraitis [Fri, 1 Dec 2023 08:35:19 +0000 (10:35 +0200)]
bgpd: Do not null-terminate the domainname when receiving FQDN capability

This is already handled above, no need to do here, because we could have an
overrun situation where len > 64 and we do out-of-bound actions.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #14914 from idryzhov/mgmt-validate
Donatas Abraitis [Fri, 1 Dec 2023 07:01:05 +0000 (09:01 +0200)]
Merge pull request #14914 from idryzhov/mgmt-validate

mgmtd: validate candidate yang tree before creating a config diff

16 months agolib: fix nexthop node entry from nhg_list
Philippe Guibert [Thu, 30 Nov 2023 12:57:57 +0000 (13:57 +0100)]
lib: fix nexthop node entry from nhg_list

When stopping a VRF, the linked list entries must be
removed too.

Fixes: 98cbbaea91f6 ("lib: Handle if up/down and vrf enable/disable events")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agolib: remove useless nexthop_group_active_nexthop_num_no_recurse()
Philippe Guibert [Mon, 27 Nov 2023 11:28:52 +0000 (12:28 +0100)]
lib: remove useless nexthop_group_active_nexthop_num_no_recurse()

The nexthop_group_active_nexthop_num_no_recurse() function is no more
used. Let us remove the function call.

Fixes: 148813c22a8d ("zebra: zebra_nhg check each nexthop for active, not just number")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agozebra: fix wrong nexthop id debug message
Philippe Guibert [Fri, 24 Nov 2023 15:38:31 +0000 (16:38 +0100)]
zebra: fix wrong nexthop id debug message

When allocating big protocol level identifiers, the number range is
big, and when pushing to netlink messages, the first nexthop group
is truncated, whereas the nexthop has been installed on the kernel.

> ubuntu2204(config)# nexthop-group A
> ubuntu2204(config-nh-group)# group 1
> ubuntu2204(config-nh-group)# group 2
> ubuntu2204(config-nh-group)# exi
> ubuntu2204(config)# nexthop-group 1
> ubuntu2204(config-nh-group)# nexthop 192.0.2.130 loop1 enable-proto-nhg-control
> ubuntu2204(config-nh-group)# exi
> ubuntu2204(config)# nexthop-group 2
> ubuntu2204(config-nh-group)# nexthop 192.0.2.131 loop1 enable-proto-nhg-control
> [..]
> 2023/11/24 16:47:40 ZEBRA: [VNMVB-91G3G] _netlink_nexthop_build_group: ID (179687500): group 17968/179687502

> # ip nexthop ls
> id 179687500 group 179687501/179687502 proto 194

Fix this by increasing the buffer size when appending the first number.

Fixes: 8d03bc501b5f ("zebra: Handle nhg_hash_entry encaps/more debugging")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agozebra: add client counter for nhg operations
Philippe Guibert [Thu, 23 Nov 2023 16:18:23 +0000 (17:18 +0100)]
zebra: add client counter for nhg operations

Add three counters that account for the nhg operations
that are using the zebra API with the NHG_ADD and NHG_DEL
commands.

> # show zebra client
> [..]
> Type        Add         Update      Del
> ==================================================
> IPv4        100         0           0
> IPv6        0           0           0
> Redist:v4   0           0           0
> Redist:v6   0           0           0
> NHG         1           1           1
> VRF         3           0           0
> [..]

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agozebra: clarify error when calling zebra_nhg_rib_find_nhe()
Philippe Guibert [Mon, 4 Sep 2023 13:43:37 +0000 (15:43 +0200)]
zebra: clarify error when calling zebra_nhg_rib_find_nhe()

Display a specific log message when the rt_nhe parameter is not
set at all.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agosharpd: fix deleting nhid when suppressing nexthop from nh group
Philippe Guibert [Thu, 23 Nov 2023 13:19:04 +0000 (14:19 +0100)]
sharpd: fix deleting nhid when suppressing nexthop from nh group

When removing the last nexthop from a nexthop-group, the nexthop
group remains in the zebra contexts:

> ubuntu2204(config)# nexthop-group gdgd
> 2023/11/23 14:06:36 SHARP: [Q5NBA-GN1BG] NHG ID assigned: 179687502
> ubuntu2204(config-nh-group)# nexthop 192.0.2.7 loop1
> ubuntu2204(config-nh-group)# 2023/11/23 14:06:38 ZEBRA: [VNMVB-91G3G] _netlink_nexthop_build_group: ID (179687502): group 338
> 2023/11/23 14:06:38 ZEBRA: [R43C6-KYHWT] netlink_nexthop_msg_encode: RTM_NEWNEXTHOP, id=179687502
> 2023/11/23 14:06:38 ZEBRA: [HYEHE-CQZ9G] nl_batch_send: netlink-dp (NS 0), batch size=44, msg cnt=1
> 2023/11/23 14:06:38 SHARP: [JWRCN-N9K90] Installed nhg 179687502
>
> ubuntu2204(config-nh-group)# no nexthop 192.0.2.7 loop1
> 2023/11/23 14:06:47 SHARP: [Y2G2F-ZTW6M] nhg_add: nhg 179687502 not sent: no valid nexthops
> ubuntu2204(config-nh-group)# do show nexthop-group rib 179687502
> ID: 179687502 (sharp)
>      RefCnt: 1
>      Uptime: 00:00:23
>      VRF: default
>      Valid, Installed
>      Depends: (338)
>            via 192.0.2.7, loop1 (vrf default), weight 1

Fix this by sending an NHG_DEL message when no nexthops are attached,
and when the id was already installed.

Fixes: 5a9c0931aa95 ("sharpd: don't send invalid nexthop-groups to zebra")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agoMerge pull request #14909 from chiragshah6/fdev4
Donatas Abraitis [Thu, 30 Nov 2023 09:25:48 +0000 (11:25 +0200)]
Merge pull request #14909 from chiragshah6/fdev4

bgpd: aggr summary-only suppressed export to evpn

17 months agoMerge pull request #14907 from Keelan10/bgp_srv6-leak
Donatas Abraitis [Thu, 30 Nov 2023 07:22:57 +0000 (09:22 +0200)]
Merge pull request #14907 from Keelan10/bgp_srv6-leak

bgpd: Free Memory for SRv6 Functions and Locator Chunks

17 months agobgpd: lttng tp add evpn route events
Chirag Shah [Thu, 7 Sep 2023 22:51:32 +0000 (15:51 -0700)]
bgpd: lttng tp add evpn route events

Ticket:#3597393
Testing Done:

2023-09-08T22:53:03.532 frr_bgp:evpn_withdraw_type5 {'vrf_id': 42, 'ip':
'53.1.1.0'}
2023-09-08T22:53:06.207 frr_bgp:evpn_advertise_type5 {'vrf_id': 42,
'ip': '53.1.1.0', 'rmac': '00:02:00:00:00:38', 'vtep': '27.0.0.15'}

2023-09-08T21:51:15.637 frr_bgp:evpn_mh_local_ead_es_evi_route_upd
{'esi': '03:44:38:39:ff:ff:01:00:00:03', 'vni': 1000, 'route_type': 1,
'vtep': '27.0.0.15'}

2023-09-08T20:45:17.059 frr_bgp:evpn_mh_local_ead_es_evi_route_del
{'esi': '03:44:38:39:ff:ff:01:00:00:01', 'vni': 0, 'route_type': 4,
'vtep': '27.0.0.15'}

2023-09-08T21:51:18.363 frr_bgp:evpn_mh_es_evi_vtep_add {'esi':
'03:44:38:39:ff:ff:01:00:00:02', 'vni': 1000, 'vtep': '27.0.0.16',
'ead_es': 1}

2023-09-08T20:43:50.206 frr_bgp:evpn_mh_es_evi_vtep_del {'esi':
'03:44:38:39:ff:ff:01:00:00:01', 'vni': 1002, 'vtep': '27.0.0.16',
'ead_es': 0}

Signed-off-by: Chirag Shah <chirag@nvidia.com>
17 months agobgpd: aggr summary-only suppressed export to evpn
Chirag Shah [Sat, 23 Sep 2023 00:19:09 +0000 (17:19 -0700)]
bgpd: aggr summary-only suppressed export to evpn

When exporting bgp vrf instance unicast route into
EVPN as type-5, check for suppressed ones and do not
export them.

Ticket:#3534718
Testing Done:

Config:

router bgp 660000 vrf vrf1
 bgp router-id 144.1.1.2
 no bgp network import-check
 neighbor 144.1.1.1 remote-as external
 !
 address-family ipv4 unicast
  aggregate-address 50.1.0.0/16 summary-only
  redistribute connected
 exit-address-family
 !
 address-family l2vpn evpn
  advertise ipv4 unicast
 exit-address-family
exit

v4 suppressed route: (5 suppressed routes not exported to evpn)

tor1# vtysh -c "show bgp vrf vrf1 ipv4 unicast" | grep "50.1"
*> 50.1.0.0/16      0.0.0.0(bordertor-11)
s> 50.1.1.212/32    6.0.0.30(leaf-11)<
s> 50.1.1.222/32    6.0.0.31(leaf-11)<
s> 50.1.110.0/24    0.0.0.0(bordertor-11)
s> 50.1.210.214/32  6.0.0.30(leaf-11)<
s> 50.1.220.224/32  6.0.0.31(leaf-11)<

tor1# vtysh -c "show bgp l2vpn evpn route" | grep -A3 "*> \[5\].*\[50.1"
*> [5]:[0]:[16]:[50.1.0.0] RD 144.1.1.2:7
                    6.0.0.1 (bordertor-11)
                                             0         32768 ?
                    ET:8 RT:4640:104001 Rmac:00:02:00:00:00:04

Signed-off-by: Chirag Shah <chirag@nvidia.com>
17 months agomgmtd: validate candidate yang tree before creating a config diff
Igor Ryzhov [Tue, 14 Nov 2023 19:17:24 +0000 (20:17 +0100)]
mgmtd: validate candidate yang tree before creating a config diff

The candidate yang tree should be validated before `nb_config_diff` is
called. `nb_config_diff` ignores all prohibited operations and can
provide an empty change list because of this. For example, if a user
deletes a mandatory node from the candidate datastore and tries to make
a commit, they'll receive the "No changes found to be committed!" error,
because such a change is ignored by `nb_config_diff`. Instead, mgmtd
should tell the user that their candidate datastore is not valid and
can't be commited.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
17 months agolib: all: remove './' from xpath 22% speedup
Christian Hopps [Wed, 29 Nov 2023 19:37:23 +0000 (14:37 -0500)]
lib: all: remove './' from xpath 22% speedup

fixes #8299

Signed-off-by: Christian Hopps <chopps@labn.net>
17 months agoMerge pull request #14906 from Keelan10/bgp_confederation-leak
Donald Sharp [Wed, 29 Nov 2023 18:49:37 +0000 (13:49 -0500)]
Merge pull request #14906 from Keelan10/bgp_confederation-leak

bgpd: Free Memory for confed_peers in bgp_free

17 months agoMerge pull request #14908 from Keelan10/zebra-tc-leak
Donald Sharp [Wed, 29 Nov 2023 18:48:45 +0000 (13:48 -0500)]
Merge pull request #14908 from Keelan10/zebra-tc-leak

zebra: Set Free Functions for Traffic Control Hash Tables

17 months agozebra: Fix non-notification of better admin won
Donald Sharp [Tue, 14 Nov 2023 15:15:42 +0000 (10:15 -0500)]
zebra: Fix non-notification of better admin won

If there happens to be a entry in the zebra rib
that has a lower admin distance then a newly received
re, zebra would not notify the upper level protocol
about this happening.  Imagine a case where there
is a connected route for say a /32 and bgp receives
a route from a peer that is the same route as the
connected.  Since BGP has no network statement and
perceives the route as being `good` bgp will install
the route into zebra.  Zebra will look at the new
bgp re and correctly identify that the re is not
something that it will use and do nothing.  This
change notices this and sends up a BETTER_ADMIN_WON
route notification.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
17 months agobgpd: Free Memory for SRv6 Functions and Locator Chunks
Keelan10 [Wed, 29 Nov 2023 11:49:58 +0000 (15:49 +0400)]
bgpd: Free Memory for SRv6 Functions and Locator Chunks

Implement proper memory cleanup for SRv6 functions and locator chunks to prevent potential memory leaks.
The list callback deletion functions have been set.

The ASan leak log for reference:

```
***********************************************************************************
Address Sanitizer Error detected in bgp_srv6l3vpn_to_bgp_vrf.test_bgp_srv6l3vpn_to_bgp_vrf/r2.asan.bgpd.4180

=================================================================
==4180==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 544 byte(s) in 2 object(s) allocated from:
    #0 0x7f8d176a0d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28)
    #1 0x7f8d1709f238 in qcalloc lib/memory.c:105
    #2 0x55d5dba6ee75 in sid_register bgpd/bgp_mplsvpn.c:591
    #3 0x55d5dba6ee75 in alloc_new_sid bgpd/bgp_mplsvpn.c:712
    #4 0x55d5dba6f3ce in ensure_vrf_tovpn_sid_per_af bgpd/bgp_mplsvpn.c:758
    #5 0x55d5dba6fb94 in ensure_vrf_tovpn_sid bgpd/bgp_mplsvpn.c:849
    #6 0x55d5dba7f975 in vpn_leak_postchange bgpd/bgp_mplsvpn.h:299
    #7 0x55d5dba7f975 in vpn_leak_postchange_all bgpd/bgp_mplsvpn.c:3704
    #8 0x55d5dbbb6c66 in bgp_zebra_process_srv6_locator_chunk bgpd/bgp_zebra.c:3164
    #9 0x7f8d1716f08a in zclient_read lib/zclient.c:4459
    #10 0x7f8d1713f034 in event_call lib/event.c:1974
    #11 0x7f8d1708242b in frr_run lib/libfrr.c:1214
    #12 0x55d5db99d19d in main bgpd/bgp_main.c:510
    #13 0x7f8d160c5c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)

Direct leak of 296 byte(s) in 1 object(s) allocated from:
    #0 0x7f8d176a0d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28)
    #1 0x7f8d1709f238 in qcalloc lib/memory.c:105
    #2 0x7f8d170b1d5f in srv6_locator_chunk_alloc lib/srv6.c:135
    #3 0x55d5dbbb6a19 in bgp_zebra_process_srv6_locator_chunk bgpd/bgp_zebra.c:3144
    #4 0x7f8d1716f08a in zclient_read lib/zclient.c:4459
    #5 0x7f8d1713f034 in event_call lib/event.c:1974
    #6 0x7f8d1708242b in frr_run lib/libfrr.c:1214
    #7 0x55d5db99d19d in main bgpd/bgp_main.c:510
    #8 0x7f8d160c5c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)
***********************************************************************************

```

Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
17 months agoMerge pull request #14896 from zarkdav/patch-1
Donald Sharp [Wed, 29 Nov 2023 14:04:39 +0000 (09:04 -0500)]
Merge pull request #14896 from zarkdav/patch-1

Update bgp.rst

17 months agoMerge pull request #14838 from idryzhov/mgmtd-cli-out
Christian Hopps [Wed, 29 Nov 2023 13:50:16 +0000 (14:50 +0100)]
Merge pull request #14838 from idryzhov/mgmtd-cli-out

Output configuration of mgmtd-converted daemons from mgmtd