]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
2 weeks agoMerge pull request #18655 from mjstapp/fix_clang_lib_bgp
Jafar Al-Gharaibeh [Tue, 15 Apr 2025 02:10:49 +0000 (21:10 -0500)]
Merge pull request #18655 from mjstapp/fix_clang_lib_bgp

lib,bgpd: clean up clang warnings

2 weeks agoMerge pull request #18654 from chdxD1/v4-via-v6-nexthop
Donald Sharp [Mon, 14 Apr 2025 23:28:48 +0000 (19:28 -0400)]
Merge pull request #18654 from chdxD1/v4-via-v6-nexthop

Add v4-via-v6 nexthop support to staticd

2 weeks agoMerge pull request #18641 from donaldsharp/fpm_listener_storage
Jafar Al-Gharaibeh [Mon, 14 Apr 2025 20:21:13 +0000 (15:21 -0500)]
Merge pull request #18641 from donaldsharp/fpm_listener_storage

zebra: Add ability to dump routes received from fpm_listener

2 weeks agolib,bgpd: clean up clang warnings 18655/head
Mark Stapp [Mon, 14 Apr 2025 19:32:08 +0000 (15:32 -0400)]
lib,bgpd: clean up clang warnings

Clean up a couple of clang compiler warnings (this was
clang 18)

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoMerge pull request #18578 from ak503/pim6_use_source
Jafar Al-Gharaibeh [Mon, 14 Apr 2025 19:07:26 +0000 (14:07 -0500)]
Merge pull request #18578 from ak503/pim6_use_source

pim6d: fix missing 'use-source' interface command

2 weeks agodoc: Add v4-over-v6 next-hop to staticd docs 18654/head
Christopher Dziomba [Mon, 14 Apr 2025 17:28:13 +0000 (19:28 +0200)]
doc: Add v4-over-v6 next-hop to staticd docs

GATEWAY can now be v4 or v6 for v4 routes, for v6 routes it
can only be v6 (like today).

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
2 weeks agotests: Validating staticd v4-over-v6 nexthop
Christopher Dziomba [Mon, 14 Apr 2025 17:23:16 +0000 (19:23 +0200)]
tests: Validating staticd v4-over-v6 nexthop

Introducing do_ipv6_nexthop to static_simple topotest. The test
configures IPv4 routes with IPv6 nexthop and validates that via
inet6 is visible in the Linux Kernel

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
2 weeks agostaticd: Add v4-via-v6 nexthop support
Christopher Dziomba [Mon, 14 Apr 2025 17:13:45 +0000 (19:13 +0200)]
staticd: Add v4-via-v6 nexthop support

Routing v4 over an v6 nexthop is already well supported within zebra
(and FRR). This adds support to staticd, allowing an IPv6 nexthop to
be provided to ip route statements. For this the commands are
extended and the address family is parsed from the parameter.

When receiving nht updates from zebra, both AFIs are checked because
prefixes could exist in both. Additionally when route_node is known,
family of prefix is used instead of nexthop.

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
2 weeks agoMerge pull request #18649 from donaldsharp/rpki_testing_and_buf_fix
Jafar Al-Gharaibeh [Sun, 13 Apr 2025 03:26:19 +0000 (22:26 -0500)]
Merge pull request #18649 from donaldsharp/rpki_testing_and_buf_fix

Rpki testing and bug fix

2 weeks agotests: Add more tests to bgp_rpki_topo1 test 18649/head
Donald Sharp [Sat, 12 Apr 2025 20:32:34 +0000 (16:32 -0400)]
tests: Add more tests to bgp_rpki_topo1 test

Looking at the gcov of the rpki code, I noticed
that there was some functionality that is not
covered in our test suites.  Add the functionality.

Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
2 weeks agobgpd: Prevent crash when issuing a show rpki connections
Donald Sharp [Sat, 12 Apr 2025 20:56:30 +0000 (16:56 -0400)]
bgpd: Prevent crash when issuing a show rpki connections

When attempting to check rpki status and the connection
has been turned off, let's check to see if we are connected
before we ask the rpki subsystem, else we will get a crash
in the rpki library.

Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
2 weeks agopim6d: fix missing 'use-source' interface command 18578/head
Dmitrii Turlupov [Tue, 8 Apr 2025 12:45:53 +0000 (15:45 +0300)]
pim6d: fix missing 'use-source' interface command

Signed-off-by: Dmitrii Turlupov <turlupov@bk.ru>
2 weeks agoMerge pull request #18645 from louis-6wind/fix-zebra-pbr-leak
Donald Sharp [Fri, 11 Apr 2025 23:54:03 +0000 (19:54 -0400)]
Merge pull request #18645 from louis-6wind/fix-zebra-pbr-leak

zebra: fix pbr_iptable memory leak

2 weeks agoMerge pull request #18574 from y-bharath14/srib-tests-v10
Donatas Abraitis [Fri, 11 Apr 2025 15:54:01 +0000 (18:54 +0300)]
Merge pull request #18574 from y-bharath14/srib-tests-v10

tests: Shadowing the built-in function

2 weeks agoMerge pull request #18628 from raja-rajasekar/rajasekarr/fix_frr_reload_srv6
Carmine Scarpitta [Fri, 11 Apr 2025 15:07:05 +0000 (17:07 +0200)]
Merge pull request #18628 from raja-rajasekar/rajasekarr/fix_frr_reload_srv6

tools: fix reload script for SRv6 locators and formats

2 weeks agoMerge pull request #18640 from donaldsharp/fpm_listener_nhg_data
Jafar Al-Gharaibeh [Fri, 11 Apr 2025 15:06:55 +0000 (10:06 -0500)]
Merge pull request #18640 from donaldsharp/fpm_listener_nhg_data

