]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: Set community for conditionally advertised routes
authorDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 21 Nov 2023 08:38:12 +0000 (10:38 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Tue, 21 Nov 2023 15:50:13 +0000 (15:50 +0000)
Just to make sure we don't crash bgpd with double-free if an existing route
already exists.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 8eba97d3954d466b171e283b289710ad7544df65)

tests/topotests/bgp_conditional_advertisement_static_route/r2/frr.conf
tests/topotests/bgp_conditional_advertisement_static_route/test_bgp_conditional_advertisement_static_route.py

index 9dc4099341d93c1271424aa6c4bf696954ac64de..3ced9340ca158e4f9b44af5fb33e1216118a2a45 100644 (file)
@@ -36,4 +36,5 @@ route-map exist-map permit 10
 !
 route-map advertise-map permit 10
  match ip address prefix-list advertise
+ set community 65000:1
 !
index 9d61bbd643fe3816bae3c5219a66ea28ee8ca9d2..4180bfcdf6a233c7c98e3a61015a15f7bcc4bfe9 100644 (file)
@@ -54,6 +54,7 @@ def test_bgp_conditional_advertisements_static_route():
     if tgen.routers_have_failure():
         pytest.skip(tgen.errors)
 
+    r1 = tgen.gears["r1"]
     r2 = tgen.gears["r2"]
 
     def _bgp_converge():
@@ -112,6 +113,25 @@ def test_bgp_conditional_advertisements_static_route():
     _, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
     assert result is None, "10.10.10.2/32 is not advertised after prefix-list update"
 
+    def _bgp_check_received_routes():
+        output = json.loads(r1.vtysh_cmd("show bgp ipv4 unicast 10.10.10.1/32 json"))
+        expected = {
+            "paths": [
+                {
+                    "community": {
+                        "string": "65000:1",
+                    }
+                }
+            ]
+        }
+        return topotest.json_cmp(output, expected)
+
+    test_func = functools.partial(
+        _bgp_check_received_routes,
+    )
+    _, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
+    assert result is None, "10.10.10.1/32 does not have 65000:1 community attached"
+
 
 if __name__ == "__main__":
     args = ["-s"] + sys.argv[1:]