]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
2 days agotests: Add topotest to verify SRv6 routes with different encap behaviors
Carmine Scarpitta [Thu, 20 Feb 2025 10:50:16 +0000 (11:50 +0100)]
tests: Add topotest to verify SRv6 routes with different encap behaviors

This commit introduces a topotest to verify that staticd correctly
programs SRv6 routes in the RIB for all supported encapsulation
behaviors.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agobgpd: Use H.Encaps behvavior for SRv6 encap route
Carmine Scarpitta [Sat, 12 Apr 2025 12:07:17 +0000 (12:07 +0000)]
bgpd: Use H.Encaps behvavior for SRv6 encap route

Currently BGP uses H.Encaps behavior for the SRv6 routes.
In order to keep backward compatibility, we keep using
H.Encaps.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agozebra: Add nb callbacks to handle SRv6 encap behavior
Carmine Scarpitta [Thu, 20 Feb 2025 10:46:09 +0000 (11:46 +0100)]
zebra: Add nb callbacks to handle SRv6 encap behavior

This commit adds northbound callback placeholders to handle SRv6 encap
behavior in zebra.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agostaticd: Add SRv6 encap behavior in show running-config
Carmine Scarpitta [Thu, 20 Feb 2025 10:44:41 +0000 (11:44 +0100)]
staticd: Add SRv6 encap behavior in show running-config

This commit extends the output of `show running-config` to display the
configured SRv6 encapsulation behavior.

```
router# show running-config
[...]
ip route 192.0.2.2/32 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps
ip route 192.0.2.3/32 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps_Red
ipv6 route 2001:db8:1:1::2/128 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps
ipv6 route 2001:db8:1:1::3/128 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps_Red
[...]
```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agostaticd: Send SRv6 encapsulation to zebra
Carmine Scarpitta [Thu, 20 Feb 2025 10:42:21 +0000 (11:42 +0100)]
staticd: Send SRv6 encapsulation to zebra

This commit updates staticd to include the encapsulation behavior in
the ZAPI message sent to Zebra for installing the SRv6 route.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agostaticd: Extend CLI to support encap behavior
Carmine Scarpitta [Thu, 20 Feb 2025 10:40:01 +0000 (11:40 +0100)]
staticd: Extend CLI to support encap behavior

This commit extends the staticd CLI to allow users to specify the SRv6
encapsulation behavior when creating an ip/ipv6 route.

```
router(config)# ip route 192.0.2.2/32 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps
router(config)# ip route 192.0.2.3/32 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps_Red
router(config)# ipv6 route 2001:db8:1:1::2/128 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps
router(config)# ipv6 route 2001:db8:1:1::3/128 sr0 segments fcbb:bbbb:1:2:3:4:5:6/fcbb:bbbb:7:8:fe00:: encap-behavior H_Encaps_Red
```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Extend nexthop json helper to display SRv6 encap behavior
Carmine Scarpitta [Thu, 20 Feb 2025 10:33:56 +0000 (11:33 +0100)]
lib: Extend nexthop json helper to display SRv6 encap behavior

This commit extends the `show ip route json` and `show ipv6 route json`
output to display the SRv6 encapsulation behavior associated with the
SRv6 nexthop.

```
router# show ipv6 route json
[...]
"2001:db8:1:1::1/128": [
{
"prefix": "2001:db8:1:1::1/128",
"prefixLen": 128,
"protocol": "static",
"selected": true,
"destSelected": true,
"distance": 1,
"metric": 0,
"installed": true,
"nexthops": [
{
"directlyConnected": true,
"active": true,
"weight": 1,
"seg6local": {
"action": "unspec"
},
"seg6": [
"fcbb:bbbb:1:2:3:4:5:6",
"fcbb:bbbb:7:8:fe00::"
],
"srv6EncapBehavior": "H.Encaps"
}
]
}
],
[...]
```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Extend nexthop vty helper to display SRv6 encap behavior
Carmine Scarpitta [Fri, 18 Apr 2025 17:11:19 +0000 (17:11 +0000)]
lib: Extend nexthop vty helper to display SRv6 encap behavior

This commit extends the `show ip route` and `show ipv6 route`
output to display the SRv6 encapsulation behavior associated with the
SRv6 nexthop.

```
router# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

IPv6 unicast VRF default:
S>* 2001:db8:1:1::2/128 [1/0] is directly connected, sr0, seg6 fcbb:bbbb:7:8:fe00::, weight 1, 00:05:49
S>* 2001:db8:1:1::3/128 [1/0] is directly connected, sr0, seg6 fcbb:bbbb:7:8:fe00::, encap behavior H.Encaps.Red, weight 1, 00:05:49
...

```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agostaticd: Add nb callbacks for SRv6 encap behavior
Carmine Scarpitta [Thu, 20 Feb 2025 10:25:54 +0000 (11:25 +0100)]
staticd: Add nb callbacks for SRv6 encap behavior

This commit adds the northbound callbacks to handle the SRv6
encapsulation behavior associated with an SRv6 route.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agostaticd: Load ietf-srv6-types YANG model
Carmine Scarpitta [Thu, 20 Feb 2025 10:22:46 +0000 (11:22 +0100)]
staticd: Load ietf-srv6-types YANG model

Staticd requires the SRv6 encapsulation behaviors defined in the
ietf-srv6-types YANG model.

This commit updates staticd to load the ietf-srv6-types YANG model.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agostaticd: Correct the incorrect style formatting applied by clang
Carmine Scarpitta [Thu, 20 Feb 2025 10:20:52 +0000 (11:20 +0100)]
staticd: Correct the incorrect style formatting applied by clang

clang-format tends to alter the formatting of the struct frr_yang_module_info,
reducing its readability. This commit resolves the issue by disabling
clang-format for this specific struct.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agomgmtd: Load ietf-srv6-types YANG model
Carmine Scarpitta [Thu, 20 Feb 2025 10:17:11 +0000 (11:17 +0100)]
mgmtd: Load ietf-srv6-types YANG model