zebra: modify fpm_listener to display data about nhgs

2 weeks agoMerge pull request #18597 from pguibert6WIND/end_b6_encaps_extensions
Carmine Scarpitta [Fri, 11 Apr 2025 15:00:13 +0000 (17:00 +0200)]
Merge pull request #18597 from pguibert6WIND/end_b6_encaps_extensions

lib, staticd, isisd: add B6.ENCAPS codepoint extensions

2 weeks agozebra: clean pbr_iptable interface_name_list free 18645/head
Louis Scalbert [Fri, 11 Apr 2025 13:13:23 +0000 (15:13 +0200)]
zebra: clean pbr_iptable interface_name_list free

Clean up code related to pbr_iptable->interface_name_list free. This is
a cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 weeks agozebra: fix pbr_iptable memory leak
Louis Scalbert [Fri, 11 Apr 2025 13:20:13 +0000 (15:20 +0200)]
zebra: fix pbr_iptable memory leak

We are obviously doing deleting on wrong object.

> Direct leak of 40 byte(s) in 1 object(s) allocated from:
>     #0 0x7fcf718b4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
>     #1 0x7fcf7126f8dd in qcalloc lib/memory.c:105
>     #2 0x7fcf7124401a in list_new lib/linklist.c:49
>     #3 0x55771621d86d in pbr_iptable_alloc_intern zebra/zebra_pbr.c:1015
>     #4 0x7fcf71217d79 in hash_get lib/hash.c:147
>     #5 0x55771621dad3 in zebra_pbr_add_iptable zebra/zebra_pbr.c:1030
>     #6 0x55771614d00c in zread_iptable zebra/zapi_msg.c:4131
>     #7 0x55771614e586 in zserv_handle_commands zebra/zapi_msg.c:4424
>     #8 0x5577162dae2c in zserv_process_messages zebra/zserv.c:521
>     #9 0x7fcf7137798e in event_call lib/event.c:2011
>     #10 0x7fcf71242ff1 in frr_run lib/libfrr.c:1216
>     #11 0x5577160e4d6d in main zebra/main.c:540
>     #12 0x7fcf70c29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
>
> Indirect leak of 24 byte(s) in 1 object(s) allocated from:
>     #0 0x7fcf718b4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
>     #1 0x7fcf7126f8dd in qcalloc lib/memory.c:105
>     #2 0x7fcf71244129 in listnode_new lib/linklist.c:71
>     #3 0x7fcf71244238 in listnode_add lib/linklist.c:92
>     #4 0x55771621d938 in pbr_iptable_alloc_intern zebra/zebra_pbr.c:1019
>     #5 0x7fcf71217d79 in hash_get lib/hash.c:147
>     #6 0x55771621dad3 in zebra_pbr_add_iptable zebra/zebra_pbr.c:1030
>     #7 0x55771614d00c in zread_iptable zebra/zapi_msg.c:4131
>     #8 0x55771614e586 in zserv_handle_commands zebra/zapi_msg.c:4424
>     #9 0x5577162dae2c in zserv_process_messages zebra/zserv.c:521
>     #10 0x7fcf7137798e in event_call lib/event.c:2011
>     #11 0x7fcf71242ff1 in frr_run lib/libfrr.c:1216
>     #12 0x5577160e4d6d in main zebra/main.c:540
>     #13 0x7fcf70c29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Fixes: f80ec7e3d6 ("zebra: handle iptable list of interfaces")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 weeks agozebra: split up MTYPE_PBR_OBJ
Louis Scalbert [Fri, 11 Apr 2025 09:12:52 +0000 (11:12 +0200)]
zebra: split up MTYPE_PBR_OBJ

Split up MTYPE_PBR_OBJ into dedicated MTYPE to clarify the memory
allocation and free.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 weeks agoMerge pull request #18642 from louis-6wind/fix-asla-leak
Donald Sharp [Fri, 11 Apr 2025 13:07:27 +0000 (09:07 -0400)]
Merge pull request #18642 from louis-6wind/fix-asla-leak

isisd: fix asla memory leak

2 weeks agoMerge pull request #16735 from zmw12306/babel_nonzeroMBZ
Donald Sharp [Fri, 11 Apr 2025 12:42:45 +0000 (08:42 -0400)]
Merge pull request #16735 from zmw12306/babel_nonzeroMBZ

babeld: Add MBZ and Reserved field checking

2 weeks agoMerge pull request #18633 from y-bharath14/srib-tests-v11
Donald Sharp [Fri, 11 Apr 2025 12:41:02 +0000 (08:41 -0400)]
Merge pull request #18633 from y-bharath14/srib-tests-v11

tests: Fix potential issues in mcast-tester.py

2 weeks agoMerge pull request #18635 from opensourcerouting/support_bundle_ns
Donald Sharp [Fri, 11 Apr 2025 12:40:34 +0000 (08:40 -0400)]
Merge pull request #18635 from opensourcerouting/support_bundle_ns

tools: Add pathspace option to generate_support_bundle

2 weeks agoisisd: fix asla memory leak 18642/head
Louis Scalbert [Fri, 11 Apr 2025 05:29:57 +0000 (07:29 +0200)]
isisd: fix asla memory leak

