]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
6 months agozebra: unlock node only after operation in zebra_free_rnh()
Enke Chen [Tue, 15 Oct 2024 17:23:10 +0000 (10:23 -0700)]
zebra: unlock node only after operation in zebra_free_rnh()

Move route_unlock_node() after rnh_list_del().

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
6 months agoMerge pull request #17062 from donaldsharp/dplane_fpm_nl_problems
Donatas Abraitis [Mon, 14 Oct 2024 05:14:34 +0000 (08:14 +0300)]
Merge pull request #17062 from donaldsharp/dplane_fpm_nl_problems

zebra: Only notify dplane work pthread when needed

6 months agoMerge pull request #17082 from anlancs/zebra/add-debug-flags-fix
Donatas Abraitis [Mon, 14 Oct 2024 05:12:40 +0000 (08:12 +0300)]
Merge pull request #17082 from anlancs/zebra/add-debug-flags-fix

zebra: add back one field for debug

6 months agozebra: add back one field for debug
anlan_cs [Sun, 13 Oct 2024 13:26:02 +0000 (21:26 +0800)]
zebra: add back one field for debug

The `flags` field is removed recently, so add back it for debug.

Signed-off-by: anlan_cs <anlan_cs@126.com>
6 months agoMerge pull request #17071 from louis-6wind/fix-ipv6-ll-nexthop-unchanged
Donatas Abraitis [Sun, 13 Oct 2024 11:16:54 +0000 (14:16 +0300)]
Merge pull request #17071 from louis-6wind/fix-ipv6-ll-nexthop-unchanged

bgpd: split nexthop-local unchanged peer subgroup

6 months agofpm: Allow max fpm message size to float based on ecmp
Donald Sharp [Fri, 11 Oct 2024 13:33:35 +0000 (09:33 -0400)]
fpm: Allow max fpm message size to float based on ecmp

Currently the max message size is 4k.  With a 256 way
ecmp FRR is seeing message sizes that are in the
6k size.  There is desire to allow this to increase as
well to 512.  Since the multipath size directly effects
how big the message may be when sending the routes ecmp
let's give a bit of headroom for this value when compiling
FRR at greater sizes.  Additionally since we know not everyone
is using such large ecmp, allow them to build as appropriate
for their use cases.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agozebra: Slow down fpm_process_queue
Donald Sharp [Fri, 11 Oct 2024 00:08:32 +0000 (20:08 -0400)]
zebra: Slow down fpm_process_queue

When the fpm_process_queue has run out of space
but has written to the fpm output buffer, schedule
it to wake up immediately, as that the write will go out
pretty much immediately, since it was scheduled first.
If the fpm_process_queue has not written to the output
buffer then delay the processing by 10 milliseconds to
allow a possibly backed up write processing to have a
chance to complete it's work.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agozebra: Only notify dplane work pthread when needed
Donald Sharp [Thu, 10 Oct 2024 20:00:08 +0000 (16:00 -0400)]
zebra: Only notify dplane work pthread when needed

The fpm_nl_process function was getting the count
of the total number of ctx's processed.  This leads
to after having processed 1 context to always signal
the dataplane that there is work to do.  Change the
code to only notify the dplane worker when a context
was actually added to the outgoing context queue.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agotests: test nexthop-local unchanged with reflector
Louis Scalbert [Fri, 11 Oct 2024 11:14:25 +0000 (13:14 +0200)]
tests: test nexthop-local unchanged with reflector

Test nexthop-local unchanged with route-reflector.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: test nexthop-local unchanged with route-server
Louis Scalbert [Thu, 10 Oct 2024 12:51:11 +0000 (14:51 +0200)]
tests: test nexthop-local unchanged with route-server

Test nexthop-local unchanged with route-server.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: split nexthop-local unchanged peer subgroup
Louis Scalbert [Fri, 11 Oct 2024 05:12:23 +0000 (07:12 +0200)]
bgpd: split nexthop-local unchanged peer subgroup

5bb99ccad2 ("bgpd: reset ipv6 invalid link-local nexthop") now resets
the link-local when originating and destination peers are not on the
same network segment. However, it does not work all the time.

The fix compares the 'from' and 'peer' global IPv6 address. However,
'peer' refers to one of the peers of subgroup. The subgroup may contain
peers located on different network segment.

Split nexthop-local unchanged peer subgroup by network segment.

Fixes: 5bb99ccad2 ("bgpd: reset ipv6 invalid link-local nexthop")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: unset r3 enforce-first-as bgp_route_server_client
Louis Scalbert [Thu, 10 Oct 2024 12:59:50 +0000 (14:59 +0200)]
tests: unset r3 enforce-first-as bgp_route_server_client