Some daemons, such as staticd, which have been converted to mgmtd,
require the SRv6 types defined in the ietf-srv6-types YANG model.

This commit updates mgmtd to load the ietf-srv6-types YANG model.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agoyang: Add encap behavior to SRv6 nexthop
Carmine Scarpitta [Thu, 20 Feb 2025 10:12:50 +0000 (11:12 +0100)]
yang: Add encap behavior to SRv6 nexthop

This commit extends the frr-nexthop YANG model by adding the
encapsulation behavior to the SRv6 nexthop.

This change enables daemons to specify one of the encapsulation
behaviors defined in RFC 8986 when configuring a nexthop.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib,sharpd,zebra: Extend nexthop_add_srv6_seg6 to encode encap behavior
Carmine Scarpitta [Fri, 21 Feb 2025 12:21:36 +0000 (13:21 +0100)]
lib,sharpd,zebra: Extend nexthop_add_srv6_seg6 to encode encap behavior

Previous commits introduced the `encap_behavior` field in the SRv6
nexthop data structure and updated the compare, hash, and copy
functions to handle this new field.

This commit extends the `nexthop_add_srv6_seg6` function by adding a
new parameter `encap_behavior` and modify the code in various places
to pass the encap behavior when calling this function.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Add nb handlers for ietf-srv6-types YANG model
Carmine Scarpitta [Thu, 20 Feb 2025 10:06:08 +0000 (11:06 +0100)]
lib: Add nb handlers for ietf-srv6-types YANG model

This commit adds nb handlers necessary for using SRv6 types defined in
the ietf-srv6-types YANG model.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agozebra: Extend rt netlink parse functions to support encap behavior
Carmine Scarpitta [Fri, 21 Feb 2025 15:05:17 +0000 (16:05 +0100)]
zebra: Extend rt netlink parse functions to support encap behavior

Previous commits introduced the encap_behavior field to the SRv6
nexthop, enabling the association of one of the encapsulation behaviors
defined in RFC 8986 with an SRv6 nexthop.

This commit extends Zebra rt netlink parse functions by extracting
the encapsulation behavior from the Netlink message received from the
kernel.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agozebra: Extend rt netlink encode functions to support encap behavior
Carmine Scarpitta [Thu, 20 Feb 2025 10:02:19 +0000 (11:02 +0100)]
zebra: Extend rt netlink encode functions to support encap behavior

Previous commits introduced the encap_behavior field to the SRv6
nexthop, enabling the association of one of the encapsulation behaviors
defined in RFC 8986 with an SRv6 nexthop.

This commit extends Zebra rt netlink encoding functions by including
the encapsulation behavior in the Netlink message sent to the kernel
for nexthop installation.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Extend ZAPI to handle SRv6 encap behavior
Carmine Scarpitta [Fri, 21 Feb 2025 12:26:26 +0000 (13:26 +0100)]
lib: Extend ZAPI to handle SRv6 encap behavior

Previous commits introduced the encap_behavior field to the SRv6
nexthop, enabling the association of one of the encapsulation behaviors
defined in RFC 8986 with an SRv6 nexthop.

This commit updates the ZAPI encode/decode functions to support the new
field, allowing zclients to include the encapsulation behavior in the
ZAPI message sent to Zebra for nexthop installation.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Add encap behavior to SRv6 nexthop
Carmine Scarpitta [Fri, 21 Feb 2025 12:38:15 +0000 (13:38 +0100)]
lib: Add encap behavior to SRv6 nexthop

This commit introduces the `encap_behavior` field to the SRv6 nexthop
data structure and update the compare, hash, and copy functions to
handle this new field. The `encap_behavior` field allows daemons to
specify one of the encapsulation behaviors defined in RFC 8986 when
installing an SRv6 nexthop in the RIB.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Add a function to convert SR Policy Headend Behaviors into string
Carmine Scarpitta [Thu, 20 Feb 2025 09:08:03 +0000 (10:08 +0100)]
lib: Add a function to convert SR Policy Headend Behaviors into string

This commit adds a function to convert SR Policy Headend Behaviors into
string format for printing.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agolib: Add enum for SR Policy Headend Behaviors
Carmine Scarpitta [Thu, 20 Feb 2025 09:07:08 +0000 (10:07 +0100)]
lib: Add enum for SR Policy Headend Behaviors

This commit introduces an enumeration to represent SR Policy Headend
Behaviors as specified in RFC 8986.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agoyang: Add ietf-srv6-types YANG model
Carmine Scarpitta [Thu, 20 Feb 2025 08:44:16 +0000 (09:44 +0100)]
yang: Add ietf-srv6-types YANG model

This commit brings the ietf-srv6-types YANG model in FRR.

This is needed to support the SRv6 data types standardized by IETF,
including the H.Encaps.Red identity required to implement
the H.Encaps.Red headend behavior.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 days agoinclude: Update `include/seg6_iptunnel.h`
Carmine Scarpitta [Thu, 20 Feb 2025 08:35:18 +0000 (09:35 +0100)]
include: Update `include/seg6_iptunnel.h`

This commit brings the include/seg6_iptunnel.h header fil from the
latest kernel version.

This update is needed to have the SEG6_IPTUN_MODE_ENCAP_RED enumeration
value in FRR, which is required to support SRv6 H.Encaps.Red headend
behavior.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
3 days agoMerge pull request #18657 from Jafaral/commit-msg-format
Mark Stapp [Tue, 29 Apr 2025 15:37:41 +0000 (11:37 -0400)]
Merge pull request #18657 from Jafaral/commit-msg-format

doc: add commit message guidelines to the dev guide

3 days agoMerge pull request #18605 from pguibert6WIND/sharp_usid
Russ White [Tue, 29 Apr 2025 15:16:21 +0000 (11:16 -0400)]
Merge pull request #18605 from pguibert6WIND/sharp_usid

Add sharp support for seg6local routes with uSID flavor

3 days agoMerge pull request #18417 from AndriiFullroot/VyOS_T7226
Russ White [Tue, 29 Apr 2025 15:11:35 +0000 (11:11 -0400)]
Merge pull request #18417 from AndriiFullroot/VyOS_T7226