> ==713776==ERROR: LeakSanitizer: detected memory leaks
>
> Direct leak of 120 byte(s) in 1 object(s) allocated from:
>     #0 0x7fdfcbeb4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
>     #1 0x7fdfcb86f8dd in qcalloc lib/memory.c:105
>     #2 0x55ce707739b6 in isis_tlvs_find_alloc_asla isisd/isis_tlvs.c:8500
>     #3 0x55ce7072fae0 in isis_link_params_update_asla isisd/isis_te.c:191
>     #4 0x55ce70733881 in isis_link_params_update isisd/isis_te.c:499
>     #5 0x55ce70693f2a in isis_circuit_up isisd/isis_circuit.c:776
>     #6 0x55ce7069a120 in isis_csm_state_change isisd/isis_csm.c:135
>     #7 0x55ce7068dd80 in isis_circuit_enable isisd/isis_circuit.c:79
>     #8 0x55ce70699346 in isis_ifp_create isisd/isis_circuit.c:1618
>     #9 0x7fdfcb81f47f in hook_call_if_real lib/if.c:55
>     #10 0x7fdfcb82056e in if_new_via_zapi lib/if.c:188
>     #11 0x7fdfcb9d17da in zclient_interface_add lib/zclient.c:2706
>     #12 0x7fdfcb9df842 in zclient_read lib/zclient.c:4843
>     #13 0x7fdfcb97798e in event_call lib/event.c:2011
>     #14 0x7fdfcb842ff1 in frr_run lib/libfrr.c:1216
>     #15 0x55ce7067cbf2 in main isisd/isis_main.c:360
>     #16 0x7fdfcb229d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
>
> Indirect leak of 8 byte(s) in 1 object(s) allocated from:
>     #0 0x7fdfcbeb4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
>     #1 0x7fdfcb86f8dd in qcalloc lib/memory.c:105
>     #2 0x7fdfcb79a7b7 in admin_group_init lib/admin_group.c:186
>     #3 0x55ce707739ca in isis_tlvs_find_alloc_asla isisd/isis_tlvs.c:8501
>     #4 0x55ce7072fae0 in isis_link_params_update_asla isisd/isis_te.c:191
>     #5 0x55ce70733881 in isis_link_params_update isisd/isis_te.c:499
>     #6 0x55ce70693f2a in isis_circuit_up isisd/isis_circuit.c:776
>     #7 0x55ce7069a120 in isis_csm_state_change isisd/isis_csm.c:135
>     #8 0x55ce7068dd80 in isis_circuit_enable isisd/isis_circuit.c:79
>     #9 0x55ce70699346 in isis_ifp_create isisd/isis_circuit.c:1618
>     #10 0x7fdfcb81f47f in hook_call_if_real lib/if.c:55
>     #11 0x7fdfcb82056e in if_new_via_zapi lib/if.c:188
>     #12 0x7fdfcb9d17da in zclient_interface_add lib/zclient.c:2706
>     #13 0x7fdfcb9df842 in zclient_read lib/zclient.c:4843
>     #14 0x7fdfcb97798e in event_call lib/event.c:2011
>     #15 0x7fdfcb842ff1 in frr_run lib/libfrr.c:1216
>     #16 0x55ce7067cbf2 in main isisd/isis_main.c:360
>     #17 0x7fdfcb229d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

PR: 95719
Fixes: 5749ac83a8 ("isisd: add ASLA support")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 weeks agolib, staticd, isisd: add B6.Encaps codepoint extensions 18597/head
Philippe Guibert [Mon, 7 Apr 2025 10:35:31 +0000 (12:35 +0200)]
lib, staticd, isisd: add B6.Encaps codepoint extensions

Add codepoint extensions for END.B6.Encaps instruction.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 weeks agozebra: Add ability to dump routes received from fpm_listener 18641/head
Donald Sharp [Thu, 10 Apr 2025 23:17:54 +0000 (19:17 -0400)]
zebra: Add ability to dump routes received from fpm_listener

The fpm_listener currently has no ability to store the list
of prefixes that it has received.  Modify the code to store
the prefixes in a typesafe RB Tree.  Additionally modify
the code such that when a SIGUSR1 is received to dump
the routes out.  If the operator specifies a -z <filename>
then write the routes to that file.  It will overwrite
the last version of the file written.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 weeks agozebra: modify fpm_listener to display data about nhgs 18640/head
Donald Sharp [Thu, 10 Apr 2025 20:57:10 +0000 (16:57 -0400)]
zebra: modify fpm_listener to display data about nhgs

Currently the fpm_listener completely ignores NHG's.
Let's start dumping some data about the nexthop groups:

[2025-04-10 16:55:12.939235306] FPM message - Type: 1, Length 52
[2025-04-10 16:55:12.939254252] Nexthop Group ID: 9, Protocol: Zebra(11), Contains 1 nexthops, Family: 2, Scope: 0
[2025-04-10 16:55:12.939260564] FPM message - Type: 1, Length 52
[2025-04-10 16:55:12.939263990] Nexthop Group ID: 10, Protocol: Zebra(11), Contains 1 nexthops, Family: 2, Scope: 0
[2025-04-10 16:55:12.939268659] FPM message - Type: 1, Length 56
[2025-04-10 16:55:12.939271635] Nexthop Group ID: 8, Protocol: Zebra(11), Contains 2 nexthops, Family: 0, Scope: 0

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 weeks agoMerge pull request #18376 from pguibert6WIND/show_bgp_neighbor_counter_tx
Donatas Abraitis [Thu, 10 Apr 2025 16:38:59 +0000 (19:38 +0300)]
Merge pull request #18376 from pguibert6WIND/show_bgp_neighbor_counter_tx

bgpd: fix add prefix sent in 'show bgp neighbor'

2 weeks agoMerge pull request #18611 from pguibert6WIND/bgp_usid
Donatas Abraitis [Thu, 10 Apr 2025 16:34:44 +0000 (19:34 +0300)]
Merge pull request #18611 from pguibert6WIND/bgp_usid