Unset enforce-first-as on r3 of bgp_route_server_client to enable the
reception of routes on this router.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: rework bgp_route_server_client
Louis Scalbert [Thu, 10 Oct 2024 11:29:43 +0000 (13:29 +0200)]
tests: rework bgp_route_server_client

Rework bgp_route_server_client in a more standard form in order to
facilitate the next commut changes. Cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17059 from opensourcerouting/fix/move_match_ipv6_next-hop_acl_to_...
Donald Sharp [Fri, 11 Oct 2024 11:14:51 +0000 (07:14 -0400)]
Merge pull request #17059 from opensourcerouting/fix/move_match_ipv6_next-hop_acl_to_routemap_lib

bgpd: Move some non BGP-specific route-map functions to lib

6 months agoMerge pull request #17064 from rudis/master
Donald Sharp [Fri, 11 Oct 2024 11:13:59 +0000 (07:13 -0400)]
Merge pull request #17064 from rudis/master

doc: routemap: fix typos

6 months agodoc: routemap: fix typos
Simon Ruderich [Fri, 11 Oct 2024 06:23:48 +0000 (08:23 +0200)]
doc: routemap: fix typos

Signed-off-by: Simon Ruderich <simon@ruderich.org>
6 months agoMerge pull request #17037 from louis-6wind/fix-ipv6-ll-nexthop
Donatas Abraitis [Fri, 11 Oct 2024 05:36:14 +0000 (08:36 +0300)]
Merge pull request #17037 from louis-6wind/fix-ipv6-ll-nexthop

bgpd: fix ipv6 nexthop-local unchanged

6 months agoMerge pull request #17061 from Jafaral/10.3-dev
Donatas Abraitis [Fri, 11 Oct 2024 05:24:06 +0000 (08:24 +0300)]
Merge pull request #17061 from Jafaral/10.3-dev

10.3 dev deb/rpm housekeeping

6 months agoMerge pull request #17040 from sri-mohan1/srib-24-frr-a
Donatas Abraitis [Fri, 11 Oct 2024 05:19:44 +0000 (08:19 +0300)]
Merge pull request #17040 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

6 months agoMerge pull request #17057 from donaldsharp/bgp_graceful_restart_vrf
Jafar Al-Gharaibeh [Fri, 11 Oct 2024 00:39:10 +0000 (19:39 -0500)]
Merge pull request #17057 from donaldsharp/bgp_graceful_restart_vrf

bgpd: Allow specification of vrf in show bgp neighbor graceful-restart

6 months agoMerge pull request #17044 from baozhen-H3C/202410091476
Donald Sharp [Thu, 10 Oct 2024 22:41:27 +0000 (18:41 -0400)]
Merge pull request #17044 from baozhen-H3C/202410091476

isisd: Lsp fragments will delete the corresponding dyn_cache entry.

6 months agodebian, redhat: frr dev 10.3 package housekeeping
Jafar Al-Gharaibeh [Thu, 10 Oct 2024 20:44:30 +0000 (15:44 -0500)]
debian, redhat: frr dev 10.3 package housekeeping

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agodebian, redhat: updating changelog for 10.1 release
Jafar Al-Gharaibeh [Thu, 1 Aug 2024 04:31:57 +0000 (23:31 -0500)]
debian, redhat: updating changelog for 10.1 release

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agobgpd: changes for code maintainability
sri-mohan1 [Wed, 9 Oct 2024 08:49:55 +0000 (14:19 +0530)]
bgpd: changes for code maintainability

these changes are for improving the code maintainability and readability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
6 months agobgpd: Move some non BGP-specific route-map functions to lib
Donatas Abraitis [Thu, 10 Oct 2024 13:50:38 +0000 (16:50 +0300)]
bgpd: Move some non BGP-specific route-map functions to lib

They are managed under `frr-route-map`, not under `frr-bgp-route-map`.

Fixes: https://github.com/FRRouting/frr/issues/17055
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobgpd: Allow specification of vrf in show bgp neighbor graceful-restart
Donald Sharp [Thu, 10 Oct 2024 13:13:39 +0000 (09:13 -0400)]
bgpd: Allow specification of vrf in show bgp neighbor graceful-restart

This command did not allow the operator to display neighbor information
related to graceful-restart when used inside of a vrf.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #17054 from opensourcerouting/fix/add_missing_logrotate_mgmtd
Donald Sharp [Thu, 10 Oct 2024 12:54:52 +0000 (08:54 -0400)]
Merge pull request #17054 from opensourcerouting/fix/add_missing_logrotate_mgmtd

tools: Add missing mgmtd into logrotate/rsyslogd

