From 790c207fa9c9c0a8a1ec475f09a80f8af4b4a903 Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Wed, 17 Apr 2024 11:01:23 -0300 Subject: [PATCH] tests: fix BFD C-bit topotest When a BFD down notification is received and the C-bit is set in both directions, any ongoing graceful restart should be aborted and stale routes removed from the RIB. This commit updates the `bfd_bgp_cbit_topo3` topotest accordingly to fix the expected outcomes in the `test_bfd_loss_intermediate` test. Signed-off-by: Renato Westphal --- .../r1/bgp_ipv6_routes_down.json | 45 ------------------- .../bfd_bgp_cbit_topo3/r1/ipv6_routes.json | 44 ------------------ .../test_bfd_bgp_cbit_topo3.py | 6 +-- 3 files changed, 3 insertions(+), 92 deletions(-) diff --git a/tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json b/tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json index 5cba71ef20..61be1df92a 100644 --- a/tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json @@ -4,51 +4,6 @@ "localAS": 101, "routes": { - "2001:db8:6::/64": [ - { - "stale": true, - "valid": true, - "bestpath": true, - "pathFrom": "external", - "prefix": "2001:db8:6::", - "prefixLen": 64, - "network": "2001:db8:6::\/64", - "metric": 0, - "weight": 0, - "peerId": "2001:db8:4::1", - "origin": "IGP", - "nexthops": [ - { "ip": "2001:db8:4::1", - "afi": "ipv6", - "scope": "global", - "used": true - } - ] - } - ], - "2001:db8:7::/64": [ - { - "stale": true, - "valid": true, - "bestpath": true, - "pathFrom": "external", - "prefix": "2001:db8:7::", - "prefixLen": 64, "network": - "2001:db8:7::\/64", - "metric": 0, - "weight": 0, - "peerId": "2001:db8:4::1", - "origin": "IGP", - "nexthops": [ - { - "ip": "2001:db8:4::1", - "afi": "ipv6", - "scope": "global", - "used": true - } - ] - } - ], "2001:db8:8::/64": [ { "valid": true, diff --git a/tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json b/tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json index 8eea183285..36cdcc307d 100644 --- a/tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json @@ -32,49 +32,5 @@ } ] } - ], - "2001:db8:6::/64": [{ - "distance": 20, - "protocol": "bgp", - "metric": 0, - "selected": true, - "destSelected": true, - "prefix": "2001:db8:6::/64", - "nexthops": [{ - "ip":"2001:db8:4::1", - "active": true, - "afi": "ipv6", - "recursive":true - }, - { - "fib":true, - "ip":"2001:db8:1::2", - "afi": "ipv6", - "interfaceName": "r1-eth0" - } - ] - } - ], - "2001:db8:7::/64": [{ - "distance": 20, - "protocol": "bgp", - "metric": 0, - "selected": true, - "destSelected": true, - "prefix": "2001:db8:7::/64", - "nexthops": [{ - "ip":"2001:db8:4::1", - "active": true, - "afi": "ipv6", - "recursive": true - }, - { - "fib":true, - "ip":"2001:db8:1::2", - "afi": "ipv6", - "interfaceName":"r1-eth0" - } - ] - } ] } diff --git a/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py index 906687d1cd..705937ef93 100644 --- a/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py +++ b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py @@ -122,8 +122,8 @@ def test_bfd_connection(): def test_bfd_loss_intermediate(): """ - Assert that BFD notices the bfd link down failure. - but BGP entries should still be present + Assert that BGP notices the BFD link down failure. + The BGP entries should be flushed as the C-bit is set in both directions. """ tgen = get_topogen() if tgen.routers_have_failure(): @@ -160,7 +160,7 @@ def test_bfd_loss_intermediate(): assertmsg = '"{}" JSON output mismatches'.format(router.name) assert result is None, assertmsg - logger.info("waiting for BGP entries to become stale") + logger.info("waiting for BGP entries to be removed") for router in tgen.routers().values(): if router.name == "r2": continue -- 2.39.5