bgpd: add usid behavior for bgp srv6 instructions

2 weeks agoMerge pull request #18472 from zmw12306/Update-TLV
Jafar Al-Gharaibeh [Thu, 10 Apr 2025 14:59:13 +0000 (09:59 -0500)]
Merge pull request #18472 from zmw12306/Update-TLV

babeld: Add input validation for update TLV.

2 weeks agoMerge pull request #18548 from zmw12306/request_subtlv_type
Jafar Al-Gharaibeh [Thu, 10 Apr 2025 14:56:14 +0000 (09:56 -0500)]
Merge pull request #18548 from zmw12306/request_subtlv_type

babeld: fix incorrect type assignment in parse_request_subtlv

2 weeks agotools: fix reload script for SRv6 locators and formats 18628/head
Rajasekar Raja [Tue, 8 Apr 2025 22:06:57 +0000 (15:06 -0700)]
tools: fix reload script for SRv6 locators and formats

Current code implementation does not have a "no" form of handling for
the following commands under segment-routing srv6
 - no formats
 - no locators
 - no prefix <> under locator XYZ

Fix the handling of segment-routing srv6 locators and formats commands
 - Ignore "no formats" and "no locators" command
 - replace "no prefix" under locator XYZ as "no locator XYZ" as prefix
   is a mandatory property of locator

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
2 weeks agotools: Add pathspace option to generate_support_bundle 18635/head
Martin Winter [Thu, 10 Apr 2025 13:58:44 +0000 (15:58 +0200)]
tools: Add pathspace option to generate_support_bundle

Adding a `-N` pathspace option to the generate_support_bundle.py
to support FRR running in a non-default namespace with a prefix
on the config/socket options.
The same pathspace will be prepended to the output log files (if
specified)

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2 weeks agoMerge pull request #18586 from zmw12306/bfd_find_disc
Donald Sharp [Thu, 10 Apr 2025 14:30:05 +0000 (10:30 -0400)]
Merge pull request #18586 from zmw12306/bfd_find_disc

bfdd: Fix demultiplexing to rely solely on Your Discriminator

2 weeks agoMerge pull request #18624 from louis-6wind/remove-afi2family
Donatas Abraitis [Thu, 10 Apr 2025 14:14:08 +0000 (17:14 +0300)]
Merge pull request #18624 from louis-6wind/remove-afi2family

bgpd: remove useless calls to afi2family

2 weeks agoMerge pull request #18594 from soumyar-roy/soumya/netwithdraw
Mark Stapp [Thu, 10 Apr 2025 14:07:32 +0000 (10:07 -0400)]
Merge pull request #18594 from soumyar-roy/soumya/netwithdraw

bgpd: Paths not deleted received from shutdown peer

2 weeks agotests: Fix potential issues in mcast-tester.py 18633/head
Y Bharath [Thu, 10 Apr 2025 11:31:06 +0000 (17:01 +0530)]
tests: Fix potential issues in mcast-tester.py

Fix potential issues in mcast-tester.py

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
2 weeks agobgpd: fix add prefix sent in 'show bgp neighbor' 18376/head
Philippe Guibert [Thu, 13 Mar 2025 10:29:39 +0000 (11:29 +0100)]
bgpd: fix add prefix sent in 'show bgp neighbor'

The 'acceptedPrefixCounter' is available in 'show bgp neighbor json', but
there is no equivalent when using the non json output. Add it.

> # show bgp neighbor
> [..]
>  Community attribute sent to this neighbor(all)
>  0 accepted prefixes, 1 sent prefixes

Fixes: 856ca177c4bb ("Added json formating support to show-...-neighbors-... bgp commands.")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 weeks agoMerge pull request #18625 from donaldsharp/bgp_table_init_reverse
Donatas Abraitis [Wed, 9 Apr 2025 21:56:06 +0000 (00:56 +0300)]
Merge pull request #18625 from donaldsharp/bgp_table_init_reverse

bgpd: On shutdown free up table for static routes

2 weeks agotest: Test for bgp route delete 18594/head
Soumya Roy [Mon, 7 Apr 2025 21:38:32 +0000 (21:38 +0000)]
test: Test for bgp route delete

This fix add tests to verify routes/path are getting
deleted properly, when the advertising neighbor is shutdown

Signed-off-by: Soumya Roy <souroy@nvidia.com>
2 weeks agoMerge pull request #18627 from donaldsharp/irdp_shadow
Mark Stapp [Wed, 9 Apr 2025 18:17:36 +0000 (14:17 -0400)]
Merge pull request #18627 from donaldsharp/irdp_shadow

zebra: Fix shadow warning in irdp_packet.c

2 weeks agozebra: Fix shadow warning in irdp_packet.c 18627/head
Donald Sharp [Wed, 9 Apr 2025 16:01:30 +0000 (12:01 -0400)]
zebra: Fix shadow warning in irdp_packet.c

My compiler is complaining about irdp_sock
being a shadow variable.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 weeks agobgpd: Paths, received from shutdown peer, not deleted
Soumya Roy [Mon, 7 Apr 2025 05:36:09 +0000 (05:36 +0000)]
bgpd: Paths, received from shutdown peer, not deleted

Issue:
In a scaled setup, (where number of nets > BGP_CLEARING_BATCH_MAX_DESTS
for walk_batch_table_helper), when peer is shutdown, it is seen some
of the paths are not deleted, which are received from that peer.

Fix:
This is due to, in clear_batch_rib_helper, once walk_batch_table_helper
returns after BGP_CLEARING_BATCH_MAX_DESTS is reached, we just break
from inner loop for the afi/safi for loops. So during walk for next
afi/safi that 'ret' state is overwritten with new state. Also the
resume context is overwritten. This causes to lose the start point
for next walk, some nets are skipped forever. So they are not marked
for deletion anymore. To fix this, we immediately return from current
run. This will have resume state to be stored correctly, and next walk
will start from there.