ldpd: Option for disabled LDP hello message during TCP

3 days agoMerge pull request #18700 from pguibert6WIND/bmp_mirror_heap_use_after_free
Donatas Abraitis [Tue, 29 Apr 2025 13:55:32 +0000 (06:55 -0700)]
Merge pull request #18700 from pguibert6WIND/bmp_mirror_heap_use_after_free

bgpd: fix bmp heap use after free on non connected session

3 days agoMerge pull request #18309 from chdxD1/fix/zebra-evpn-vrf
Philippe Guibert [Tue, 29 Apr 2025 07:42:02 +0000 (09:42 +0200)]
Merge pull request #18309 from chdxD1/fix/zebra-evpn-vrf

zebra: use nexthop instead of route vrf_id for EVPN

3 days agobgpd: fix bmp heap use after free on non connected session 18700/head
Philippe Guibert [Tue, 22 Apr 2025 12:24:54 +0000 (14:24 +0200)]
bgpd: fix bmp heap use after free on non connected session

A heap use after free when enabling bmp mirror on a non connected BMP
target.

> Apr 22 14:06:49 vRR-DUT systemd[1]: Started bfdd.
> Apr 22 14:06:51 vRR-DUT bgpd[1522]: [VTCF0-ZHP6C] bmp: missing TX OPEN message for peer Static announcement
> Apr 22 14:06:51 vRR-DUT bgpd[1522]: [K3RM9-4A4HY] bmp: missing RX OPEN message for peer Static announcement
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: =================================================================
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: ==1522==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f0000321d0 at pc 0x7fe7f11c548e bp 0x7fff49f80d40 sp 0x7fff49f80d30
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: READ of size 8 at 0x60f0000321d0 thread T0
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #0 0x7fe7f11c548d in typesafe_list_add /build/make-pkg/output/_packages/cp-routing/src/lib/typesafe.h:161
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #1 0x7fe7f11c9347 in bmp_mirrorq_add_tail /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_bmp.c:116
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #2 0x7fe7f11d030f in bmp_mirror_packet /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_bmp.c:867
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #3 0x55c756de3e20 in hook_call_bgp_packet_dump /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:55
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #4 0x55c756dfd5ea in bgp_process_packet /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:3699
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #5 0x7fe7f5375237 in event_call (/lib/x86_64-linux-gnu/libfrr.so.0+0x375237)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #6 0x7fe7f5242ecf in frr_run (/lib/x86_64-linux-gnu/libfrr.so.0+0x242ecf)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #7 0x55c756c71804 in main /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_main.c:545
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #8 0x7fe7f4c29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #9 0x7fe7f4c29e3f in __libc_start_main_impl ../csu/libc-start.c:392
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #10 0x55c756c6e384 in _start (/usr/bin/bgpd+0x272384)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: 0x60f0000321d0 is located 0 bytes inside of 162-byte region [0x60f0000321d0,0x60f000032272)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: freed by thread T0 here:
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #0 0x7fe7f58b4537 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:127
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #1 0x7fe7f526f918 in qfree (/lib/x86_64-linux-gnu/libfrr.so.0+0x26f918)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #2 0x7fe7f11d057b in bmp_mirror_packet /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_bmp.c:875
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #3 0x55c756de3e20 in hook_call_bgp_packet_dump /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:55
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #4 0x55c756dfd5ea in bgp_process_packet /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:3699
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #5 0x7fe7f5375237 in event_call (/lib/x86_64-linux-gnu/libfrr.so.0+0x375237)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #6 0x7fe7f5242ecf in frr_run (/lib/x86_64-linux-gnu/libfrr.so.0+0x242ecf)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #7 0x55c756c71804 in main /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_main.c:545
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #8 0x7fe7f4c29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: previously allocated by thread T0 here:
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #0 0x7fe7f58b4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #1 0x7fe7f526f7c6 in qcalloc (/lib/x86_64-linux-gnu/libfrr.so.0+0x26f7c6)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #2 0x7fe7f11cfd38 in bmp_mirror_packet /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_bmp.c:835
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #3 0x55c756de3e20 in hook_call_bgp_packet_dump /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:55
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #4 0x55c756dfd5ea in bgp_process_packet /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:3699
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #5 0x7fe7f5375237 in event_call (/lib/x86_64-linux-gnu/libfrr.so.0+0x375237)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #6 0x7fe7f5242ecf in frr_run (/lib/x86_64-linux-gnu/libfrr.so.0+0x242ecf)
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #7 0x55c756c71804 in main /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_main.c:545
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:     #8 0x7fe7f4c29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: SUMMARY: AddressSanitizer: heap-use-after-free /build/make-pkg/output/_packages/cp-routing/src/lib/typesafe.h:161 in typesafe_list_add
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: Shadow bytes around the buggy address:
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe3f0: 00 00 00 00 00 00 fa fa fa fa fa fa fa fa 00 00
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe410: 00 00 00 00 fa fa fa fa fa fa fa fa 00 00 00 00
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: =>0x0c1e7fffe430: 00 fa fa fa fa fa fa fa fa fa[fd]fd fd fd fd fd
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe440: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe450: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe460: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe470: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   0x0c1e7fffe480: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: Shadow byte legend (one shadow byte represents 8 application bytes):
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Addressable:           00
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Partially addressable: 01 02 03 04 05 06 07
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Heap left redzone:       fa
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Freed heap region:       fd
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Stack left redzone:      f1
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Stack mid redzone:       f2
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Stack right redzone:     f3
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Stack after return:      f5
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Stack use after scope:   f8
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Global redzone:          f9
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Global init order:       f6
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Poisoned by user:        f7
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Container overflow:      fc
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Array cookie:            ac
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Intra object redzone:    bb
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   ASan internal:           fe
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Left alloca redzone:     ca
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Right alloca redzone:    cb
> Apr 22 14:06:52 vRR-DUT bgpd[1522]:   Shadow gap:              cc
> Apr 22 14:06:52 vRR-DUT bgpd[1522]: ==1522==ABORTING
> Apr 22 14:06:52 vRR-DUT yams[449]: CONFIG: [{'name': 'ttyS0'}]
> Apr 22 14:06:52 vRR-DUT zebra[652]: [GE156-FS0MJ][EC 100663299] stream_read_try: read failed on fd 50: Connection reset by peer
> Apr 22 14:06:52 vRR-DUT systemd[1]: bgpd.service: Main process exited, code=exited, status=1/FAILURE
> Apr 22 14:06:52 vRR-DUT zebra[652]: [GE156-FS0MJ][EC 100663299] stream_read_try: read failed on fd 39: Connection reset by peer
> Apr 22 14:06:52 vRR-DUT systemd[1]: bgpd.service: Failed with result 'exit-code'.
> Apr 22 14:06:52 vRR-DUT zebra[652]: [N5M5Y-J5BPG][EC 4043309121] Client 'bgp' (session id 0) encountered an error and is shutting down.
> Apr 22 14:06:52 vRR-DUT systemd[1]: bgpd.service: Consumed 2.361s CPU time.
> Apr 22 14:06:52 vRR-DUT zebra[652]: [N5M5Y-J5BPG][EC 4043309121] Client 'bgp' (session id 1) encountered an error and is shutting down.
> Apr 22 14:06:52 vRR-DUT zebra[652]: [JPSA8-5KYEA] client 39 disconnected 0 bgp routes removed from the rib
> Apr 22 14:06:52 vRR-DUT zebra[652]: [S929C-NZR3N] client 39 disconnected 0 bgp nhgs removed from the rib
> Apr 22 14:06:52 vRR-DUT zebra[652]: [KQB7H-NPVW9] /build/make-pkg/output/_packages/cp-routing/src/zebra/zebra_ptm.c:1285 failed to find process pid registration
> Apr 22 14:06:52 vRR-DUT zebra[652]: [JPSA8-5KYEA] client 50 disconnected 0 bgp routes removed from the rib
> Apr 22 14:06:52 vRR-DUT zebra[652]: [S929C-NZR3N] client 50 disconnected 0 bgp nhgs removed from the rib
>