6 months agotools: Add missing mgmtd into logrotate/rsyslogd
Donatas Abraitis [Thu, 10 Oct 2024 09:58:43 +0000 (12:58 +0300)]
tools: Add missing mgmtd into logrotate/rsyslogd

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agoMerge pull request #17050 from chriswiggins/doc/vrrp-in-vm-bridge
Donatas Abraitis [Thu, 10 Oct 2024 09:45:49 +0000 (12:45 +0300)]
Merge pull request #17050 from chriswiggins/doc/vrrp-in-vm-bridge

Adds note about VRRP issues inside a VM with underlying bridge networking

6 months agotopotests: add bgp_nexthop_ipv6
Louis Scalbert [Tue, 8 Oct 2024 13:04:34 +0000 (15:04 +0200)]
topotests: add bgp_nexthop_ipv6

Add bgp_nexthop_ipv6 to check the ipv6 link-local nexthop conformity in
several situations.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: reset ipv6 invalid link-local nexthop
Louis Scalbert [Wed, 9 Oct 2024 15:08:44 +0000 (17:08 +0200)]
bgpd: reset ipv6 invalid link-local nexthop

If the "nexthop-local unchanged" setting is enabled, it preserves the
IPv6 link-local nexthop from the originating peer. However, if the
originating and destination peers are not on the same network segment,
the originating peer's IPv6 link-local address will be unreachable from
the destination peer.

In such cases, reset the IPv6 link-local nexthop, even if "nexthop-local
unchanged" is set on the destination peer.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: do not insert link-local with local unchanged
Louis Scalbert [Wed, 9 Oct 2024 15:06:19 +0000 (17:06 +0200)]
bgpd: do not insert link-local with local unchanged

Do not add an IPv6 link-local nexthop if the originating peer does not
provide one and the nexthop-local unchanged setting is enabled.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17002 from louis-6wind/bfd-values
Donatas Abraitis [Thu, 10 Oct 2024 06:25:42 +0000 (09:25 +0300)]
Merge pull request #17002 from louis-6wind/bfd-values

bfdd, yang: change bfd timer and multiplier values

6 months agodoc: VRRP troubleshooting info for linux-hosted VMs
Chris Wiggins [Thu, 10 Oct 2024 04:39:54 +0000 (17:39 +1300)]
doc: VRRP troubleshooting info for linux-hosted VMs

Signed-off-by: Chris Wiggins <chris@wiggins.nz>
6 months agoMerge pull request #17042 from donaldsharp/zebra_pw_crash
Jafar Al-Gharaibeh [Wed, 9 Oct 2024 18:46:25 +0000 (13:46 -0500)]
Merge pull request #17042 from donaldsharp/zebra_pw_crash

zebra: Fix crash in pw code

6 months agoRevert "bgpd: Exclude case for remote prefix w/o link-local"
Louis Scalbert [Tue, 8 Oct 2024 11:01:45 +0000 (13:01 +0200)]
Revert "bgpd: Exclude case for remote prefix w/o link-local"

This reverts commit 5f6a61f91fdbfa33df1b7112c961135156fbd894.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoisisd: Lsp fragments will delete the corresponding dyn_cache entry.
baozhen-H3C [Wed, 9 Oct 2024 09:58:05 +0000 (17:58 +0800)]
isisd: Lsp fragments will delete the corresponding dyn_cache entry.

When LSP fragments age, isis_dynhn_remove() is also called to remove the corresponding dyhn_cache entries.

Signed-off-by: baozhen-H3C <bao.zhen@h3c.com>
6 months agozebra: Fix crash in pw code
Donald Sharp [Wed, 9 Oct 2024 11:16:37 +0000 (07:16 -0400)]
zebra: Fix crash in pw code

Recent PR #17009 introduced a crash in pw handing
for deletion.  Let's fix that problem.

Fixes: #17041
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobuild: FRR 10.3 development version frr-10.3-dev
Jafar Al-Gharaibeh [Tue, 8 Oct 2024 18:06:40 +0000 (13:06 -0500)]
build: FRR 10.3 development version

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agoMerge pull request #17023 from donaldsharp/dplane_problems base_10.2
Russ White [Tue, 8 Oct 2024 15:45:27 +0000 (11:45 -0400)]
Merge pull request #17023 from donaldsharp/dplane_problems

zebra: Allow dplane to pass larger number of nexthops down to dataplane

6 months agoMerge pull request #17009 from donaldsharp/pw_cleanup
Russ White [Tue, 8 Oct 2024 14:56:28 +0000 (10:56 -0400)]
Merge pull request #17009 from donaldsharp/pw_cleanup

Pw cleanup

6 months agoMerge pull request #16945 from opensourcerouting/fix/bgp_received-routes_with_soft_in...
Russ White [Tue, 8 Oct 2024 14:16:24 +0000 (10:16 -0400)]
Merge pull request #16945 from opensourcerouting/fix/bgp_received-routes_with_soft_inbound

bgpd: Show unmodified version of received-routes per neighbor