Testing:
32 ecmp paths were received from the shutdown peer
Before fix:
show bgp ipv6 2052:52:1:167::/64
BGP routing table entry for 2052:52:1:167::/64, version 495
Paths: (246 available, best #127, table default)
  Not advertised to any peer

<snip>
  4200165500 4200165002
    2021:21:51:101::2(spine-5) from spine-5(2021:21:51:101::2) (6.0.0.17)
    (fe80::202:ff:fe00:55) (prefer-global)
      Origin incomplete, valid, external, multipath
      Last update: Fri Apr  4 17:25:05 2025
  4200165500 4200165002
    2021:21:11:116::2(spine-1) from spine-1(2021:21:11:116::2) (0.0.0.0)
    (fe80::202:ff:fe00:3d) (prefer-global)<<<<path not deleted
      Origin incomplete, valid, external
      Last update: Fri Apr  4 17:25:05 2025
  4200165500 4200165002
    2021:21:11:115::2(spine-1) from spine-1(2021:21:11:115::2) (0.0.0.0)
    (fe80::202:ff:fe00:3d) (prefer-global)<<<<path not deleted
      Origin incomplete, valid, external
      Last update: Fri Apr  4 17:25:05 2025
<snip>

 32 paths are supposed to be withdrawn:
root@leaf-1:mgmt:# vtysh -c "show bgp ipv6 2052:52:1:167::/64" | grep "prefer-global" | wc -l
256
root@leaf-1:mgmt# vtysh -c "show bgp ipv6 2052:52:1:167::/64" | grep "prefer-global" | wc -l
246<<should be 224, but showing 246, which is wrong
After fix:
 32 paths are supposed to be withdrawn:
root@leaf-1:mgmt:# vtysh -c "show bgp ipv6 2052:52:1:167::/64" | grep "prefer-global" | wc -l
256
root@leaf-1:mgmt:# vtysh -c "show bgp ipv6 2052:52:1:167::/64" | grep "prefer-global" | wc -l
224<<<shows correctly

Signed-off-by: Soumya Roy <souroy@nvidia.com>
2 weeks agoMerge pull request #18601 from LabNConsulting/chopps/mgmtd-candidate-overwrite
Mark Stapp [Wed, 9 Apr 2025 13:51:47 +0000 (09:51 -0400)]
Merge pull request #18601 from LabNConsulting/chopps/mgmtd-candidate-overwrite

mgmtd: remove bogus "hedge" code which corrupted active candidate DS

2 weeks agobgpd: On shutdown free up table for static routes 18625/head
Donald Sharp [Wed, 9 Apr 2025 13:28:31 +0000 (09:28 -0400)]
bgpd: On shutdown free up table for static routes

Indirect leak of 56 byte(s) in 1 object(s) allocated from:
    0 0x7fdaf6cb83b7 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
    1 0x7fdaf683a480 in qcalloc lib/memory.c:106
    2 0x7fdaf68dd706 in route_table_init_with_delegate lib/table.c:38
    3 0x5649b22c05b0 in bgp_table_init bgpd/bgp_table.c:139
    4 0x5649b2273da0 in bgp_static_set bgpd/bgp_route.c:7779
    5 0x5649b21eba58 in vpnv4_network bgpd/bgp_mplsvpn.c:3244
    6 0x7fdaf67b6d61 in cmd_execute_command_real lib/command.c:1003
    7 0x7fdaf67b7080 in cmd_execute_command lib/command.c:1062
    8 0x7fdaf67b75ac in cmd_execute lib/command.c:1228
    9 0x7fdaf68ffb20 in vty_command lib/vty.c:626
    10 0x7fdaf6900073 in vty_execute lib/vty.c:1389
    11 0x7fdaf6903e24 in vtysh_read lib/vty.c:2408
    12 0x7fdaf68f0222 in event_call lib/event.c:2019
    13 0x7fdaf681b3c6 in frr_run lib/libfrr.c:1247
    14 0x5649b211c903 in main bgpd/bgp_main.c:565
    15 0x7fdaf630c249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Table was being created but never deleted.  Let's delete it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 weeks agobgpd: remove useless calls to afi2family 18624/head
Louis Scalbert [Wed, 9 Apr 2025 11:06:36 +0000 (13:06 +0200)]
bgpd: remove useless calls to afi2family

Remove useless calls to afi2family(). str2prefix() always sets the
prefix family.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 weeks agoMerge pull request #18604 from y-bharath14/srib-yang-v9
Christian Hopps [Wed, 9 Apr 2025 10:24:22 +0000 (06:24 -0400)]
Merge pull request #18604 from y-bharath14/srib-yang-v9

yang: Pyang errors in frr-bfdd.yang

2 weeks agomgmtd: normalize argument order to copy(dst, src) 18601/head
Christian Hopps [Tue, 8 Apr 2025 05:55:03 +0000 (05:55 +0000)]
mgmtd: normalize argument order to copy(dst, src)

Having just completed a code audit during RCA, the fact that we have 2
different argument orders for the related datastore copying functions
was unnecessary and super confusing.

Fix this code-maintenance/comprehension mistake and move the newer mgmtd
copy routines to use the same arg order as the pre-existing underlying
northbound copy functions (i.e., use `copy(dst, src)`)

Signed-off-by: Christian Hopps <chopps@labn.net>
2 weeks agoMerge pull request #17915 from mjstapp/compile_wshadow
David Lamparter [Wed, 9 Apr 2025 07:59:06 +0000 (09:59 +0200)]
Merge pull request #17915 from mjstapp/compile_wshadow

2 weeks agoMerge pull request #18614 from donaldsharp/bgp_memory_fixes_vrf_different_asn
Jafar Al-Gharaibeh [Tue, 8 Apr 2025 19:31:15 +0000 (14:31 -0500)]
Merge pull request #18614 from donaldsharp/bgp_memory_fixes_vrf_different_asn

bgpd: On shutdown free up memory leak found by topotest

2 weeks agolib,ripd: resolve clang SA warnings 17915/head
Mark Stapp [Thu, 27 Mar 2025 19:16:05 +0000 (15:16 -0400)]
lib,ripd: resolve clang SA warnings

Looks like there were a couple of SA warnings lurking; fix
them.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agotests: clean up variable-shadow warnings
Mark Stapp [Thu, 27 Mar 2025 17:29:24 +0000 (13:29 -0400)]
tests: clean up variable-shadow warnings

Clean up -Wshadow warnings in unit-tests

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agotools,pceplib,ospfclient: clean up variable-shadow warnings
Mark Stapp [Thu, 27 Mar 2025 16:56:28 +0000 (12:56 -0400)]
tools,pceplib,ospfclient: clean up variable-shadow warnings

Clean up -Wshadow warnings in these components

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agopbrd,staticd,vrrpd: clean up variable-shadow warnings
Mark Stapp [Thu, 27 Mar 2025 15:18:34 +0000 (11:18 -0400)]
pbrd,staticd,vrrpd: clean up variable-shadow warnings

Clean up -Wshadow warnings in three daemons

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agosharpd: clean up variable-shadowing compiler warnings
Mark Stapp [Thu, 27 Mar 2025 15:08:51 +0000 (11:08 -0400)]
sharpd: clean up variable-shadowing compiler warnings

Clean up -Wshadow in sharpd

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agobgpd: clean up variable-shadowing compiler warnings
Mark Stapp [Thu, 27 Mar 2025 12:56:43 +0000 (08:56 -0400)]
bgpd: clean up variable-shadowing compiler warnings

Clean up -Wshadow warnings in bgp.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agopimd: clean up variable-shadow warnings
Mark Stapp [Wed, 26 Mar 2025 19:27:09 +0000 (15:27 -0400)]
pimd: clean up variable-shadow warnings

Clean up -Wshadow warnings in pimd

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agozebra: clean up -Wshadow compiler warnings
Mark Stapp [Wed, 26 Mar 2025 18:54:30 +0000 (14:54 -0400)]
zebra: clean up -Wshadow compiler warnings

Clean up variable-shadowing compiler warnings.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoripng: clean up -Wshadow compiler warnings
Mark Stapp [Wed, 26 Mar 2025 17:44:55 +0000 (13:44 -0400)]
ripng: clean up -Wshadow compiler warnings

Clean up -Wshadow compiler warnings.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agolib,ripd: clean up -Wshadow compiler warnings
Mark Stapp [Wed, 26 Mar 2025 17:40:59 +0000 (13:40 -0400)]
lib,ripd: clean up -Wshadow compiler warnings

Clean up compiler warnings; convert a linklist macro
to an inline to resolve one; clean up a side-effect in isisd.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agonhrpd: clean up -Wshadow compiler warnings
Mark Stapp [Wed, 26 Mar 2025 16:52:48 +0000 (12:52 -0400)]
nhrpd: clean up -Wshadow compiler warnings

Clean up compiler warnings.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agopathd: clean up variable-shadow warnings
Mark Stapp [Thu, 30 Jan 2025 22:46:15 +0000 (17:46 -0500)]
pathd: clean up variable-shadow warnings

Clean up various variable-shadow warnings from -Wshadow

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agovtysh: clean up variable-shadow warnings
Mark Stapp [Thu, 30 Jan 2025 22:30:42 +0000 (17:30 -0500)]
vtysh: clean up variable-shadow warnings

Clean up various variable-shadowing warnings from -Wshadow

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agomgmtd: clean up -Wshadow warnings
Mark Stapp [Fri, 24 Jan 2025 20:20:48 +0000 (15:20 -0500)]
mgmtd: clean up -Wshadow warnings

Clean up various variable-shadow warnings in mgmtd.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoldpd: clean up warnings from -Wshadow
Mark Stapp [Fri, 24 Jan 2025 20:13:37 +0000 (15:13 -0500)]
ldpd: clean up warnings from -Wshadow

Clean up various variable-shadow warnings in ldpd.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoeigrpd: clean up variable-shadow warnings
Mark Stapp [Fri, 24 Jan 2025 19:59:04 +0000 (14:59 -0500)]
eigrpd: clean up variable-shadow warnings

Clean up various warnings from -Wshadow in eigrp.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agobfdd: clean up -Wshadow warnings
Mark Stapp [Fri, 24 Jan 2025 19:51:39 +0000 (14:51 -0500)]
bfdd: clean up -Wshadow warnings

Clean up various variable-shadow warnings in bfdd.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agobabeld: clean up -Wshadow warnings
Mark Stapp [Fri, 24 Jan 2025 19:44:46 +0000 (14:44 -0500)]
babeld: clean up -Wshadow warnings

Clean up various "shadow" warnings in babeld.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoospf6: clean up -Wshadow warnings
Mark Stapp [Thu, 23 Jan 2025 20:42:52 +0000 (15:42 -0500)]
ospf6: clean up -Wshadow warnings

Clean up various "shadow" warnings.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoospfd: clean up -Wshadow warnings
Mark Stapp [Thu, 23 Jan 2025 20:14:49 +0000 (15:14 -0500)]
ospfd: clean up -Wshadow warnings

Clean up various "shadow" warnings.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agoisisd: clean up -Wshadow warnings
Mark Stapp [Thu, 23 Jan 2025 18:16:11 +0000 (13:16 -0500)]
isisd: clean up -Wshadow warnings

Clean up various "shadow" warnings.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agolib: fix -Wshadow warnings in the lib modules
Mark Stapp [Thu, 30 Jan 2025 16:39:00 +0000 (11:39 -0500)]
lib: fix -Wshadow warnings in the lib modules

Fix various "shadow" warnings in lib.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 weeks agolib: don't shadow `_once` in `frr_with_mutex`
David Lamparter [Tue, 28 Jan 2025 01:58:09 +0000 (02:58 +0100)]
lib: don't shadow `_once` in `frr_with_mutex`

The `_once` loop variable will result in a `-Wshadow` warning when that
is turned on.  Use `__COUNTER__` to give these variables distinct names,
like is already done with `_mtx_`.

(and because I touched it, clang-format wants it reformatted... ohwell.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 weeks agoconfigure: add -Wshadow option
Mark Stapp [Thu, 23 Jan 2025 20:43:55 +0000 (15:43 -0500)]
configure: add -Wshadow option

Start exposing variable-shadowing warnings in all builds.

Signed-off-by: Mark Stapp <mjs@cisco.com>
3 weeks agoMerge pull request #18583 from zmw12306/source_port
Jafar Al-Gharaibeh [Tue, 8 Apr 2025 17:28:58 +0000 (12:28 -0500)]
Merge pull request #18583 from zmw12306/source_port

babeld: check valid babel port

3 weeks agoMerge pull request #18598 from zmw12306/nhrp_nexthop
Jafar Al-Gharaibeh [Tue, 8 Apr 2025 16:28:57 +0000 (11:28 -0500)]
Merge pull request #18598 from zmw12306/nhrp_nexthop

nhrpd: Add Hop Count Validation Before Forwarding in nhrp_peer_recv()

3 weeks agobgpd: On shutdown free up memory leak found by topotest 18614/head
Donald Sharp [Tue, 8 Apr 2025 15:47:50 +0000 (11:47 -0400)]
bgpd: On shutdown free up memory leak found by topotest

This commit fixes two types of problems:

a) Avoidance of cleaning up memory when a instance is
hidden, thus causing it never to be freed on shutdown

b) In some instances bgp_create is called 2 times
for some code.  We are double allocating memory
and dropping it on the second allocation.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 weeks agoMerge pull request #18526 from donaldsharp/pim_leakage
Jafar Al-Gharaibeh [Tue, 8 Apr 2025 15:19:33 +0000 (10:19 -0500)]
Merge pull request #18526 from donaldsharp/pim_leakage