Do not enqueue item in the mirror queue if no reference count has been
found in the connection list.

Fixes: b1ebe54b2952 ("bgpd: bmp, handle imported bgp instances in bmp_mirror")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 days agoMerge pull request #18731 from donaldsharp/no_returns_some_more
Mark Stapp [Mon, 28 Apr 2025 20:53:26 +0000 (16:53 -0400)]
Merge pull request #18731 from donaldsharp/no_returns_some_more

*: Allow returns to work with --enable-undefined-behavior

4 days agoMerge pull request #18730 from y-bharath14/srib-tests-v14
Donald Sharp [Mon, 28 Apr 2025 19:24:42 +0000 (15:24 -0400)]
Merge pull request #18730 from y-bharath14/srib-tests-v14

tests: Proper handling of resource allocation

4 days agozebra: free nl batch buffer on termination 18309/head
Christopher Dziomba [Mon, 28 Apr 2025 18:29:11 +0000 (20:29 +0200)]
zebra: free nl batch buffer on termination

The nl batch buffer was destroyed too early when a netns was
terminated. Now freeing the buffer later in router_terminate allows
netlink messages to be still processed.

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
4 days ago*: Allow returns to work with --enable-undefined-behavior 18731/head
Donald Sharp [Mon, 28 Apr 2025 18:05:28 +0000 (14:05 -0400)]
*: Allow returns to work with --enable-undefined-behavior

If you have undefined behavior compilation checking gcc
starts to complain about a bunch of places that do not
have return's.  When most of them actually do and we
have the assert's to prove it.  I'm just doing this
to make the compiler happy for me, so I can continue
to do work.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 days agoMerge pull request #18704 from Pdoijode/pdoijode/zapi-cancel-new-accept
Russ White [Mon, 28 Apr 2025 11:43:33 +0000 (07:43 -0400)]
Merge pull request #18704 from Pdoijode/pdoijode/zapi-cancel-new-accept

zebra: Cancel new client accept events after zsock is closed

5 days agotests: Proper handling of resource allocation 18730/head
Y Bharath [Mon, 28 Apr 2025 04:47:31 +0000 (10:17 +0530)]
tests: Proper handling of resource allocation

Ensure proper handling of resource allocation

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
5 days agotopotests: add evpn vrf route leaking test
Christopher Dziomba [Sat, 26 Apr 2025 18:11:07 +0000 (20:11 +0200)]
topotests: add evpn vrf route leaking test

An additional VRF, 102, is introduced on both routers, importing
r1 routes from VRF 101 into VRF 102 on r2 and vice versa (both
on r2, because r1 is in netns mode and can not use route import).

RMACs and ping (from VRF 101 to VRF 102 on r1, going through r2) is
then checked.

All RMACs are created deterministically, using
52:54:00:00:<router>:<vrf> to ease debugging and checks.

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
6 days agozebra: use nexthop instead of route vrf_id for EVPN
Christopher Dziomba [Sat, 26 Apr 2025 18:10:37 +0000 (20:10 +0200)]
zebra: use nexthop instead of route vrf_id for EVPN

Today zebra tracks EVPN vtep_ips in the L3-VNI of the route_entry.
Leaking routes in bgpd and using different RMACs on the remote side
for different L3-VNIs for a single VTEP leads to updates in the leak
destination VRF which is not desired. Zebra gets the source VRF in
vrf_id of the nexthops. This nexthop vrf_id is now used for adding/
updating/deleting the l3vni nexthop.

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
7 days agozebra: Change zserv_accept to use global zsock FD 18704/head
Pooja Jagadeesh Doijode [Thu, 24 Apr 2025 18:27:53 +0000 (11:27 -0700)]
zebra: Change zserv_accept to use global zsock FD

Problem:
Zebra crashed while going down. This happened because zebra was
trying to process a new client accept request after closing ZAPI's
listener socket zsock and setting it to -1.