6 months agoMerge pull request #16942 from baozhen-H3C/202409271079
Russ White [Tue, 8 Oct 2024 14:15:19 +0000 (10:15 -0400)]
Merge pull request #16942 from baozhen-H3C/202409271079

TI-LFA incorrectly included pseudo-nodes when calculating PQ space.

6 months agoMerge pull request #16941 from opensourcerouting/fix/issue_16877
Russ White [Tue, 8 Oct 2024 14:14:30 +0000 (10:14 -0400)]
Merge pull request #16941 from opensourcerouting/fix/issue_16877

bgpd: Relax the same prefix and nexthop to be valid

6 months agoMerge pull request #17022 from opensourcerouting/vrrp-cmsg-next
Donald Sharp [Tue, 8 Oct 2024 13:31:18 +0000 (09:31 -0400)]
Merge pull request #17022 from opensourcerouting/vrrp-cmsg-next

vrrpd: iterate over all ancillary messages

6 months ago*: Allow 16 bit size for nexthops
Donald Sharp [Mon, 7 Oct 2024 16:40:46 +0000 (12:40 -0400)]
*: Allow 16 bit size for nexthops

Currently FRR is limiting the nexthop count to a uint8_t not a
uint16_t.  This leads to issues when the nexthop count is 256
which results in the count to overflow to 0 causing problems
in the code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #15903 from y-bharath14/srib-topotests-v1
Russ White [Tue, 8 Oct 2024 12:27:12 +0000 (08:27 -0400)]
Merge pull request #15903 from y-bharath14/srib-topotests-v1

tests: catch exception during switch shutdown

6 months agobfdd, doc, yang: change bfd timer and multiplier values
Philippe Guibert [Fri, 12 Jul 2019 08:32:42 +0000 (10:32 +0200)]
bfdd, doc, yang: change bfd timer and multiplier values

The minimum and maximum values for BFD timers and multiplier settings
have been updated to align with RFC 5880 requirements.

Since the values inputted via VTY are in milliseconds, the maximum
permissible value on the VTY interface is 4,294,967 milliseconds.

For the multiplier setting, the minimum value is now restricted to be
greater than zero, as zero is not allowed.

The minimum transmit interval has been set to 10 milliseconds to ensure
reliable service performance.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17014 from anlancs/fix/isisd-topo-check
Donatas Abraitis [Tue, 8 Oct 2024 05:10:22 +0000 (08:10 +0300)]
Merge pull request #17014 from anlancs/fix/isisd-topo-check

isisd: fix wrong check for MT commands

6 months agoMerge pull request #17024 from Jafaral/fix-autorp
Donatas Abraitis [Tue, 8 Oct 2024 05:03:52 +0000 (08:03 +0300)]
Merge pull request #17024 from Jafaral/fix-autorp

pimd: fix a possible crash when enabling debug autorp

6 months agozebra: Do not retry in 30 seconds on pw reachability failure
Donald Sharp [Fri, 4 Oct 2024 13:51:46 +0000 (09:51 -0400)]
zebra: Do not retry in 30 seconds on pw reachability failure

Currently the zebra pw code has setup a retry to install the
pw after 30 seconds when it is decided that reachability to
the pw is gone.  This causes a failure mode where the
pw code just goes and re-installs the pw after 30 seconds
in the non-reachability case.  Instead it should just be
reinstalling after reachability is restored.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agozebra: Move pw status settting until after we get results
Donald Sharp [Fri, 4 Oct 2024 13:38:25 +0000 (09:38 -0400)]
zebra: Move pw status settting until after we get results

Currently the pw code sets the status of the pw for install
and uninstall immediately when notifying the dplane.  This
is incorrect in that we do not actually know the status at
this point in time.  When we get the result is when to set
the status.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agopimd: fix a possible crash when enabling debug autorp
Jafar Al-Gharaibeh [Mon, 7 Oct 2024 23:20:34 +0000 (18:20 -0500)]
pimd: fix a possible crash when enabling debug autorp

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agoMerge pull request #17015 from LabNConsulting/chopps/load-internal-ietf-yang-library
Igor Ryzhov [Mon, 7 Oct 2024 17:33:23 +0000 (20:33 +0300)]
Merge pull request #17015 from LabNConsulting/chopps/load-internal-ietf-yang-library

lib: add flag to have libyang load internal ietf-yang-library module

6 months agovrrpd: iterate over all ancillary messages
Rafael Zalamena [Mon, 7 Oct 2024 16:02:44 +0000 (13:02 -0300)]
vrrpd: iterate over all ancillary messages

Assign the return of `CMSG_NXTHDR` so we can really iterate over the
ancillary data.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agoMerge pull request #17013 from dksharp5/removal_functions
Donatas Abraitis [Mon, 7 Oct 2024 08:47:01 +0000 (11:47 +0300)]
Merge pull request #17013 from dksharp5/removal_functions

