bgpd: Convert connection->last_sendq_ok to atomicThis value was/is being set in two different pthreads. Let's
consolidate examinination of this value to properly use
the right methodology for this.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
lib: Add time_t as an atomic type for FRRWe should add time_t as a atomic type for FRR, so
it can be handled correctly.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: last_sendq_time and last_sendq_warn are connection orientedThese two values attached to the peer are really values that should
be part of the connection. Move them over.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Do not fail zebra_nhg_check if skipped is not 0 on initialThe test is looking for the number of routes skipped before it does
a test that should cause routes to be skipped for installation.
Unfortunately it is treating anything non-zero as a failure.
Allow for non-zero values to be used as long as it is not -1
which indicates a failure.
Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
tests: Don't try to use identical rmacs in rare situationWe have this:
2026-02-13 22:24:54,781 INFO: topo: Step 2: Changing router MAC on tor-21
2026-02-13 22:24:54,781 INFO: topo: Changing vlan4001 MAC from 2e:d8:4f:14:f7:99 to 2e:d8:4f:14:f7:99
Notice how the rmac is changed from itself to itself. This is because the
code just blindly changes the last byte to a 99. If the last byte is already
99 then the test will just fail. Modify the code ...
Merge pull request #20668 from opensourcerouting/fix/trigger_conditional_adv_timer_for_static_redistributed_routesbgpd: Force sending conditional updates by ignoring MRAI timer
tests: Remove SRv6 SID check duplicationEach test is redefining the same `check_srv6_static_sids` helper
to verify expected SIDs in the RIB, which duplicates logic across
the file.
Move the helper to module scope and update all tests to call the
shared function so the check is defined once and reused
everywhere.
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
tests: Fix rip_default_route_handling to be more consistentThe test was ensuring that the kernel route was properly installed
in the kernel, but it was not doing a run_and_expect block to look
that the change had made it into rip itself. Give it some time to
happen. Failed tests support_bundle shows that the slight bit of
extra time before the support_bundle was created allowed rip to
convert over to the kernel default route. Modify the code to
use ...
ospfd: reject LSAs with zero checksumDiscard LSAs with a zero checksum value to prevent invalid LSAs from being accepted into the LSDB.
Signed-off-by: kartikohlan <kartik7ohlan@gmail.com>
Merge pull request #20552 from donaldsharp/separate_sg_rpt_sg_ifchannelsSeparate sg rpt sg ifchannels and add ability to set a override-interval and a test.
Merge pull request #20788 from donaldsharp/longer_hold_timer_bgp_gr_functionalitytests: Add additional wait tim to test_bgp_gr_functionality_topo2-3.py
bgpd: fix premature deletion of already-stale routes during GR clearingWhen a peer goes down with GR enabled, routes already marked
BGP_PATH_STALE were incorrectly deleted instead of being preserved
for the current GR cycle. Remove the BGP_PATH_STALE check from both
bgp_clear_route_node() and clearing_clear_one_pi() so that stale
routes are re-marked rather than removed. Stale route cleanup remains
handled by bgp_clear_stale_route() on timer expiry.
Ticket: RM#48...
topotest: Add topo test to test GR with clearing batch logicAdd a topotest which test that already stale paths are preserved during
bgp gr.
Ticket: RM#4856402
Signed-off-by: Mitesh Kanjariya <mkanjariya@nvidia.com>
tests: Show that multiple interface up events do not create multiple local routesShow that the previous commit works properly and that when FRR receives
a change for a interface that causes multiple event up scenarios, to
treat the local routes as duplicate.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: EVPN fix access BD deref of mbr intfa bond interface part of bridge is ESI bond,
when a bond interface is unlinked from bridge,
then frr access-bd needs to deference from bridge
access BD for each VLAN so it does not show up as
stale member interface.
torm-11# show evpn access-vlan detail
VLAN: br_default.1001
VxLAN Interface: vxlan48
SVI: vlan1001
L2-VNI: 1001
Member Count: 4
VNI-count: 1
Members:
hostbond_5
hostb...
tests: Add a default route test to ripWe have no tests that show that default route handling by
rip is working. This is both for `default-information originate`
as well as a redistributed default route.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Ensure FRR does not see duplicate local routes on interface changesCurrently when a interface is seeing multiple link up events in a row,
we are seeing multiple local routes in the rib:
r9# show ip route vrf all nexthop-group
% 2026/02/08 23:18:00.371
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,...
bgpd: validate incoming NOTIFICATION messagesImprove validation of NOTIFICATION messages. React to Hard Reset
even if there is no inner/encapsulated error info in the message.
Signed-off-by: Mark Stapp <mjs@cisco.com>