Fix:
Skip rescheduling zserv_accept() and accepting a new client if global
ZAPI listener socket FD, zsock is already closed and set to -1.
Also use global ZAPI listener socket FD zsock in zserv_accept() instead
of using a copy of zsock.

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
7 days agoMerge pull request #18690 from karthikeyav/multipath_num_check_nhg
Mark Stapp [Fri, 25 Apr 2025 15:31:48 +0000 (11:31 -0400)]
Merge pull request #18690 from karthikeyav/multipath_num_check_nhg

*: Fix MULTIPATH_NUM check in nhg encode

7 days agoMerge pull request #18720 from mjstapp/compile_wnoreturn
Donald Sharp [Fri, 25 Apr 2025 13:35:27 +0000 (09:35 -0400)]
Merge pull request #18720 from mjstapp/compile_wnoreturn

*: enable the missing-noreturn compiler warning

7 days agosharpd: add End.B6.Encap behaviour to seg6local routes 18605/head
Philippe Guibert [Wed, 9 Apr 2025 09:42:47 +0000 (11:42 +0200)]
sharpd: add End.B6.Encap behaviour to seg6local routes

Add End.B6.Encap support to install seg6local routes.

> ubuntu2204hwe# sharp install seg6local-routes 4004::4 nexthop-seg6local loop1 End_B6_Encap nexthop-seg6 2001::5 encap 2001:a::b:c 2001:a::d:e 1
> ubuntu2204hwe# do show ipv6 route
> [..]
> D>* 4004::4/128 [150/0] via 2001::5, loop1, seg6local End.B6.Encap nh6 2001::5, seg6 2001:a::b:c,2001:a::d:e, weight 1, 00:00:04

The uB6_Encap operation is also supported, but not displayed in the
documentation as iproute2 does not support it yet.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
7 days agozebra: add End.B6.Encaps to rt_netlink
Dmytro Shytyi [Fri, 29 Dec 2023 13:40:48 +0000 (14:40 +0100)]
zebra: add End.B6.Encaps to rt_netlink

Introduce the End.B6.Encaps in the rt_netlink code.

Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
7 days agosharpd: add uSID block and function length parameters to seg6local route
Philippe Guibert [Tue, 8 Apr 2025 08:20:12 +0000 (10:20 +0200)]
sharpd: add uSID block and function length parameters to seg6local route

Add the possibility to configure uSID seg6local route with specific
block and node length.

> ubuntu2204hwe# sharp install seg6local-routes 1005::1 nexthop-seg6local loop1 uN usid-block-length 40 usid-function-length 8 1
> ubuntu2204hwe# Ctrl-D
> # ip -6 ro show
> 1005::1 nhid 26  encap seg6local action End flavors next-csid lblen 40 nflen 8 dev loop1 proto 194 metric 20 pref medium

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
7 days agosharpd: add uSID instruction support to seg6local routes
Philippe Guibert [Tue, 8 Apr 2025 07:43:44 +0000 (09:43 +0200)]
sharpd: add uSID instruction support to seg6local routes

Seg6local routes can be installed with uSID instruction.

> ubuntu2204hwe# sharp install seg6local-routes 1006::1 nexthop-seg6local loop1 uN
> ubuntu2204hwe# Ctrl-D
> # ip -6 ro show
> 1006::1 nhid 28  encap seg6local action End flavors next-csid lblen 32 nflen 16 dev loop1 proto 194 metric 20 pref medium

As of today, uA and uN can be displayed with iproute2. The other
instructions are not rejected by the kernel, but are not displayed by
iproute2.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
8 days agoMerge pull request #18709 from donaldsharp/nhe_afi_max
Donatas Abraitis [Fri, 25 Apr 2025 00:51:04 +0000 (17:51 -0700)]
Merge pull request #18709 from donaldsharp/nhe_afi_max

zebra: Display nhg's afi as `No Afi`

8 days agoMerge pull request #18708 from louis-6wind/rework_bgp_evpn_rt5
Donatas Abraitis [Fri, 25 Apr 2025 00:49:54 +0000 (17:49 -0700)]
Merge pull request #18708 from louis-6wind/rework_bgp_evpn_rt5

topotests: clarify bgp evpn rt5

8 days agobuild: missing-noreturn warnings are errors 18720/head
Mark Stapp [Thu, 24 Apr 2025 15:41:04 +0000 (11:41 -0400)]
build: missing-noreturn warnings are errors

Remove the temporary 'no-error' for the newly-added warning.

Signed-off-by: Mark Stapp <mjs@cisco.com>
8 days ago*: expose and clean up 'noreturn' functions
Mark Stapp [Thu, 24 Apr 2025 15:39:33 +0000 (11:39 -0400)]
*: expose and clean up 'noreturn' functions

Enable the -Wmissing-noreturn warning, and resolve warnings
for gcc and clang. Add a FRR_NORETURN macro and use that for
the new changes.

Signed-off-by: Mark Stapp <mjs@cisco.com>
8 days agoMerge pull request #18652 from donaldsharp/pim_ssmpingd
Jafar Al-Gharaibeh [Thu, 24 Apr 2025 15:52:48 +0000 (10:52 -0500)]
Merge pull request #18652 from donaldsharp/pim_ssmpingd

Fix Pim ssmpingd

8 days agoMerge pull request #18716 from y-bharath14/srib-yang-v11
Mark Stapp [Thu, 24 Apr 2025 12:01:39 +0000 (08:01 -0400)]
Merge pull request #18716 from y-bharath14/srib-yang-v11

yang: Fix pyang errors in frr-interface.yang

8 days agotests: bgp_evpn_rt5 test match evpn vni 18708/head
Louis Scalbert [Thu, 24 Apr 2025 09:06:10 +0000 (11:06 +0200)]
tests: bgp_evpn_rt5 test match evpn vni

0d5bd461af commit was supposed to check that route-map "match evpn vni"
was working by adding a r3 router that injected prefixes with VNI 102.
A route-map on r1 was filtering r3 prefixes. However, the test was
working even after removing r3. A check was needed without the route-map
to check that r3 prefixes were received before applying the filter.

Test "match evpn vni" route-map filtering applied to r2 input instead.