pimd: Fix memory leak on shutdown

3 weeks agoMerge pull request #18602 from LabNConsulting/chopps/doc-diagram
Russ White [Tue, 8 Apr 2025 15:12:05 +0000 (11:12 -0400)]
Merge pull request #18602 from LabNConsulting/chopps/doc-diagram

doc: add a diagram for config datastore cleanup on file reads

3 weeks agoMerge pull request #18585 from zmw12306/babel-knownae
Russ White [Tue, 8 Apr 2025 14:55:24 +0000 (10:55 -0400)]
Merge pull request #18585 from zmw12306/babel-knownae

babel: fix incorrect check in known_ae()

3 weeks agoMerge pull request #18584 from zmw12306/babel_get_myid
Russ White [Tue, 8 Apr 2025 14:54:50 +0000 (10:54 -0400)]
Merge pull request #18584 from zmw12306/babel_get_myid

babeld: Add a check to prevent all-ones case

3 weeks agoMerge pull request #18582 from zmw12306/route_lost
Russ White [Tue, 8 Apr 2025 14:52:39 +0000 (10:52 -0400)]
Merge pull request #18582 from zmw12306/route_lost

babeld: Fix starvation handling on route loss per RFC 8966 §3.8.2.1

3 weeks agoMerge pull request #18581 from zmw12306/request_forward
Russ White [Tue, 8 Apr 2025 14:52:08 +0000 (10:52 -0400)]
Merge pull request #18581 from zmw12306/request_forward

