tests: Fix test_bgp_srv6_sid_unexport expectationsAfter removing sid export on R1, the test checks both 10.0.0.1/32
and 10.0.0.3/32 on R2 with expect_sid="", expecting neither to
carry a SRv6 SID. This is wrong: 10.0.0.3/32 is originated by R3
which still has sid export configured, so it should still be
seen on R2 with r3_unicast_sid.
This wrong expectation was not caught because check_route() did
not verify the absence of a SID when expect_s...
tests: Fix check_route not verifying absence of SIDWhen check_route() is called with expect_sid="" to assert that a
route has no SRv6 SID, it silently succeeds even if a SID is
present.
Add an explicit check: when expect_sid is "", return an error if
a SRv6 SID is found on the route.
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
tests: Add test for sid export route-map update in bgp_srv6_unicastAdd test_bgp_srv6_sid_rmap_update() to verify that replacing an
already-configured sid export route-map with a different one
correctly applies the new policy.
The test reconfigures R1 with a new route-map (filter2) that
excludes 10.0.0.1/32 from SID assignment, confirms the prefix
loses its SRv6 encapsulation on R2 and becomes uninstalled on
R3, then restores the original route-map (filter) an...
bgpd: Fix sid export route-map update not taking effectWhen `sid export ... route-map <name>` is reconfigured with a
different route-map on an already-configured SID export, the new
route-map is silently ignored. The code skips the early-return
(rmap_str != rmap_name), but then calls
bgp_srv6_unicast_announce() without updating rmap_name, so the
old route-map remains in effect.
Fix this by replacing rmap_name before triggering the re-announce:
dec...
zebra: lib: use old compatible value for lyd_new_termFor now use backward compatible `false` value for the penultimate arg to
`lyd_new_term()` to match earlier versions of libyang API. This matches
all the other current uses of `lyd_new_term()` in the code.
Signed-off-by: Christian Hopps <chopps@labn.net>
Merge pull request #21065 from LabNConsulting/chopps/nmda+router-id-op-stateEnable RFC8342 YANG NMDA functionality and add router-id oper-state that uses it.
zebra: Move `allow-external-route-update` to mgmt frontend sideThe `allow-external-route-update` command was being compiled into
the zebra side of the nb code. Thus when configuration was being
applied that uses mgmtd as a frontend and zebra as the frontend
one would get there first and lock the database, preventing
the other side from working. Move this command to the correct
spot.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: add orphan BNC cleanup test for explicit LL peer deletionVerify that deleting an explicit link-local BGP neighbor leaves no
orphan BNC behind. Without the conf_if guard in
bgp_unlink_nexthop_by_peer() and bgp_delete_connected_nexthop(),
the BNC lookup uses scope_id (non-zero after TCP) while the BNC
was created with ifindex 0, causing the cleanup to miss.
Signed-off-by: Soumya Roy <souroy@nvidia.com>
bgpd: fix BNC cleanup for explicit link-local peersbgp_unlink_nexthop_by_peer() and bgp_delete_connected_nexthop()
look up the BNC using scope_id to derive the ifindex. For
explicit LL peers (conf_if NULL) the BNC was created with
ifindex 0, but after the TCP handshake scope_id is non-zero.
The mismatch causes the lookup to miss, leaving an orphan BNC
with a stale nht_info pointer after the peer is deleted.
Add the same conf_if guard that pee...
vrrpd: replace some assertsReplace several asserts with error returns, especially in
packet-processing paths.
Signed-off-by: Mark Stapp <mjs@cisco.com>
vrrpd: only support ethernet in GARP codeDon't mix explicit ethernet and per-interface hw values;
we only support ethernet for g-ARP messages.
Signed-off-by: Mark Stapp <mjs@cisco.com>
Merge pull request #21211 from opensourcerouting/fix/cap_overflow_parsing_unknownbgpd: Check if we are not overusing error_data buffer when unknown cap received
bgpd: Check if we are not overusing error_data buffer when unknown cap receivedThere is no bounds check before the memcpy(). With Extended Message support
enabled, incoming OPEN messages can be up to 65535 bytes, so the total size
of unknown capability TLVs can far exceed 4096 bytes, overflowing the stack
buffer.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: backpressure generic framework dest back ptrFor generic backpressur logic, the dest carrying
the backpressure list node pointer.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: backpressure generic frameworkThis change decouples the backpressure logic
from being tied exclusively to bgp_dest.
It introduces a generic structure that can hold a void
pointer to any BGP-related object that needs to send to zebra
using the the backpressure framework. The associated enum identifies
the object type so the correct ZAPI handler can be invoked.
Signed-off-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Do...
ripngd: fix data handling in several placesDon't accept responses unless interface is configured; be
more careful with route_node before dereferencing the info
pointer; validate min and max packet size before processing.
Signed-off-by: Mark Stapp <mjs@cisco.com>
ripd: ensure simple-auth value is NULL-terminatedEnsure the simple-auth string is in a NULL-terminated
buffer before printing it with '%s'.
Signed-off-by: Mark Stapp <mjs@cisco.com>
ripd: use rn->info properly in process_response()route_node->info is a list, not a single object; use it
correctly, and avoid NULL-deref potential.
Signed-off-by: Mark Stapp <mjs@cisco.com>