Fixes: 0d5bd461af ("topotests: bgp_evpn_rt5, add test with match evpn vni command")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 rename router variables
Louis Scalbert [Wed, 23 Apr 2025 13:47:14 +0000 (15:47 +0200)]
tests: bgp_evpn_rt5 rename router variables

in order to identify which router we are talking about.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 reformat configuration commands
Louis Scalbert [Wed, 23 Apr 2025 11:39:13 +0000 (13:39 +0200)]
tests: bgp_evpn_rt5 reformat configuration commands

Reformat configuration commands in human readable style.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 rename vrfs
Louis Scalbert [Wed, 23 Apr 2025 11:16:32 +0000 (13:16 +0200)]
tests: bgp_evpn_rt5 rename vrfs

No need to prefix with the router name.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 re-address rd and rt
Louis Scalbert [Wed, 23 Apr 2025 11:15:01 +0000 (13:15 +0200)]
tests: bgp_evpn_rt5 re-address rd and rt

Re-address Route-Distinguisher and route-targets for clarity.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 don't check for file presence
Louis Scalbert [Wed, 23 Apr 2025 10:51:30 +0000 (12:51 +0200)]
tests: bgp_evpn_rt5 don't check for file presence

They are always there.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 reformat setup_module
Louis Scalbert [Wed, 23 Apr 2025 10:36:50 +0000 (12:36 +0200)]
tests: bgp_evpn_rt5 reformat setup_module

Cosmetic change for clarity

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 remove useless switches
Louis Scalbert [Wed, 23 Apr 2025 10:24:35 +0000 (12:24 +0200)]
tests: bgp_evpn_rt5 remove useless switches

They are not used.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 re-address overlay
Louis Scalbert [Wed, 23 Apr 2025 09:24:51 +0000 (11:24 +0200)]
tests: bgp_evpn_rt5 re-address overlay

for clarity

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: bgp_evpn_rt5 re-address underlay
Louis Scalbert [Wed, 23 Apr 2025 09:49:13 +0000 (11:49 +0200)]
tests: bgp_evpn_rt5 re-address underlay

for clarity.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
8 days agotests: remove r3 from bgp_evpn_rt5
Louis Scalbert [Wed, 23 Apr 2025 09:46:33 +0000 (11:46 +0200)]
tests: remove r3 from bgp_evpn_rt5

It is not used at all.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
9 days agoyang: Fix pyang errors in frr-interface.yang 18716/head
Y Bharath [Thu, 24 Apr 2025 06:42:12 +0000 (12:12 +0530)]
yang: Fix pyang errors in frr-interface.yang

Fix pyang warnings and errors in frr-interface.yang

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
9 days agoMerge pull request #18672 from usrivastava-nvidia/master
Jafar Al-Gharaibeh [Thu, 24 Apr 2025 04:17:45 +0000 (23:17 -0500)]
Merge pull request #18672 from usrivastava-nvidia/master

pimd: Fix for crash during networking restart

9 days agodocker: add ssmping to the the ubuntu docker images 18652/head 18713/head
Donald Sharp [Wed, 23 Apr 2025 17:57:21 +0000 (13:57 -0400)]
docker: add ssmping to the the ubuntu docker images

ssmping is missing from our docker builds.  Let's add
it so that topotests can run correctly.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Christian Hopps <chopps@labn.net>
9 days agodoc: Document new test dependancy
Donald Sharp [Mon, 14 Apr 2025 13:07:54 +0000 (09:07 -0400)]
doc: Document new test dependancy

ssmping is needed to test the ssmpingd in the pimd daemon.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
9 days agotests: Add a simple ssmping test to the system
Donald Sharp [Sun, 13 Apr 2025 17:47:00 +0000 (13:47 -0400)]
tests: Add a simple ssmping test to the system

There are no tests that attempt to cover the ssmpingd
functionality in pimd.  Add a very very simple test case.
This test requires the ssmping package to be installed.

Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
9 days agotests: Convert pim_basic to use integrated configuration
Donald Sharp [Sun, 13 Apr 2025 17:01:39 +0000 (13:01 -0400)]
tests: Convert pim_basic to use integrated configuration

Since I am in this test, modifying it let's just convert
it to a integrated configuration.

Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
9 days agopimd: Allow ssmpingd command to work for pim
Donald Sharp [Sun, 13 Apr 2025 16:47:44 +0000 (12:47 -0400)]
pimd: Allow ssmpingd command to work for pim

Commit: 1c56018f66723a5ea478f0d6607a8f81f4d6ada5
broke the ssmpingd implementation in pim.  This
is because it just completely botched the bind
to the correct port and address.

Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
9 days agozebra: Display nhg's afi as `No Afi` 18709/head
Donald Sharp [Wed, 23 Apr 2025 16:00:55 +0000 (12:00 -0400)]
zebra: Display nhg's afi as `No Afi`

When displaying `show nexthop-group rib` the afi
displayed for Nexthop Groups ( not singletons ) is
`bad-value` which while true to the specific of
the AFI it's not necessarily what we want to display
to the end operator.  Add a wrapper function for
nhg's to do the right thing.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
9 days agopimd: Fix for crash during networking restart 18672/head
Utkarsh Srivastava [Thu, 10 Apr 2025 05:49:34 +0000 (22:49 -0700)]
pimd: Fix for crash during networking restart

During vrf delete, the vxlan_info.work_list
linked list was deleted which is a global list
containing the SGs for all the VRFs.

If two vrfs are configured, vrf a and vrf b and
both has SGs assocaited with them which are
inserted in the vxlan_info.work_list. Now if
vrf a is deleted, it deletes the work_list also.
Due to this when any SG add or del comes for vrf b
it tries to access the work_list and crashes.

Fix
Delete the vxlan_info.work_list only when all the
VRFs are terminated and unset the vxlan_info.flags
so if new add cmd comes it re-allocates the work_list.