Removal functions

6 months agoMerge pull request #17012 from dksharp5/remove_function
Donatas Abraitis [Mon, 7 Oct 2024 08:45:05 +0000 (11:45 +0300)]
Merge pull request #17012 from dksharp5/remove_function

zebra: remove unused function rib_lookup_ipv4

6 months agolib: add flag to have libyang load internal ietf-yang-library module
Christian Hopps [Mon, 7 Oct 2024 03:23:31 +0000 (03:23 +0000)]
lib: add flag to have libyang load internal ietf-yang-library module

Mgmtd makes use of libyang's internal ietf-yang-library module to add
support for said module to FRR management. Previously, mgmtd was loading
this module explicitly; however, that required that libyang's
`ietf-yang-library.yang` module definition file be co-located with FRR's
yang files so that it (and ietf-datastore.yang) would be found when
searched for by libyang using FRRs search path. This isn't always the
case depending on how the user compiles and installs libyang so mgmtd
was failing to run in some cases.

Instead of doing it the above way we simply tell libyang to load it's
internal version of ietf-yang-library when we initialize the libyang
context.

This required adding a boolean to a couple of the init functions which
is why so many files are touched (although all the changes are minimal).

Signed-off-by: Christian Hopps <chopps@labn.net>
6 months agoisisd: fix wrong check for MT commands
anlan_cs [Sun, 6 Oct 2024 13:06:15 +0000 (21:06 +0800)]
isisd: fix wrong check for MT commands

```
anlan# show run
!
interface eth0
 ip router isis A
exit
!
router isis A
 metric-style narrow <- NOT wide
exit
!
end
anlan (config)# int eth0
anlan (config-if)# no isis topology ipv6-unicast
% Configuration failed.

Error type: validation
Error description: Multi topology IS-IS can only be used with wide metrics
```

The MT commands are mainly controlled by the binded area, not by interface.
Currently if there is any MT configuration in the area, `metric-style` must
be with the `wide` mode, this requirement is sufficient.  So, the
unnecessary/wrong check for MT in the interface should be removed.

Signed-off-by: anlan_cs <anlan_cs@126.com>
6 months agolib,zebra: remove unused ZEBRA_VRF_UNREGISTER
Donna Sharp [Sun, 6 Oct 2024 23:40:49 +0000 (19:40 -0400)]
lib,zebra: remove unused ZEBRA_VRF_UNREGISTER

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agozebra: remove unsued function from tc_netlink.c
Donna Sharp [Sun, 6 Oct 2024 23:30:56 +0000 (19:30 -0400)]
zebra: remove unsued function from tc_netlink.c

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agozebra: remove unused function from if_netlink.c
Donna Sharp [Sun, 6 Oct 2024 23:25:44 +0000 (19:25 -0400)]
zebra: remove unused function from if_netlink.c

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agozebra: remove unused function from tc_netlink.c
Donna Sharp [Sun, 6 Oct 2024 23:08:44 +0000 (19:08 -0400)]
zebra: remove unused function from tc_netlink.c

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agozebra: remove unused function rib_lookup_ipv4
Donna Sharp [Sun, 6 Oct 2024 22:41:09 +0000 (18:41 -0400)]
zebra: remove unused function rib_lookup_ipv4

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agoMerge pull request #17010 from anlancs/fix/tools-pim-interface-wrong-2
Donatas Abraitis [Sun, 6 Oct 2024 18:10:53 +0000 (21:10 +0300)]
Merge pull request #17010 from anlancs/fix/tools-pim-interface-wrong-2

tools: fix some special commands for reloading pim

6 months agotools: fix some special commands for reloading pim
anlan_cs [Sat, 5 Oct 2024 08:43:53 +0000 (16:43 +0800)]
tools: fix some special commands for reloading pim

The issue is we can't remove all pim configurations including some
special configurations (e.g., `no ip pim bsm`) for one interface.

For one pim-disable interface, all such pim depdendent options
(including `ip pim ` and `no ip pim `) should be completely removed.

Also append `no ip multicast` for the same purpose, it is no use at present,
but for future use.

The running config:
```
interface A
 ip pim
 no ip pim bsm
exit
```

Reload the new config:
```
interface A
exit
```

Before:
```
2024-10-05 20:52:33,467  INFO: Executed "interface A  no ip pim exit"
2024-10-05 20:52:33,482  INFO: Executed "interface A  ip pim bsm exit"
```
And the pim configurations in running configuration are not removed after reloading:
```
interface A
 ip pim <- Wrong
exit
```

After:
```
2024-10-05 20:56:27,489  INFO: Executed "interface A  no ip pim exit"
```
And all the pim configuration are removed.