babeld: Request forwarding does not prioritize feasible routes

3 weeks agoMerge pull request #18547 from zmw12306/Hop-Count
Russ White [Tue, 8 Apr 2025 14:31:01 +0000 (10:31 -0400)]
Merge pull request #18547 from zmw12306/Hop-Count

babeld: Hop Count must not be 0.

3 weeks agobgpd: add usid behavior for bgp srv6 instructions 18611/head
Philippe Guibert [Tue, 8 Apr 2025 13:48:13 +0000 (15:48 +0200)]
bgpd: add usid behavior for bgp srv6 instructions

Until now, BGP srv6 usid instructions were not really used. Add the
support for this.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
3 weeks agoMerge pull request #18580 from raja-rajasekar/rajasekarr/check_sid_loc_block_beforehand
Carmine Scarpitta [Tue, 8 Apr 2025 12:53:26 +0000 (14:53 +0200)]
Merge pull request #18580 from raja-rajasekar/rajasekarr/check_sid_loc_block_beforehand

staticd: Avoid requesting SRv6 sid from zebra when loc and sid block dont match

3 weeks agoyang: Pyang errors in frr-bfdd.yang 18604/head
Y Bharath [Tue, 8 Apr 2025 08:57:28 +0000 (14:27 +0530)]
yang: Pyang errors in frr-bfdd.yang