Signed-off-by: usrivastava-nvidia <usrivastava@nvidia.com>
9 days agoMerge pull request #18691 from valentinbinotto/valentin-dev
Donald Sharp [Wed, 23 Apr 2025 13:23:12 +0000 (09:23 -0400)]
Merge pull request #18691 from valentinbinotto/valentin-dev

doc: state correct default behaviour of VTYSH_PAGER env if unset (vtysh manpage)

9 days agoMerge pull request #18677 from chdxD1/fix-rmac-nhlist
Philippe Guibert [Wed, 23 Apr 2025 13:07:01 +0000 (15:07 +0200)]
Merge pull request #18677 from chdxD1/fix-rmac-nhlist

zebra: add vtep_ip to rmac nh_list in all cases

10 days agoMerge pull request #16836 from cscarpitta/feature/srv6-show-sids
Donatas Abraitis [Wed, 23 Apr 2025 02:22:27 +0000 (05:22 +0300)]
Merge pull request #16836 from cscarpitta/feature/srv6-show-sids

zebra: Add CLI to display SRv6 SIDs allocated

10 days agoMerge pull request #18656 from leonshaw/evpn-strip-ecom
Donatas Abraitis [Wed, 23 Apr 2025 02:21:26 +0000 (05:21 +0300)]
Merge pull request #18656 from leonshaw/evpn-strip-ecom

bgpd: Clean extended communities for VRF routes imported from EVPN

10 days agoMerge pull request #18703 from donaldsharp/line_vty
Donatas Abraitis [Wed, 23 Apr 2025 02:08:39 +0000 (05:08 +0300)]
Merge pull request #18703 from donaldsharp/line_vty

doc: line vty was not documented

10 days agodoc: line vty was not documented 18703/head
Donald Sharp [Tue, 22 Apr 2025 19:18:41 +0000 (15:18 -0400)]
doc: line vty was not documented

Try to document the sub-node `line vty` and
what it can do.  Call out the distinction
between vtysh and VTY.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
10 days agoMerge pull request #18694 from petrvaganoff/dev
Donald Sharp [Tue, 22 Apr 2025 16:27:00 +0000 (12:27 -0400)]
Merge pull request #18694 from petrvaganoff/dev

bgpd: Fix deref after free in bgp_vrf_unlink

10 days agoMerge pull request #18698 from y-bharath14/srib-tests-v13
Donald Sharp [Tue, 22 Apr 2025 16:23:56 +0000 (12:23 -0400)]
Merge pull request #18698 from y-bharath14/srib-tests-v13

tests: Shadowing the built-in function

10 days agodoc: Updated the default for VTYSH_PAGER if unset in user docs 18691/head
Valentin Binotto [Tue, 22 Apr 2025 16:01:41 +0000 (16:01 +0000)]
doc: Updated the default for VTYSH_PAGER if unset in user docs

Signed-off-by: Valentin Binotto <git.8c400bab53f220f13efe0112c1ea2f96@v434project.com>
10 days agoMerge pull request #18683 from LabNConsulting/chopps/notif-improve
Russ White [Tue, 22 Apr 2025 15:27:16 +0000 (11:27 -0400)]
Merge pull request #18683 from LabNConsulting/chopps/notif-improve

Improve notification selectors (sort, eliminate dups)

10 days agotests: remove ipv4 and ipv6 in bgp_evpn_rt5 18677/head
Christopher Dziomba [Tue, 22 Apr 2025 15:25:57 +0000 (17:25 +0200)]
tests: remove ipv4 and ipv6 in bgp_evpn_rt5

Removal of IPv6 was already tested in bgp_evpn_rt5 topotest, however
IPv4 was not tested afterwards. This now removes IPv6 routes first,
then adds them back and removes IPv4 afterwards, waiting for
convergence everytime.

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
10 days agozebra: add vtep_ip to rmac nh_list in all cases
Christopher Dziomba [Thu, 17 Apr 2025 08:41:06 +0000 (10:41 +0200)]
zebra: add vtep_ip to rmac nh_list in all cases

zebra rmac has a nh_list which tracks the assigned VTEP IPs to RMACs.
It can also receive IPv6 encoded IPv4 addresses as VTEPs. Changing/
Installing the RMAC into the Kernel is only important when the IPv4
address changes. However because nh_list is a nodup list used to
track usage or RMACs by VTEP IPs, both IP addresses (IPv4 and IPv6
encoded IPv4) should be written into it, as both could be removed
in l3vni_rmac_nh_list_nh_delete independently.

Signed-off-by: Christopher Dziomba <christopher.dziomba@telekom.de>
10 days agoMerge pull request #18695 from askorichenko/test-show-advertised-routes-vty
Russ White [Tue, 22 Apr 2025 15:09:17 +0000 (11:09 -0400)]
Merge pull request #18695 from askorichenko/test-show-advertised-routes-vty

bgpd: fix vty's version of show advertised-routes

10 days agoMerge pull request #18158 from chdxD1/evpn-no-withdraw-for-update
Russ White [Tue, 22 Apr 2025 14:54:57 +0000 (10:54 -0400)]
Merge pull request #18158 from chdxD1/evpn-no-withdraw-for-update

Update EVPN prefix routes properly instead of withdraw/install

10 days agotests: Shadowing the built-in function 18698/head
Y Bharath [Tue, 22 Apr 2025 09:33:36 +0000 (15:03 +0530)]
tests: Shadowing the built-in function

Shadowing the built-in function in lutil.py

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
11 days agoMerge pull request #18626 from donaldsharp/RA_me
Russ White [Mon, 21 Apr 2025 21:32:58 +0000 (17:32 -0400)]
Merge pull request #18626 from donaldsharp/RA_me

