From 51612593f7f747d0003a48a41367be87d3ea5361 Mon Sep 17 00:00:00 2001 From: Enke Chen Date: Wed, 16 Oct 2024 11:19:28 -0700 Subject: [PATCH] tests: add a new topotest to bgp_aigp Add a new topotest for getting the aigp from the "igp-metric" for a redistributed route (ospf route in the test). Signed-off-by: Enke Chen --- tests/topotests/bgp_aigp/r4/bgpd.conf | 7 +++++++ tests/topotests/bgp_aigp/r6/zebra.conf | 1 + tests/topotests/bgp_aigp/test_bgp_aigp.py | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/tests/topotests/bgp_aigp/r4/bgpd.conf b/tests/topotests/bgp_aigp/r4/bgpd.conf index e12c45e0bb..2cdf84a1b3 100644 --- a/tests/topotests/bgp_aigp/r4/bgpd.conf +++ b/tests/topotests/bgp_aigp/r4/bgpd.conf @@ -13,9 +13,16 @@ router bgp 65001 neighbor 10.0.0.6 update-source lo address-family ipv4 redistribute connected route-map connected-to-bgp + redistribute ospf route-map ospf-to-bgp neighbor 192.168.24.2 route-map set-nexthop out exit-address-family ! +ip prefix-list p66 seq 5 permit 10.0.6.6/32 +! +route-map ospf-to-bgp permit 10 + match ip address prefix-list p66 + set aigp igp-metric +! ! Two OSPF domains should be isolated - otherwise the connected routes ! on r4 would be advertised to r3 (via r4 -> r6 -> r5 -> r3), and can ! mess up bgp bestpath calculation (igp metrics for the BGP nexthops). diff --git a/tests/topotests/bgp_aigp/r6/zebra.conf b/tests/topotests/bgp_aigp/r6/zebra.conf index f8ca5f8b82..b6456cacc5 100644 --- a/tests/topotests/bgp_aigp/r6/zebra.conf +++ b/tests/topotests/bgp_aigp/r6/zebra.conf @@ -1,6 +1,7 @@ ! interface lo ip address 10.0.0.6/32 + ip address 10.0.6.6/32 ! interface r6-eth0 ip address 192.168.46.6/24 diff --git a/tests/topotests/bgp_aigp/test_bgp_aigp.py b/tests/topotests/bgp_aigp/test_bgp_aigp.py index 5f253d2ef0..f937f851a6 100644 --- a/tests/topotests/bgp_aigp/test_bgp_aigp.py +++ b/tests/topotests/bgp_aigp/test_bgp_aigp.py @@ -248,6 +248,11 @@ def test_bgp_aigp(): """ ) + # r4, 10.0.6.6/32 with aigp-metric 20 + test_func = functools.partial(_bgp_check_aigp_metric, r4, "10.0.6.6/32", 20) + _, result = topotest.run_and_expect(test_func, None, count=60, wait=1) + assert result is None, "aigp-metric for 10.0.6.6/32 is not 20" + # r4, 10.0.0.71/32 with aigp-metric 71 test_func = functools.partial(_bgp_check_aigp_metric, r4, "10.0.0.71/32", 71) _, result = topotest.run_and_expect(test_func, None, count=60, wait=1) -- 2.39.5