Corrected pyang errors in frr-bfdd.yang

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
3 weeks agodoc: add a diagram for config datastore cleanup on file reads 18602/head
Christian Hopps [Tue, 8 Apr 2025 07:04:19 +0000 (07:04 +0000)]
doc: add a diagram for config datastore cleanup on file reads

Signed-off-by: Christian Hopps <chopps@labn.net>
3 weeks agomgmtd: remove bogus "hedge" code which corrupted active candidate DS
Christian Hopps [Tue, 8 Apr 2025 05:15:53 +0000 (05:15 +0000)]
mgmtd: remove bogus "hedge" code which corrupted active candidate DS

Say you have 2 mgmtd frontend sessions (2 vtysh's) the first one is long
running and is actively changing the global candidate datastore (DS),
the second one starts and exits, this code would then copy running
back over the candidate, blowing away any changes made by the first
session.

(the long running session could technically be any user)

Instead we need to trust the various cleanup code that already exits.
For example in the commit_cfg_reply on success candidate is copied to
running, and on failure *for implicit commit* running is copied back to
candidate clearing the change. This leaves the non-implicit
configuration changes in this case we actually want candidate to keep
it's changes in transactional cases, in the other case of pending commit
during a file read the code restores candidate (if needed) on exit from
"config terminal", with this call stack:

 vty_config_node_exit()
   nb_cli_pending_commit_check()
     nb_cli_classic_commit()
       nb_candidate_commit_prepare() [fail] -> copy running -> candidate
       nb_candidate_commit_apply() -> copy candidate -> running

fixes #18541

Signed-off-by: Christian Hopps <chopps@labn.net>
3 weeks agonhrpd: Add Hop Count Validation Before Forwarding in nhrp_peer_recv() 18598/head
zmw12306 [Mon, 7 Apr 2025 20:13:45 +0000 (16:13 -0400)]
nhrpd: Add Hop Count Validation Before Forwarding in nhrp_peer_recv()

According to [RFC 2332, Section 5.1], if an NHS receives a packet that it would normally forward and the hop count is zero, it must send an error indication back to the source and drop the packet.

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agostaticd: Avoid requesting SRv6 sid from zebra when loc and sid block dont match 18580/head
Rajasekar Raja [Fri, 4 Apr 2025 20:27:03 +0000 (13:27 -0700)]
staticd: Avoid requesting SRv6 sid from zebra when loc and sid block dont match

Currently, when the locator block and sid block differs, staticd would
still go ahead and request zebra to allocate the SID which it does if
there is atleast one match (from any locators).

Only when staticd tries to install the route, it sees that the locator
block and sid block are different and avoids installing the route.

Fix:
Check if the locator block and sid block match before even requesting
Zebra to allocate one.

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
3 weeks agoMerge pull request #18558 from spoignant-proton/master
Donatas Abraitis [Mon, 7 Apr 2025 00:27:02 +0000 (03:27 +0300)]
Merge pull request #18558 from spoignant-proton/master

bgpd: flowspec: remove sizelimit check applied to the wrong length field (issue 18557)

3 weeks agobfdd: Fix demultiplexing to rely solely on Your Discriminator as per RFC 5880. 18586/head
zmw12306 [Sat, 5 Apr 2025 23:02:31 +0000 (19:02 -0400)]
bfdd: Fix demultiplexing to rely solely on Your Discriminator as per RFC 5880.

According to RFC 5880 Section 6.3, once the remote peer reflects back the local discriminator, the receiver MUST demultiplex subsequent BFD packets based solely on the Your Discriminator field. The source IP or interface MUST NOT be used in demultiplexing once the session is established.

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agobabel: fix incorrect check in known_ae() 18585/head
zmw12306 [Sat, 5 Apr 2025 19:24:06 +0000 (15:24 -0400)]
babel: fix incorrect check in known_ae()

The known_ae() function accepts AE values up to 4, but the RFC only defines AE values 0-3.

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agobabeld: Add a check to prevent all-ones case 18584/head
zmw12306 [Sat, 5 Apr 2025 19:21:27 +0000 (15:21 -0400)]
babeld: Add a check to prevent all-ones case

A router-id MUST NOT consist of either all binary zeroes (0000000000000000 hexadecimal) or all binary ones (FFFFFFFFFFFFFFFF hexadecimal).

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agobabeld: check valid babel port 18583/head
zmw12306 [Sat, 5 Apr 2025 19:14:12 +0000 (15:14 -0400)]
babeld: check valid babel port

Add checking for port == 6696.

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agobabeld: Fix starvation handling on route loss per RFC 8966 §3.8.2.1 18582/head
zmw12306 [Sat, 5 Apr 2025 18:26:32 +0000 (14:26 -0400)]
babeld: Fix starvation handling on route loss per RFC 8966 §3.8.2.1

When all feasible routes to a destination are lost, but unexpired unfeasible routes exist, the node MUST send a seqno request to prevent starvation.

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agobabeld: Request forwarding does not prioritize feasible routes 18581/head
zmw12306 [Sat, 5 Apr 2025 18:00:41 +0000 (14:00 -0400)]
babeld: Request forwarding does not prioritize feasible routes

Modify route selection to check feasibility first, then fall back to non-feasible routes as per SHOULD requirement.

Signed-off-by: zmw12306 <zmw12306@gmail.com>
3 weeks agoMerge pull request #18562 from opensourcerouting/fix/bfd_down_if_established
Mark Stapp [Fri, 4 Apr 2025 16:28:18 +0000 (12:28 -0400)]
Merge pull request #18562 from opensourcerouting/fix/bfd_down_if_established

bgpd: Treat the peer as not active due to BFD down only if established