From: Philippe Guibert Date: Fri, 14 Mar 2025 20:11:32 +0000 (+0100) Subject: topotests: bgp_srv6l3vpn_to_bgp_vrf, add redistribute BGP update in l3vpn X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=92ba38bde2d688bfb663e6ab6eadf529397c9f8c;p=matthieu%2Ffrr.git topotests: bgp_srv6l3vpn_to_bgp_vrf, add redistribute BGP update in l3vpn Add a BGP update in CE1 for redistribution. The expectation is that this BGP update will be leaked to the L3VPN. Reversely, if the locator is unset, the L3VPN prefix will be invalidated. Signed-off-by: Philippe Guibert --- diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce1/frr.conf b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce1/frr.conf index c70ad42437..ca28d55409 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce1/frr.conf +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce1/frr.conf @@ -8,8 +8,10 @@ ipv6 forwarding ! router bgp 65500 bgp router-id 1.1.2.1 + no bgp network import-check neighbor 2001:1::1 remote-as 65500 address-family ipv6 unicast + network 2011:1::1/64 neighbor 2001:1::1 activate exit-address-family exit diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce2/ipv6_rib.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce2/ipv6_rib.json index 1f42595271..51076ee194 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce2/ipv6_rib.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/ce2/ipv6_rib.json @@ -53,5 +53,32 @@ } ] } + ], + "2011:1::/64": [ + { + "prefix": "2011:1::/64", + "protocol": "bgp", + "vrfId": 0, + "vrfName": "default", + "selected": true, + "destSelected": true, + "distance": 200, + "metric": 0, + "installed": true, + "table": 254, + "internalStatus": 16, + "internalFlags": 13, + "internalNextHopNum": 1, + "internalNextHopActiveNum": 1, + "nexthops": [ + { + "flags": 3, + "fib": true, + "afi": "ipv6", + "interfaceName": "eth0", + "active": true + } + ] + } ] } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib.json index d67a3e1cc5..afa713e37f 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib.json @@ -58,6 +58,32 @@ } ] } + ], + "2011:1::/64": [ + { + "valid": true, + "bestpath": true, + "selectionReason": "First path received", + "pathFrom": "external", + "prefix": "2011:1::", + "prefixLen": 64, + "network": "2011:1::/64", + "metric": 0, + "weight": 0, + "peerId": "(unspec)", + "path": "", + "origin": "IGP", + "announceNexthopSelf": true, + "nhVrfName": "vrf10", + "nexthops": [ + { + "ip": "2001:1::2", + "hostname": "r1", + "afi": "ipv6", + "used": true + } + ] + } ] }, "1:20": { @@ -165,5 +191,7 @@ ] } } - } + }, + "totalRoutes": 7, + "totalPaths": 7 } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_deleted.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_deleted.json index 5a7407480b..a3a5f0438a 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_deleted.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_deleted.json @@ -52,6 +52,29 @@ } ] } + ], + "2011:1::/64": [ + { + "pathFrom": "external", + "prefix": "2011:1::", + "prefixLen": 64, + "network": "2011:1::/64", + "metric": 0, + "weight": 0, + "peerId": "(unspec)", + "path": "", + "origin": "IGP", + "announceNexthopSelf": true, + "nhVrfName": "vrf10", + "nexthops": [ + { + "ip": "2001:1::2", + "hostname": "r1", + "afi": "ipv6", + "used": true + } + ] + } ] }, "1:20": { @@ -156,5 +179,7 @@ ] } } - } + }, + "totalRoutes": 7, + "totalPaths": 7 } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_recreated.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_recreated.json index d67a3e1cc5..afa713e37f 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_recreated.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r1/vpnv6_rib_locator_recreated.json @@ -58,6 +58,32 @@ } ] } + ], + "2011:1::/64": [ + { + "valid": true, + "bestpath": true, + "selectionReason": "First path received", + "pathFrom": "external", + "prefix": "2011:1::", + "prefixLen": 64, + "network": "2011:1::/64", + "metric": 0, + "weight": 0, + "peerId": "(unspec)", + "path": "", + "origin": "IGP", + "announceNexthopSelf": true, + "nhVrfName": "vrf10", + "nexthops": [ + { + "ip": "2001:1::2", + "hostname": "r1", + "afi": "ipv6", + "used": true + } + ] + } ] }, "1:20": { @@ -165,5 +191,7 @@ ] } } - } + }, + "totalRoutes": 7, + "totalPaths": 7 } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib.json index 114fe1ca25..e7695281d9 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib.json @@ -54,6 +54,30 @@ } ] } + ], + "2011:1::/64": [ + { + "valid": true, + "bestpath": true, + "selectionReason": "First path received", + "pathFrom": "external", + "prefix": "2011:1::", + "prefixLen": 64, + "network": "2011:1::/64", + "metric": 0, + "weight": 0, + "peerId": "2001::1", + "path": "65500", + "origin": "IGP", + "nexthops": [ + { + "ip": "2001::1", + "hostname": "r1", + "afi": "ipv6", + "used": true + } + ] + } ] }, "1:20": { @@ -165,5 +189,7 @@ ] } } - } + }, + "totalRoutes": 7, + "totalPaths": 7 } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_deleted.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_deleted.json index f0b764dcb2..caa5803bfe 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_deleted.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_deleted.json @@ -89,5 +89,7 @@ ] } } - } + }, + "totalRoutes": 3, + "totalPaths": 3 } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_recreated.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_recreated.json index 114fe1ca25..e7695281d9 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_recreated.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vpnv6_rib_locator_recreated.json @@ -54,6 +54,30 @@ } ] } + ], + "2011:1::/64": [ + { + "valid": true, + "bestpath": true, + "selectionReason": "First path received", + "pathFrom": "external", + "prefix": "2011:1::", + "prefixLen": 64, + "network": "2011:1::/64", + "metric": 0, + "weight": 0, + "peerId": "2001::1", + "path": "65500", + "origin": "IGP", + "nexthops": [ + { + "ip": "2001::1", + "hostname": "r1", + "afi": "ipv6", + "used": true + } + ] + } ] }, "1:20": { @@ -165,5 +189,7 @@ ] } } - } + }, + "totalRoutes": 7, + "totalPaths": 7 } diff --git a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vrf10_rib.json b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vrf10_rib.json index be1c58d3d1..407dfb9fb4 100644 --- a/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vrf10_rib.json +++ b/tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/r2/vrf10_rib.json @@ -86,5 +86,36 @@ } ] } + ], + "2011:1::/64": [ + { + "prefix": "2011:1::/64", + "protocol": "bgp", + "vrfName": "vrf10", + "selected": true, + "destSelected": true, + "distance": 20, + "metric": 0, + "installed": true, + "table": 10, + "internalStatus": 16, + "internalFlags": 8, + "internalNextHopNum": 1, + "internalNextHopActiveNum": 1, + "nexthops": [ + { + "flags": 3, + "fib": true, + "afi": "ipv6", + "interfaceName": "eth0", + "vrf": "default", + "active": true, + "weight": 1, + "seg6": { + "segs": "2001:db8:1:1:100::" + } + } + ] + } ] }