Signed-off-by: anlan_cs <anlan_cs@126.com>
6 months agoMerge pull request #16800 from donaldsharp/nhg_reuse_intf_down_up
Russ White [Fri, 4 Oct 2024 14:28:58 +0000 (10:28 -0400)]
Merge pull request #16800 from donaldsharp/nhg_reuse_intf_down_up

Nhg reuse intf down up

6 months agoMerge pull request #17000 from fsb4000/patch-1
Donald Sharp [Fri, 4 Oct 2024 11:41:12 +0000 (07:41 -0400)]
Merge pull request #17000 from fsb4000/patch-1

zebra: Fix crash during reconnect

6 months agozebra: Fix crash during reconnect
Igor Zhukov [Fri, 4 Oct 2024 06:16:02 +0000 (13:16 +0700)]
zebra: Fix crash during reconnect

fpm_enqueue_rmac_table expects an fpm_rmac_arg* as its argument.

The issue can be reproduced by dropping the TCP session using:

ss -K dst 127.0.0.1 dport = 2620

I used Fedora 40 and frr 9.1.2 and I got the gdb backtrace:

(gdb) bt
0  0x00007fdd7d6997ea in fpm_enqueue_rmac_table (bucket=0x2134dd0, arg=0x2132b60) at zebra/dplane_fpm_nl.c:1217
1  0x00007fdd7dd1560d in hash_iterate (hash=0x21335f0, func=0x7fdd7d6997a0 <fpm_enqueue_rmac_table>, arg=0x2132b60) at lib/hash.c:252
2  0x00007fdd7dd1560d in hash_iterate (hash=0x1e5bf10, func=func@entry=0x7fdd7d698900 <fpm_enqueue_l3vni_table>,
    arg=arg@entry=0x7ffed983bef0) at lib/hash.c:252
3  0x00007fdd7d698b5c in fpm_rmac_send (t=<optimized out>) at zebra/dplane_fpm_nl.c:1262
4  0x00007fdd7dd6ce22 in event_call (thread=thread@entry=0x7ffed983c010) at lib/event.c:1970
5  0x00007fdd7dd20758 in frr_run (master=0x1d27f10) at lib/libfrr.c:1213
6  0x0000000000425588 in main (argc=10, argv=0x7ffed983c2e8) at zebra/main.c:492

Signed-off-by: Igor Zhukov <fsb4000@yandex.ru>
6 months agoMerge pull request #16994 from louis-6wind/bmp-adj-labels
Donald Sharp [Thu, 3 Oct 2024 19:08:36 +0000 (15:08 -0400)]
Merge pull request #16994 from louis-6wind/bmp-adj-labels

bgpd: export labels to pre-policy bmp

6 months agoMerge pull request #16993 from louis-6wind/bfd-no-variants
Donald Sharp [Thu, 3 Oct 2024 14:41:40 +0000 (10:41 -0400)]
Merge pull request #16993 from louis-6wind/bfd-no-variants

bfdd: add no variants to all configurations

6 months agobgpd: export labels to pre-policy bmp
Louis Scalbert [Tue, 27 Feb 2024 18:35:32 +0000 (19:35 +0100)]
bgpd: export labels to pre-policy bmp

Export labels to pre-policy BMP

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #16992 from sri-mohan1/srib-24-frr-a
Donald Sharp [Thu, 3 Oct 2024 13:34:00 +0000 (09:34 -0400)]
Merge pull request #16992 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

6 months agoMerge pull request #16989 from opensourcerouting/fix/unreachable_code
Donald Sharp [Thu, 3 Oct 2024 12:29:55 +0000 (08:29 -0400)]
Merge pull request #16989 from opensourcerouting/fix/unreachable_code

bgpd: Print debug message about reaching maximum allowed multi paths

6 months agolib: remove unused bfd defines
Louis Scalbert [Thu, 3 Oct 2024 11:37:51 +0000 (13:37 +0200)]
lib: remove unused bfd defines

Remove unused bfd defines

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobfdd: add no variants to all configurations
Louis Scalbert [Thu, 3 Oct 2024 11:08:43 +0000 (13:08 +0200)]
bfdd: add no variants to all configurations