Implement RFC8781 (NAT64 prefix in RA's)

11 days agobgpd: fix vty's version of show advertised-routes 18695/head
Alexander Skorichenko [Fri, 18 Apr 2025 11:08:45 +0000 (13:08 +0200)]
bgpd: fix vty's version of show advertised-routes

Fix displayed metric if a route-map is applied to advertised routes

Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
11 days ago*: Fix MULTIPATH_NUM check in nhg encode 18690/head
Karthikeya Venkat Muppalla [Fri, 18 Apr 2025 18:39:40 +0000 (11:39 -0700)]
*: Fix MULTIPATH_NUM check in nhg encode

In zapi_nhg_encode we check if number of paths are >=
MULTIPATH_NUM, the condition should be just checking if it is > not >=

Signed-off-by: Karthikeya Venkat Muppalla <kmuppalla@nvidia.com>
11 days agoMerge pull request #18689 from donaldsharp/limit_outgoing_packets
Donatas Abraitis [Mon, 21 Apr 2025 16:29:12 +0000 (19:29 +0300)]
Merge pull request #18689 from donaldsharp/limit_outgoing_packets

bgpd: ensure that bgp_generate_updgrp_packets shares nicely

11 days agobgpd: Fix deref after free in bgp_vrf_unlink 18694/head
Petr Vaganov [Mon, 21 Apr 2025 15:52:24 +0000 (20:52 +0500)]
bgpd: Fix deref after free in bgp_vrf_unlink

Found by the static analyzer Svace (ISP RAS): DEREF_AFTER_FREE -
Pointer '&bgp->vrf_id' is dereferenced after the referenced memory
was deallocated by passing as 1st parameter to function 'bgp_unlock'.

Signed-off-by: Petr Vaganov <petrvaganoff@gmail.com>
11 days agolib: nb_notif: notification selectors sorted with no dups 18683/head
Christian Hopps [Tue, 1 Apr 2025 03:18:42 +0000 (03:18 +0000)]
lib: nb_notif: notification selectors sorted with no dups

Signed-off-by: Christian Hopps <chopps@labn.net>
11 days agomgmtd: validate notify selectors to be xpaths that result to nodes
Christian Hopps [Tue, 1 Apr 2025 03:05:02 +0000 (03:05 +0000)]
mgmtd: validate notify selectors to be xpaths that result to nodes

Also, only message interested backend clients about a path removal when last
supporting session is being removed from a given notification path.

Signed-off-by: Christian Hopps <chopps@labn.net>
11 days agolib: mgmt backend: add refer_id to notification message
Christian Hopps [Tue, 1 Apr 2025 03:03:18 +0000 (03:03 +0000)]
lib: mgmt backend: add refer_id to notification message

Signed-off-by: Christian Hopps <chopps@labn.net>
11 days agolib: darr: add string search macros
Christian Hopps [Fri, 18 Apr 2025 12:32:34 +0000 (12:32 +0000)]
lib: darr: add string search macros

Add macros to support searching for and finding (perhaps closest) matches
for a key in an array of strings.

Signed-off-by: Christian Hopps <chopps@labn.net>
13 days agozebra: Fix missing blank line checkpatch warning 16836/head
Carmine Scarpitta [Sun, 22 Sep 2024 14:40:30 +0000 (16:40 +0200)]
zebra: Fix missing blank line checkpatch warning

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
13 days agodoc: Add example for show specific SID CLI
Carmine Scarpitta [Sun, 15 Sep 2024 21:14:54 +0000 (23:14 +0200)]
doc: Add example for show specific SID CLI

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
13 days agodoc: Add example for show SIDs CLI
Carmine Scarpitta [Sun, 15 Sep 2024 21:14:41 +0000 (23:14 +0200)]
doc: Add example for show SIDs CLI

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
13 days agodoc: Add documentation for show SIDs command
Carmine Scarpitta [Sun, 15 Sep 2024 21:14:10 +0000 (23:14 +0200)]
doc: Add documentation for show SIDs command

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
13 days agozebra: Add CLI to display SRv6 SIDs allocated
Carmine Scarpitta [Sun, 15 Sep 2024 20:33:39 +0000 (22:33 +0200)]
zebra: Add CLI to display SRv6 SIDs allocated

```
router# show segment-routing srv6 sid
 SID                   Behavior    Context                Daemon/Instance    Locator    Allocation Type
 --------------------  ----------  ---------------------  -----------------  ---------  -----------------
 fcbb:bbbb:1::         uN          -                      isis(0)            MAIN       dynamic
 fcbb:bbbb:1:fe00::    uDT6        VRF 'vrf10'            bgp(0)             MAIN       dynamic
 fcbb:bbbb:1:fe01::    uDT6        VRF 'vrf20'            bgp(0)             MAIN       dynamic
 fcbb:bbbb:1:e000::    uA          Interface 'eth-sw1'    isis(0)            MAIN       dynamic
 fcbb:bbbb:1:e001::    uA          Interface 'eth-sw1'    isis(0)            MAIN       dynamic
```

```
router# show segment-routing srv6 sid json
{
  "fc00:0:1::":{
    "sid":"fc00:0:1::",
    "behavior":"uN",
    "context":{},
    "locator":"loc1",
    "allocationMode":"dynamic",
    "clients":[
      {
        "proto":"isis",
        "instance":0
      }
    ]
  },
  "fc00:0:1:1::":{
    "sid":"fc00:0:1:1::",
    "behavior":"uA",
    "context":{
      "interfaceIndex":2,
      "interfaceName":"eth-sw1",
      "nexthopIpv6Address":"fe80::4423:f3ff:fe8b:fed"
    },
    "locator":"loc1",
    "allocationMode":"dynamic",
    "clients":[
      {
        "proto":"isis",
        "instance":0
      }
    ]
  },
  "fc00:0:1:2::":{
    "sid":"fc00:0:1:2::",
    "behavior":"uA",
    "context":{
      "interfaceIndex":2,
      "interfaceName":"eth-sw1",
      "nexthopIpv6Address":"fe80::9005:fdff:fe18:1237"
    },
    "locator":"loc1",
    "allocationMode":"dynamic",
    "clients":[
      {
        "proto":"isis",
        "instance":0
      }
    ]
  }
}
```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
13 days agoisisd: Pass ifindex when releasing End.X SIDs
Carmine Scarpitta [Sat, 5 Oct 2024 14:59:00 +0000 (16:59 +0200)]
isisd: Pass ifindex when releasing End.X SIDs

When isisd releases an End.X SID it should also pass the interface
index down to zebra.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>