pim6d: fix missing packet with vrf`pim_msg_send()` should use the binded interface as parameter in the case of
vrf. Otherwise, the outgoing packets will be lost.
Signed-off-by: anlan_cs <anlan_cs@126.com>
zebra: fix memory leak dplane providers queued contexvalgrind report snippet:
==214726== 1,520 bytes in 1 blocks are possibly lost in loss record
19,054 of 19,216
==214726== at 0x48465EF: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==214726== by 0x492A42F: qcalloc (in
/usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0)
==214726== by 0x20029D: zebra_dplane_startup_stage (in
/usr/lib/frr/zebra)
==214726== by 0x23883D:...
zebra: fix memory leak in dplane zns info entriesvalgrind report snippet:
==214726== 48 bytes in 1 blocks are possibly lost in loss record 13,919
of 19,216
==214726== at 0x48465EF: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==214726== by 0x492A42F: qcalloc (in
/usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0)
==214726== by 0x1FFA30: zebra_dplane_ns_enable (in
/usr/lib/frr/zebra)
==214726== by 0x238835: zebra_...
zebra: fix memory leak in netlink link chg err casevalgrind report snippet:
==214726== 45,600 bytes in 30 blocks are possibly lost in loss record
19,202 of 19,216
==214726== at 0x48465EF: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==214726== by 0x492A42F: qcalloc (in
/usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0)
==214726== by 0x1C7EEB: netlink_link_change (in /usr/lib/frr/zebra)
==214726== by 0x1D586E: netl...
zebra: fix memory leak dplane pthread mutex destroyvalgrind report snippet:
==214726== 240 bytes in 1 blocks are possibly lost in loss record 18,308 of 19,216
==214726== at 0x48465EF: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==214726== by 0x492A42F: qcalloc (in /usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0)
==214726== by 0x1FED89: dplane_provider_register (in /usr/lib/frr/zebra)
==214726== by 0x2003AA: zeb...
pbrd: fix disorder of ruleWhen `pbr_nht_delete_individual_nexthop()` removes nexthop, the pbr common is
indeed updated when the last one is being updated or deleted as comment said in
this function. But if there are more than one nexthops in one pbr-map instance,
it wrongly doesn't remove the `ip rule` which is previously sent to the kernel.
In this case, it will lead to the disorder of rule in kernel.
Signed-off-by: ...
bgpd: fix DEREF_OF_NULL.EX.COND in community_list_dup_checkFound by the static analyzer Svace (ISP RAS).
After having been assigned to a NULL value at bgp_clist.c:1241, pointer
'entry->config' is passed in call to function 'community_list_dup_check'
at bgp_clist.c:1244, where it is dereferenced at bgp_clist.c:899.
Signed-off-by: Petr Vaganov <petrvaganoff@gmail.com>
tests: Allow gdb decoding to hit all threadsOnly the first thread was dumped. Let's dump all the
threads stack traces. We may find something interesting.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: bgp_evpn_vxlan_svd_topo1 suffers from not waiting long enoughThis is the same problem that happened in the bgp_evpn_vxlan_topo1 test.
Let's do the same thing.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
build: remove C++ version restriction for grpc buildAbseil [0] sets a hard lower-limit on the C++ version [1]. As we also
hard-code the version here, we should relax it and just use the highest
version the installed compiler supports.
The previous code breaks Debian Trixie, where the abseil package needs
C++14 (and g++ supports it), but we set C++11 as the standard.
[0]: https://github.com/abseil/abseil-cpp
[1]: https://github.com/abseil/absei...
yang: add yang type for dummy interface typeAdded yang type to model the dummy interface type. This threw an error
on dummy interfaces when accessing through grpc.
Fixes: 80e96712e47b ("zebra: add ZEBRA_IF_DUMMY flag for dummy interfaces")
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
zebra: Fix buffer overflows found by fuzzing.Fixed a stack buffer overflow in
`zread_srv6_manager_release_locator_chunk` and
`zread_srv6_manager_get_locator_chunk` by adding a check to ensure the
length read from the stream does not exceed the stack buffer size.
https: //oss-fuzz.com/testcase-detail/5455147614994432
https: //issues.oss-fuzz.com/issues/42504504
Change-Id: Ib28a49ca0a034542a45f25a15c5588ad5310f0ac
Signed-off-by: Oliver Cha...
tests: Convert test_bgp_evpn_vxlan.py usage of sleep and while loopLet's use run_and_expect to get what we want, since that is the paradigm
that is appropriate. Additionally remove a silly cat of the zebra.log
file, since we know it is saved when the test fails.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Fix bgp_evpn_vxlan_topo1 in one caseThis test is doing this:
ping XXXX
<ensuring that the local neighbor address has shown up>
Unfortunately it has absolutely no run_and_expect and as
such under heavy load the appropriate processing needed
to handle this in zebra will not always happen before
the test starts checking for it.
Modify the code to check for the mac address for up
to 30 seconds.
Signed-off-by: Donald Sharp <sharpd@...
tests: Remove nonsense test for two_layer_wucmpThe test is issuing a test where success is that you
have any number of nexthop groups in the kernel. This
is a meaningless test, let's remove it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Ensure that nexthop group weight is correctI ran into a situation where the test had partial weights
because another part of the network had not fully converged yet
so when a interface was shutdown we ended up with what it
thought was a problem when in reality the test was wrong.
Modify the initial convergence test to make sure that leaf1
has the expected weight for when initial convergence happens.
Signed-off-by: Donald Sharp <sharpd...
tests: Run black on test_two_layer_wuecmp.pyThis script has a bunch of problems with it's python.
Let's fix it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tools: Add nexthop show for zebra ip commandsIt would be nice to have a dump of the nexthops from a kernel
perspective. Add it in.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
doc: Add some verbiage to dual-as usageThe usage of dual-as will cause the other side to
reject connections because it sees the wrong as configured.
In this case the incoming connection should be preferred
and as such ip addresses should be configured to allow
this to happen.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Fix collision in bgp_dual_asThe bgp_dual_as is setting r1 as a dual_as. The test
also has very tight timing windows for connection opening.
r1 is setup with a lower ip address for the peer than the
r2 connection. If both peers are connecting at the same
time, r1 will decide that the connection from itself should
be used and drop the incoming connection from r2. r2 is
rejecting the connection because the dual_as is caus...
bgpd: Add some additional debugs about why a connection is rejectedThere exists a couple code paths where a connection is rejected
that did not have the reasoning why. Add some debugs to help
this be figured out for our future selves.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Allow detection of core dump to grab backtraceThe detection of a core dump was not gathering backtrace
information. Which makes it hard to figure out what
is going on when running in ci. Let's add a bit of
code to allow this to happen when a core is detected.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Ensure nbr is up before adding lsaCurrently the test is unshutting a interface and then
immediately adding a lsa which is using the ip address
of what the interface has. I am hypothesizing that
this test is failing a bunch here because the time
between the no shut and the immediate install of the
lsa is causing issues due to timing related problems.
Let's modify the test to always ensure that the
nbr is up ( thus we know the i...
tests: Test makes a incorrect assumption in default_originateThe test_bgp_default_originate_2links.py assumes that on r2
the v4 and v6 routes are both using the same interface out.
This assumption is not 100% valid and fails the test case occassionally:
2025-07-28 12:28:19,153 INFO: topo: [DUT [r2]] Best path for the route 0.0.0.0/0 is 192.168.1.1
2025-07-28 12:28:19,153 ERROR: topo: ERROR....! No Best Path Found in BGP RIB.... FAILED
2025-07-28 12:2...
zebra: Clang tells us we need larger than a uint8_tThe fpm_listener is using 8 bytes in an attempt to
store 512 bytes. Let's fix.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bfdd: peer information missing in show static route bfd json output.The peer information was missing in the output of the show bfd static route json command, although it was available in the corresponding non-JSON CLI output.
Since this information is important for users, I have included it as part of this fix.
Issue details:
root@mid0:mgmt:/media/node/sougatab/debs/frr-upgrade# vtysh -c "show bfd static route" Showing BFD monitored static routes:
Next ...