Continue the work of b70835d690 ("bfdd: add no variants to interval
configurations")

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: changes for code maintainability
sri-mohan1 [Thu, 3 Oct 2024 10:55:36 +0000 (16:25 +0530)]
bgpd: changes for code maintainability

these changes are for improving the code maintainability and readability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
6 months agobgpd: Print debug message about reaching maximum allowed multi paths
Donatas Abraitis [Thu, 3 Oct 2024 06:20:40 +0000 (09:20 +0300)]
bgpd: Print debug message about reaching maximum allowed multi paths

Fixes: 421cf856ef86db250a86be01437d0a668b463dcc ("bgpd: Cleanup multipath figuring out in bgp")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agoMerge pull request #16978 from donaldsharp/dmed_deselect_not_used
Donatas Abraitis [Thu, 3 Oct 2024 04:05:13 +0000 (07:05 +0300)]
Merge pull request #16978 from donaldsharp/dmed_deselect_not_used

bgpd: Remove unused bgp_mp_dmed_deselect function

6 months agoMerge pull request #16977 from louis-6wind/fix-printfrr_bp
Donatas Abraitis [Wed, 2 Oct 2024 15:57:59 +0000 (18:57 +0300)]
Merge pull request #16977 from louis-6wind/fix-printfrr_bp

bgpd: fix printfrr_bp for non initialized peers

6 months agoMerge pull request #16971 from opensourcerouting/fix/v6-with-v4-nexthops
Donald Sharp [Wed, 2 Oct 2024 15:08:13 +0000 (11:08 -0400)]
Merge pull request #16971 from opensourcerouting/fix/v6-with-v4-nexthops

bgpd: Actually make ` --v6-with-v4-nexthops` it work

6 months agobgpd: Remove unused bgp_mp_dmed_deselect function
Donald Sharp [Wed, 2 Oct 2024 14:41:37 +0000 (10:41 -0400)]
bgpd: Remove unused bgp_mp_dmed_deselect function

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #16967 from donaldsharp/nexthop_fixes
Donatas Abraitis [Wed, 2 Oct 2024 13:10:34 +0000 (16:10 +0300)]
Merge pull request #16967 from donaldsharp/nexthop_fixes

lib: nexthop code should use uint16_t for nexthop counting

6 months agobgpd: fix printfrr_bp for non initialized peers
Louis Scalbert [Wed, 2 Oct 2024 12:38:15 +0000 (14:38 +0200)]
bgpd: fix printfrr_bp for non initialized peers

Fix printfrr_bp for non initialized peers. For example:

> Sep 26 17:56:44 r1 bgpd[26295]: [GJPH1-W8PZV] Resetting peer (null)(Unknown) due to change in addpath config

Is now:

> Oct 02 14:00:59 r1 bgpd[12795]: [MNE5N-K0G4Z] Resetting peer 2.2.2.2 due to change in addpath config

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #16968 from opensourcerouting/bfd-no-commands
Donald Sharp [Wed, 2 Oct 2024 12:40:14 +0000 (08:40 -0400)]
Merge pull request #16968 from opensourcerouting/bfd-no-commands

bfdd: add no variants to interval configurations

6 months agoMerge pull request #16961 from donaldsharp/mp_info_changes
Donatas Abraitis [Wed, 2 Oct 2024 11:53:04 +0000 (14:53 +0300)]
Merge pull request #16961 from donaldsharp/mp_info_changes

Mp info changes

6 months agobgpd: Actually make ` --v6-with-v4-nexthops` it work
Donatas Abraitis [Wed, 2 Oct 2024 10:57:30 +0000 (13:57 +0300)]
bgpd: Actually make ` --v6-with-v4-nexthops` it work

It was using `-v` which is actually a _version_.

Fixes: 0435b31bb8ed55377f83d0e19bc085abc3c71b44 ("bgpd: Allow bgp to specify if it will allow v6 routing with v4 nexthops")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobfdd: add no variants to interval configurations
Rafael Zalamena [Tue, 1 Oct 2024 21:58:24 +0000 (18:58 -0300)]
bfdd: add no variants to interval configurations

Add missing no commands to various interval configurations.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agolib: nexthop code should use uint16_t for nexthop counting
Donald Sharp [Tue, 1 Oct 2024 18:31:08 +0000 (14:31 -0400)]
lib: nexthop code should use uint16_t for nexthop counting

It's possible to specify via the cli and configure how many
nexthops that are allowed on the system.  If you happen to
have > 255 then things are about to get interesting otherwise.

Let's allow up to 65k nexthops (ha!)

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #16952 from anlancs/fix/tools-pim-interface-wrong
Jafar Al-Gharaibeh [Tue, 1 Oct 2024 19:30:35 +0000 (14:30 -0500)]
Merge pull request #16952 from anlancs/fix/tools-pim-interface-wrong

tools: fix missing check interfaces for reloading pim

6 months agoMerge pull request #16955 from anlancs/fix/pimd-add-v4v6-check
Jafar Al-Gharaibeh [Tue, 1 Oct 2024 19:28:28 +0000 (14:28 -0500)]
Merge pull request #16955 from anlancs/fix/pimd-add-v4v6-check

pimd: fix missing IPV4 check

6 months agotests: Check if loopback routes are considered valid for nexthop tracking
Donatas Abraitis [Fri, 27 Sep 2024 07:52:22 +0000 (10:52 +0300)]
tests: Check if loopback routes are considered valid for nexthop tracking

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobgpd: Relax the same prefix and nexthop to be valid
Donatas Abraitis [Fri, 27 Sep 2024 07:52:55 +0000 (10:52 +0300)]
bgpd: Relax the same prefix and nexthop to be valid

Treat as next-hop invalid if import check is enabled.

Fixes: 654a5978f695087af062bfc9a382321fa2ccc4ae ("bgpd: prevent routes loop through itself")
Fixes: https://github.com/FRRouting/frr/issues/16877
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agotests: Drop test_bgp_with_loopback_with_same_subnet_p1
Donatas Abraitis [Fri, 27 Sep 2024 09:55:39 +0000 (12:55 +0300)]
tests: Drop test_bgp_with_loopback_with_same_subnet_p1

It's replaced and simplified by c3fd1e9520c619babb3004cea6df622ca67b0dfa.

JSON topo is just horrible to debug.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobgpd: Remove bgp_path_info_mpath_dequeue
Donald Sharp [Tue, 1 Oct 2024 13:18:44 +0000 (09:18 -0400)]
bgpd: Remove bgp_path_info_mpath_dequeue

This function is no doing any work.  Let's remove.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobgpd: Cleanup multipath figuring out in bgp
Donald Sharp [Mon, 30 Sep 2024 19:09:42 +0000 (15:09 -0400)]
bgpd: Cleanup multipath figuring out in bgp

Currently bgp multipath has these properties:

a) mp_info may or may not be on a single path, based
upon path perturbations in the past.
b) mp_info->count started counting at 0( meaning 1 ).  As that the
bestpath path_info was never included in the count
c) The first mp_info in the list held the multipath data associated
with the multipath.  As such if you were at any other node that data
was not filled in.
d) As such the mp_info's that are not first on the list basically
were just pointers to the corresponding bgp_path_info that was in
the multipath.
e) On bestpath calculation, a linklist(struct linklist *) of bgp_path_info's was
created.
f) This linklist was passed in to a comparison function that took the
old mpinfo list and compared it item by item to the linklist and
doing magic to figure out how to create a new mp_info list.
g) the old mp_info and the link list had to be memory managed and
freed up.
h) BGP_PATH_MULTIPATH is only set on non bestpath nodes in the
multipath.

