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>
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...
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>
tests: EVPNv6 MH v6 vtep aware check ip addr after cfgRouter instance to provide a knob to skip
flushing all interface ips when router instance
is created.
Check bgp peer state and underlay network
right after torm-11 configured using
frr-reload script.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
tests: EVPNv6 MH use linux cmds for intf addrWhen configuring interface ip from frr.conf using
frr-reload there is a timing involved bgp is not
receiving fast enough either ipv4 or ipv6 address,
which leads to an issue where ipv4 route over ipv6
bgp peer, uses the v4 mapped v6 address and route
becomes unreachable at the remote bgp peer end.
To fix the timing configure ip address using
linux iproute2 commands.
Signed-off-by: Chirag Shah...
tests: EVPNv6 MH load torm11 cfg using frr-reloadOn torm-11 load the frr.conf using frr-reload script.
For this pass to topogen a flag to skip loading
vtysh -f frr.conf file for a given DUT based on the flag.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
tests: EVPNv6 MH v6 vtep aware BGP num testThis test is converted to from bgp_evpn_mh
to use `service integrated-vtysh-config` along
with BGP numbered underlay fabric with IPv6 VTEP.
IPv6 VTEP address, BGP GUA address
IPv4: 10.0.0.x/32 and related underlay prefixes are from 10.0.0.0/8,
which is RFC 1918 private space and appropriate for internal tests.
IPv6: all the 2001:db8:... prefixes are from 2001:db8::/32, the RFC 3849
documentati...
lib: EVPNv6 MH increase pfx string len for v6 addressThe prefixlen is used for debug and cli purpose,
EVPNv6 add ipv6 address in EVPN prefix which spill over
current prefixlen limit.
Before:
2025/09/29 19:02:12.474562 BGP: [WTJQB-H1EZQ] default (0): Installing EVPN
[1]:[4294967295]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[2001:c001:ff:f00d::4]:[ <<<<
route in VNI 1000 IP/MAC table
After:
2025/09/29 19:26:13.025185 BGP: [WTJQB-H1EZQ] default (0)...
bgpd: EVPNv6 MH es vtep add del v6 awarebgp_evpn_remote_es_evi_add/ bgp_evpn_remote_es_evi_del
were incorrectly using p->prefix.ead_addr.ip directly,
prefix (prefix in global table has IP zeroed out),
extracts the vtep_ip from the BGP path attributes
Signed-off-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Jared Mauch <jared@puck.nether.net>