eigrpd: enforce minimum TLV length in Hello handlerThe Hello TLV parser accepts TLVs with length 1, 2, or 3 because
the condition only checks length > 0. Since the TLV header itself
is 4 bytes (type + length), a declared length smaller than
EIGRP_TLV_HDR_LENGTH causes the pointer to advance by less than
one header width, misaligning all subsequent TLV reads.
Tighten the check to require length >= EIGRP_TLV_HDR_LENGTH.
Signed-off-by: Tristan M...
ospfd: add LSA validation in the apiserver pathAdd some length validation for LSAs offered through the
apiserver code path.
Signed-off-by: Mark Stapp <mjs@cisco.com>
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...