]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: Check if remote-as is not flushed once peer-group applied
authorDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 1 Dec 2024 12:49:40 +0000 (14:49 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 1 Dec 2024 12:50:48 +0000 (14:50 +0200)
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
tests/topotests/bgp_peer_group/r1/frr.conf
tests/topotests/bgp_peer_group/r4/frr.conf [new file with mode: 0644]
tests/topotests/bgp_peer_group/test_bgp_peer-group.py

index 035c8e4cf16efaccae728b8dff150f506426d411..cf9d16c918492ea7665640470bf2bf4a7acfdaab 100644 (file)
@@ -5,6 +5,9 @@ interface r1-eth0
 interface r1-eth1
  ip address 192.168.251.1/30
 !
+interface r1-eth2
+ ip address 192.168.252.1/30
+!
 ip forwarding
 !
 router bgp 65001
@@ -17,5 +20,9 @@ router bgp 65001
  neighbor PG1 remote-as external
  neighbor PG1 timers 3 20
  neighbor PG1 graceful-restart-disable
+ neighbor PG2 peer-group
+ neighbor PG2 local-as 65554 no-prepend replace-as
  neighbor 192.168.251.2 peer-group PG1
+ neighbor 192.168.252.2 remote-as 65004
+ neighbor 192.168.252.2 peer-group PG2
 !
diff --git a/tests/topotests/bgp_peer_group/r4/frr.conf b/tests/topotests/bgp_peer_group/r4/frr.conf
new file mode 100644 (file)
index 0000000..b1da90f
--- /dev/null
@@ -0,0 +1,7 @@
+!
+interface r4-eth0
+ ip address 192.168.252.2/30
+!
+router bgp 65004
+ neighbor 192.168.252.1 remote-as external
+!
index 45f713b8a2401f209a2965beab4af4dbe71cd18b..e98d5f8b3b07ced35add354fb53f77ba81f5bece 100644 (file)
@@ -30,7 +30,7 @@ pytestmark = [pytest.mark.bgpd]
 
 
 def build_topo(tgen):
-    for routern in range(1, 4):
+    for routern in range(1, 5):
         tgen.add_router("r{}".format(routern))
 
     switch = tgen.add_switch("s1")
@@ -42,6 +42,10 @@ def build_topo(tgen):
     switch.add_link(tgen.gears["r1"])
     switch.add_link(tgen.gears["r2"])
 
+    switch = tgen.add_switch("s3")
+    switch.add_link(tgen.gears["r1"])
+    switch.add_link(tgen.gears["r4"])
+
 
 def setup_module(mod):
     tgen = Topogen(build_topo, mod.__name__)
@@ -84,6 +88,11 @@ def test_bgp_peer_group():
                 "bgpState": "Established",
                 "neighborCapabilities": {"gracefulRestart": "received"},
             },
+            "192.168.252.2": {
+                "peerGroup": "PG2",
+                "bgpState": "Established",
+                "neighborCapabilities": {"gracefulRestart": "advertisedAndReceived"},
+            },
         }
         return topotest.json_cmp(output, expected)
 
@@ -110,6 +119,24 @@ def test_bgp_peer_group():
     assert result is None, "Failed checking advertised routes from r3"
 
 
+def test_show_running_remote_as_peer_group():
+    tgen = get_topogen()
+
+    if tgen.routers_have_failure():
+        pytest.skip(tgen.errors)
+
+    output = (
+        tgen.gears["r1"]
+        .cmd(
+            'vtysh -c "show running bgpd" | grep "^ neighbor 192.168.252.2 remote-as 65004"'
+        )
+        .rstrip()
+    )
+    assert (
+        output == " neighbor 192.168.252.2 remote-as 65004"
+    ), "192.168.252.2 remote-as is flushed"
+
+
 def test_bgp_peer_group_remote_as_del_readd():
     tgen = get_topogen()