zebra: EVPN check l3vni vxlan intf exist in rmac installIn event of Vxlan interface down, there is a possibility,
L3VNI is cleaned up and its associated routes are triggered
for cleanup, at the time of uninstall of RMAC, the L3VNI
associated vxlan_if is likely cleaned up.
Check the VxLAN interface existance before proceeding.
(zl3vni=zl3vni@entry=0x561983436860,
zrmac=zrmac@entry=0x561985002ba0)
at ../zebra/zebra_vxlan.c:1332
(v...
bgpd: Fix multipath decision when multipath is 1The current code when you set `maximum-paths 1` is doing
this when you take away a neighbor:
2026-01-15 16:06:14.194 [NTFY] bgpd: [M7Q4P-46WDR] vty[47]@(config-router)# neighbor 10.0.1.101 shutdown
2026-01-15 16:06:14.206 [DEBG] bgpd: [V64FH-G6883] 10.204.9.0/24 queued into sub-queue Other Route
2026-01-15 16:06:14.256 [DEBG] bgpd: [ZAPXS-9754G] 10.204.9.0/24 dequeued from sub-queue Other Rout...
tests: test PIM interface timers changesAdd topology to test that the correct interface timer was applied.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
tests: comment out debugs in bgp_batch_clearing topotestComment out debugs in the topotest configs, missed these
during review.
Signed-off-by: Mark Stapp <mjs@cisco.com>
zebra: Expand the EVPN help string in `debug zebra evpn..`The help string of `EVPN` was not really that helpful.
Let's make it more helpful.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
pimd: display configured timersDisplay the currently configured timers for join-prune interval, assert
interval and assert override interval.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
tests: Add a test_bgp_batch_clearingThis test creates two routers connected over ebgp.
r1 ---- r2
r2 is generating 100k static routes that overlap in various
ways. After the routes are received on r1, the r1-r2 interface
is shutdown and batch clearing is allowed to process the routes.
This test ensures that the batch clearing leaves no path_info's
in the bgp rib.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: In batch clearing do not skip aroundThe batch clearing code is using a bgp_node_match in clearing_dest_helper
to grab the next node we want to work on. Unfortunately this is not necessarily
the node that was last used and it allows for skipping nodes and leaving
some of the path_info's to stick around. Modify the code to use bgp_node_get
and to not increment to the next one, since walk_batch_table_helper is
walking to the next ...
bgpd: On interface up/down events allow for more interfaces to be affectedCurrent code in BGP only examines the bnc->ifindex_ipv6_ll to decide if
evaluate_paths should be used. 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.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Improve warning message when the neighbor is not active for AFI/SAFIWhen we do something like:
$ show bgp neighbors eth1 received-routes
% No such neighbor or address family
And eth1 is not enabled under ipv6 address family, we have a not so useful
warning message.
Let the operator know which AFI/SAFI is not active for this neighbor.
r1# sh bgp neighbors r1-eth0 advertised-routes
% IPv6 Unicast is not enabled for this neighbor
r1#
Signed-off-by: Donatas Ab...
tests: add a retry timeout to verify_admin_distanceAdd a retry timeout to the verify_admin_distance helper; give
a little time for a config change to make its way through to
zebra.
Signed-off-by: Mark Stapp <mjs@cisco.com>
bgpd: fix compilation with lttng traceFix build with LTTng enabled by passing originator IP by pointer in the
EVPN MH tracepoint.
Fixes: a182fa677a28 ("bgpd: EVPNv6 MH lttng traces IPv6 vtep aware")
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
ci: harden apt-get install for transient failuresThe existing retry logic only covered apt-get update but not the subsequent
install commands. When Ubuntu mirrors update packages, the cached index could
reference versions that no longer exist, so 404 errors during install.
This change wraps the entire apt-get update/upgrade/install sequence in the
retry loop so that a fresh package index is re-fetched on each retry attempt.
Signed-off-by: Vi...
ci: add LTTng tracepoint compilation checkLTTng is a high-performance tracing framework for Linux that FRR
supports via the --enable-lttng configure option. When enabled, FRR
compiles tracepoint definitions from headers like zebra_trace.h,
bgp_trace.h, and others. These tracepoint definitions use LTTng-UST
macros that are validated at compile time.
The current CI does not build with LTTng enabled, which means that
broken or missing tr...
topotests: append 'exit' after interface configLets not rely on the automatic behavior of exiting a node on unknown
command and instead use 'exit' explicitly.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
doc: update PIM JP period docsContrary to what the docs said before, the global JP interval setting is
not actually VRF aware. (cf. pim_join_prune_interval_modify; it
updates `router->` which is global over all VRFs.)
Add per-interface knob to docs.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd: make assert timers configurableThe RFC recommends against this, but it's done regardless.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd: make JP period a per-iface settingOtherwise changing it on a network becomes a "flag day" kind of thing
where you somehow need to change it everywhere at once. Now it can be
changed one segment/subnet at a time.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
bgpd: EVPNv6 MH init using macroBased on review comment
https://github.com/FRRouting/frr/pull/20116#discussion_r2662909105
using macro to initilaize.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
bgpd: EVPNv6 MH utility api to parse pi to vtepcreate a common utility api to extract vtep_ip
from the route's path info.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
bgpd: EVPNv6 MH sync v6 vtep nhgIn case of IPv6 VTEP, use v6 nhg for both
IPv4 and IPv6 EVPN imported routes in tenant VRF.
This allows the IPv4 and IPv6 host routes to pick up
IPv6 NHG.
With this change symmetric routing for IPv4/IPv6
host routes would work once imported into
tenant vrf using the IPv6 nexthop group.
Signed-off-by: Chirag Shah <chirag@nvidia.com>