]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: Check if labeled IPv6 unicast default route works too
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 11 Aug 2023 07:48:28 +0000 (10:48 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 11 Aug 2023 07:52:39 +0000 (10:52 +0300)
Also, check if remote label is explicit null according to the AFI.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
tests/topotests/bgp_labeled_unicast_default_originate/r1/bgpd.conf
tests/topotests/bgp_labeled_unicast_default_originate/r1/zebra.conf
tests/topotests/bgp_labeled_unicast_default_originate/r2/bgpd.conf
tests/topotests/bgp_labeled_unicast_default_originate/r2/zebra.conf
tests/topotests/bgp_labeled_unicast_default_originate/test_bgp_labeled_unicast_default_originate.py

index 75a4aa6ab39d6e1b085de6dc66c47dd70786da96..d0d13909a7072fc2da77fc6b4a4cd7e1514327d5 100644 (file)
@@ -1,18 +1,32 @@
 !
 router bgp 65001
  no bgp default ipv4-unicast
+ no bgp default ipv6-unicast
  no bgp ebgp-requires-policy
  neighbor 192.168.12.2 remote-as external
  neighbor 192.168.12.2 timers 1 3
  neighbor 192.168.12.2 timers connect 1
+ neighbor 2001:db8:12::2 remote-as external
+ neighbor 2001:db8:12::2 timers 1 3
+ neighbor 2001:db8:12::2 timers connect 1
  address-family ipv4 unicast
   redistribute connected
  exit-address-family
+ !
+ address-family ipv6 unicast
+  redistribute connected
+ exit-address-family
+ !
  address-family ipv4 labeled-unicast
   neighbor 192.168.12.2 activate
   neighbor 192.168.12.2 default-originate route-map r2
  exit-address-family
  !
+ address-family ipv6 labeled-unicast
+  neighbor 2001:db8:12::2 activate
+  neighbor 2001:db8:12::2 default-originate route-map r2
+ exit-address-family
+ !
 !
 route-map r2 permit 10
  set community 65001:65001
index 8eab7805dfe4bc2732bd5f861391e1365753555a..686b0755c33126082db3d3c7e4080013bc25cec7 100644 (file)
@@ -1,4 +1,5 @@
 !
 interface r1-eth0
  ip address 192.168.12.1/24
+ ipv6 address 2001:db8:12::1/64
 !
index c81ba9fe02d51bdda468cb1b78f847ffa222b953..1498dffc931e91a2ca85436c4a0ec13b7e14ebf5 100644 (file)
@@ -2,10 +2,18 @@
 router bgp 65002
  no bgp ebgp-requires-policy
  no bgp default ipv4-unicast
+ no bgp default ipv6-unicast
  neighbor 192.168.12.1 remote-as external
  neighbor 192.168.12.1 timers 1 3
  neighbor 192.168.12.1 timers connect 1
+ neighbor 2001:db8:12::1 remote-as external
+ neighbor 2001:db8:12::1 timers 1 3
+ neighbor 2001:db8:12::1 timers connect 1
  address-family ipv4 labeled-unicast
   neighbor 192.168.12.1 activate
  exit-address-family
+ !
+ address-family ipv6 labeled-unicast
+  neighbor 2001:db8:12::1 activate
+ exit-address-family
 !
index d7dfd899cc43640662c24357f84958b1514b62c5..cb5c55ef0f63f66bf35aaa84145709288d2fce6e 100644 (file)
@@ -1,4 +1,5 @@
 !
 interface r2-eth0
  ip address 192.168.12.2/24
+ ipv6 address 2001:db8:12::2/64
 !
index c3ccefb56964dca3ee8c3a03d8e5c58ff8eb4871..34c23d9b6fe7bb686069f765f2b5a7a5f6032043 100644 (file)
@@ -82,7 +82,7 @@ def test_bgp_labeled_unicast_default_originate():
     _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
     assert result is None, "Failed to advertise default route for labeled-unicast"
 
-    def _bgp_check_received_routes():
+    def _bgp_check_received_ipv4_routes():
         output = json.loads(
             r2.vtysh_cmd("show bgp ipv4 labeled-unicast 0.0.0.0/0 json")
         )
@@ -94,14 +94,35 @@ def test_bgp_labeled_unicast_default_originate():
                     "community": {
                         "string": "65001:65001",
                     },
+                    "remoteLabel": 0,
                 }
             ]
         }
         return topotest.json_cmp(output, expected)
 
-    test_func = functools.partial(_bgp_check_received_routes)
+    test_func = functools.partial(_bgp_check_received_ipv4_routes)
     _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
-    assert result is None, "Failed to receive default route for labeled-unicast"
+    assert result is None, "Failed to receive IPv4 default route for labeled-unicast"
+
+    def _bgp_check_received_ipv6_routes():
+        output = json.loads(r2.vtysh_cmd("show bgp ipv6 labeled-unicast ::/0 json"))
+        expected = {
+            "paths": [
+                {
+                    "valid": True,
+                    "metric": 666,
+                    "community": {
+                        "string": "65001:65001",
+                    },
+                    "remoteLabel": 2,
+                }
+            ]
+        }
+        return topotest.json_cmp(output, expected)
+
+    test_func = functools.partial(_bgp_check_received_ipv6_routes)
+    _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
+    assert result is None, "Failed to receive IPv6 default route for labeled-unicast"
 
 
 if __name__ == "__main__":