This is really complicated.  Let's change the algorithm to this:

a) When running bestpath, mark a bgp_path_info node that could be in the ecmp path as
BGP_PATH_MULTIPATH_NEW.
b) When running multipath, just walk the list of bgp_path_info's and if
it has BGP_PATH_MULTIPATH_NEW on it, decide if it is in BGP_MULTIPATH.
If we run out of space to put in the ecmp, clear the flag on the rest.
c) Clean up the counting of sometimes adding 1 to the mpath count.
d) Only allocate a mpath_info node for the bestpath.  Clean it up
when done with it.
e) remove the unneeded list management associated with the linklist and
the mp_list.

This greatly simplifies multipath computation for bgp and reduces memory
load for large scale deployments.

2 full feeds in work_queue_run prior:

    0      56367.471      1123    50193    493695    50362    493791         0         0          0    TE   work_queue_run

BGP multipath info            :  1941844     48   110780992  1941844 110780992

2 full feeds in work_queue_run after change:

    1      52924.931      1296    40837    465968    41025    487390         0         0          1    TE   work_queue_run

BGP multipath info            :   970860     32    38836880   970866  38837120

Aproximately 4 seconds of saved cpu time for convergence and ~75 mb
smaller run time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agotests: Clean up some logging in test_bgp_default_originate_2links.py
Donald Sharp [Mon, 30 Sep 2024 18:57:45 +0000 (14:57 -0400)]
tests: Clean up some logging in test_bgp_default_originate_2links.py

Test was confusing.  Add some useful data and clean up some debugs

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobgpd: Ensure mpath data is only on bestpath
Donald Sharp [Thu, 26 Sep 2024 14:46:23 +0000 (10:46 -0400)]
bgpd: Ensure mpath data is only on bestpath

The mpath data structure has data that is only relevant
for the first mpath in the list.  It is not being used
anywhere else.  Let's document that a bit more.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobgpd: Use CHECK_FLAG to remain consistent for mp_flags
Donald Sharp [Thu, 26 Sep 2024 14:40:30 +0000 (10:40 -0400)]
bgpd: Use CHECK_FLAG to remain consistent for mp_flags

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #16958 from opensourcerouting/calloc-warning-fix
Jafar Al-Gharaibeh [Mon, 30 Sep 2024 17:42:12 +0000 (12:42 -0500)]
Merge pull request #16958 from opensourcerouting/calloc-warning-fix

lib: fix calloc warning on recent compiler