Merge pull request #20917 from nishant111/nishant/bgp_fib_suppress_stale_fixbgpd: Fix routes to be removed from rib when suppress fib pending is configed
tests: Add a topotest that shows that metaQ deduplication works for NHGTest that the MetaQ deduplipication is working as expected.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Add a hidden command `[no] zebra test metaq disable`Add the ability to plug the zebra metaQ to allow for testing
of deduplication.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Limit NHG metaQ to only 1 item per NHG IDCurrently if there is a large number of changes going on
via received NHG's and Zebra is extremely busy doing other
work as well, It is possible that the received NHG list
for processing in the metaQ is quite large. This is especially
problematic at scale. Modify the code such that the MetaQ
looks to see if the NHG being modified is already in the list.
If so just remove the old one and keep ...
zebra: Keep high water mark for some queuesThe dplane provider incoming and outgoing queues back to
zebra were not keeping the high water marks for them. Add them
eva# show zebra dplane providers
dataplane Incoming Queue from Zebra: 0, q_max: 5
Zebra dataplane providers:
Kernel (1): in: 77, q: 0, q_max: 5, out: 77, q: 0, q_max: 5
dataplane Outgoing Queue to Zebra: 0, q_max: 30
eva#
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
pcep: fix heap buffer overflowASAN reported a heap buffer overflow when printing path->name in
path_pcep_config_update_path():
snprintf(segment_list_name_buff, sizeof(segment_list_name_buff),
"%s-%u", path->name, path->plsp_id);
The symbolic name is allocated in pcep_lib_parse_lsp_symbolic_name()
using the following:
path->name = XCALLOC(MTYPE_PCEP, size);
strlcpy((char *)path->name, tlv->symbolic_path_n...
bgpd: make code more robust in bgp_advertise_attr_unintern()As hash_release() uses the attribute data, it would be more robust
to call hash_release() before bgp_attr_unintern().
Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
bgpd: Fix nht to properly notice a changecommit: 8dcd0a6b9cdbfac47eea2cf2100badf7744dbf98 broke
path handling in some rare cases. This can be especially
seen in bgp evpn processing when a path transitions from !valid
to valid. The bgp_evpn_rt5_addpath code is failing occassionally
because of this change. Modify the code to intentionally also
call bgp_process when the old_path_valid is not the same
as the new path being valid.
Sign...
isisd: Fix fortify abort by simplifying lsp_bits2stringThe lsp_bits2string function was incorrectly passing the total buf_size
to subsequent snprintf calls instead of the remaining buffer space.
This caused the compiler's _FORTIFY_SOURCE security checks to trigger a
SIGABRT, as the requested write size exceeded the bounds of the buffer.
This issue was exposed after switching the compiler from GCC to Clang
on Ubuntu 24.04.
Instead of fixing the po...
bgpd: Fix routes to be removed from rib when suppress fib pending is configedIf GR N bit is set and fib suppress pending is configured then routes
will not be advertised to GR peer. This is because the routes are marked
as stale during the peer reset due to GR config. When peers reconnect
bgp does not attempt a route install as the routes were never removed from
rib.
Fix by unsetting the PEER_STATUS_NSF_WAIT flag explicitely in the fib
suppress config path.
Signed-off-...
bgpd: Fix condition when evaluating pathsOriginal commit said:
Let's broaden this scope a tiny bit to allow for matches where the number of
nexthops is 1 and the nexthop->ifindex is the same as the interfaces ifindex
for the up/down event.
But the condition was incorrect according to the definition.
That leads to routes being flushed incorrectly.
When nexthop_num > 1, the first clause is false, so the whole continue is
skipped, an...
isisd: validate minimum frame size before LLC removalMove and consolidate the minimum frame-size validation alongside recvmsg() result handling so short frames are rejected before LLC removal.
Signed-off-by: Ashwini Reddy <ashred@nvidia.com>
Merge pull request #20957 from opensourcerouting/fix/bgp_use_prep_for_rmap_apply_before_route_map_applybgpd: Reuse prep_for_rmap_apply() before route_map_apply()
bgpd: Reuse prep_for_rmap_apply() before doing route_map_apply()Just to make sure we initialize everything correctly.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Fix test for OPEN message with remote-as autoIf we already have a remote-as auto, and it was implicitly set to _external_,
and another side is changing an AS number to be identical to ours (internal),
we should set/unset appropriate flags for as_type.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Add missing PEER_FLAG_SEND_NHC_ATTRIBUTE for update group flagsWithout this flag if we have an established connection and the peer-group is
already created it's going to have a missing flag for comparing when to send
NHC attribute or not.
This fixes random failures for bgp_nhc topotest.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
lib: display End.DX2 route with appropriate oif attributeWithout that change, no extra attribute is associated to that SRv6
instruction.
> ip route add 2001:db1::/48 encap seg6local action End.DX2 oif dum1 dev loop1
>
> PE1# show ipv6 route
> Codes: K - kernel route, C - connected, L - local, S - static,
> R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
> T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
> F - PBR, ...
tests: Add a topotest for MSDP SA forwardingTest case hits SA forwarding between an MSDP mesh-group and two MSDP
peers.
Signed-off-by: Lewis Chambers <lewis.p.chambers@hotmail.com>
doc: add multicast testing guide for topotestsAdd documentation for multicast testing in FRR topotests:
- Three methods for multicast testing:
- direct scripts (mcast-tx.py/mcast-rx.py)
- unified tester (mcast-tester.py)
- helper class (McastTesterHelper)
- When to use each method and their respective features
- Code examples and best practices
- References to existing test files that demonstrate each approach
Signed-off-by: Jafar ...
eigrpd: handle the gr neighbor list safely in update_receiveBe careful handling the gr neighbor list; don't free the
list if it's present in the neighbor struct.
Reported-by: Sin Liang Lee <slee3846@gatech.edu>
Signed-off-by: Mark Stapp <mjs@cisco.com>
nhrpd: fix packet and buffer handling errorsFix some buffer-handling errors in nhrp.
Reported-by: Sin Liang Lee <slee3846@gatech.edu>
Signed-off-by: Mark Stapp <mjs@cisco.com>