Merge pull request #21445 from opensourcerouting/fix/bgp_nexthop_unchanged_outboundbgpd: Don't mark nexthop as changed if a set next-hop unchanged is applied
zebra: fix wrong hash count function callThe Pull Requests #21263 and #21388 had conflicting changes:
- 21263 uses `hashcount` (lib/hash.h implementation) to count items in a
hash
- 21388 changes the hash type being referenced in the other PR with type
safe hash (lib/typesafe.h)
Since both Pull Requests got merged at nearly the same time the CI
didn't have a chance to build them together.
Signed-off-by: Rafael Zalamena <rzalamen...
test: Topotest to validate PMSI V4 and V6 tunnel IdTest 'test_imet' added for V4 and V4 to validate Tunnel ID PMSI
Signed-off-by: Mrinmoy Ghosh <mrinmoy_g@hotmail.com>
Signed-off-by: Mark Stapp <mjs@cisco.com>
bgpd: EVPN PMSI Tunnel Id, show output with JSONDisplay PMSI tunnel ID for V4 and V6 in vty and JSON
Signed-off-by: Mrinmoy Ghosh <mrinmoy_g@hotmail.com>
Signed-off-by: Mark Stapp <mjs@cisco.com>
bgpd: EVPN PMSI Tunnel Id interop fix with V6 supportPresently EVPN IMET PMSI Tunnel attributes PMSI tunnel ID is not sent or
processed properly.
For sending side we try to send attr->nexthop which is not initialized
for V6 nexthop, while on the receiving side the Tunnel ID is not processed.
Here the fix has 3 functional parts:
1> Accept V6 PMSI tunnel length i.e 21
2> Send side: We encode the Tunnel ID with V4 or V6 Tunnel ID.
this is based o...
lib: mgmt: expose short-circuit bool as `is_mgmtd`Currently the only user of the front-end client library is mgmtd, and
the code was always requesting short-circuit connections. Expose a
`is_mgmtd` parameter so that short-circuit is not selected for non-mgmtd
users.
Signed-off-by: Christian Hopps <chopps@labn.net>
bgpd: add configurable advertisement delay for suppress-fib-pendingWhen bgp suppress-fib-pending is enabled, BGP waits for FIB
confirmation before advertising routes, then applies a batching delay
via BGP_UPDATE_GROUP_TIMER_ON before generating UPDATE messages. The
hardcoded 1-second delay (BGP_DEFAULT_UPDATE_ADVERTISEMENT_TIME)
adds unnecessary latency for deployments that force-enable this
feature (e.g., SONiC via bgpcfgd).
Add an optional delay parameter t...
tests: add topotest for bgp confederation id unchangedVerify that BGP session is not reset when:
- Confederation ID is changed to ASDOT notation (same numeric value)
- Confederation ID is deleted multiple times
Signed-off-by: Wang Dan <413602099@qq.com>
bgpd: Prevent unnecessary peer reset on confederation config changeCurrently, BGP peers are re-established even when the confederation
configuration remains unchanged. This occurs because the configuration
change triggers a full peer reset regardless of whether the actual
confederation value changed.
This patch moves the validation check to bgp_confederation_id_set()
and ensures that no reset occurs when the confederation identifier
is set to the same value a...
tests: Check if IPv6 MTU change is triggering BGP updates correctlyTest that IPv6 BGP routes are reinstalled after interface MTU is restored
above the IPv6 minimum (1280). On Linux, setting MTU < 1280 disables IPv6
on the interface and removes IPv6 kernel routes. When MTU is raised back
above 1280, zebra must trigger a RIB re-evaluation so that the BGP routes
are reinstalled.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: fix last Reset timer losing day part after 24 hoursThe lastResetTimerMsecs JSON field was computed using gmtime_r() and
only accounted for hours, minutes, and seconds (tm_hour, tm_min,
tm_sec), but missed the day field (tm_yday). This caused the value
to wrap around and lose days when elapsed time exceeded 24 hours.
Use direct multiplication (uptime * 1000) instead, matching how
bgpTimerUpMsec is correctly computed.
Signed-off-by: Soumya Roy <...
pimd: fix NOCACHE MFC resync detection log, add vrf name tooOnly treat as kernel/user MFC resync when MFC was already installed
before this NOCACHE upcall (snapshot via pim_upstream_find before
find_or_add). Avoids false positives on first packet when find_or_add
installs in the same call. Log resync at debug with VRF; add VRF to
kernel upcall lines.
Without this fix, pim logs a warning for every new flow:
```
r1-eth0: NOCACHE for (192.168.100.10,238.0...
tests: staticd: test VRF teardown cleanup for ECMP routesAdd test_vrf_teardown_cleanup to the static_cross_vrf_nexthop topotest
suite to cover the bug fixed in static_cleanup_vrf(): when a nexthop
VRF goes down, the stale cross-VRF nexthop must not appear in the route
ADD sent to zebra.
The fix marks affected nexthops VRF_UNKNOWN before calling
static_zebra_route_add(), which skips VRF_UNKNOWN entries. Without
the fix, the ADD is sent with the old ...
staticd: fix static_cleanup_vrf() nexthop-VRF removal orderingWhen a nexthop VRF goes down, static_cleanup_vrf() must mark affected
nexthops as VRF_UNKNOWN *before* reinstalling the path. The previous
code called static_uninstall_nexthop() per nexthop while nh->nh_vrf_id
still held the old valid VRF ID. This caused static_uninstall_path()
to issue a ZAPI ADD that included the departing nexthop — since
static_zebra_route_add() only skips nexthops already...
ospf6d: Remove ospf6 route when connected winsCurrently when ospf6 installs a route that is later
covered by a connected, the ospf6 route is never removed.
Modify the code to detect the case where the new route
that `wins` in ospf6 notices that it is connected and the
old route that was in was a ospf6 route. If so send a
specific route deletion for the ospf6 route.
This failure is happening infrequently in the ospf6_point_to_multipoint
t...
doc: document standalone Sphinx HTML build without configureAdd a section at the end of building-doc.rst describing how to run
sphinx-build from the repository root when the tree has not been
configured.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>