]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: bgp_l3vpn_to_bgp_vrf - add bestpath checks
authorLou Berger <lberger@labn.net>
Wed, 30 Sep 2020 04:09:46 +0000 (00:09 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Tue, 6 Oct 2020 14:34:32 +0000 (10:34 -0400)
Signed-off-by: Lou Berger <lberger@labn.net>
tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_routes.py

index a89cdc0b350a40963f0b730c87256d8feb58980c..339838464a1b125e4d18cc11266a654d0bc5aef7 100644 (file)
@@ -286,86 +286,95 @@ bgpribRequireVpnRoutes(
 # PE routers: VRFs contain routes from remote customer nets
 ########################################################################
 want_r1_remote_cust1_routes = [
-    {"p": "5.1.0.0/24", "n": "3.3.3.3"},
-    {"p": "5.1.1.0/24", "n": "3.3.3.3"},
-    {"p": "6.0.1.0/24", "n": "3.3.3.3"},
-    {"p": "6.0.2.0/24", "n": "3.3.3.3"},
-    {"p": "99.0.0.2/32", "n": "3.3.3.3"},
+    {"p": "5.1.0.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "5.1.0.0/24", "n": "99.0.0.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "5.1.1.0/24", "n": "99.0.0.1", "bp": True},
     {"p": "5.1.2.0/24", "n": "4.4.4.4"},
     {"p": "5.1.3.0/24", "n": "4.4.4.4"},
-    {"p": "99.0.0.3/32", "n": "4.4.4.4"},
     {"p": "5.4.2.0/24", "n": "4.4.4.4"},
     {"p": "5.4.3.0/24", "n": "4.4.4.4"},
+    {"p": "6.0.1.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "4.4.4.4", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.1", "bp": True},
+    {"p": "6.0.2.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.2.0/24", "n": "4.4.4.4", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.1", "bp": True},
+    {"p": "99.0.0.1/32", "n": "192.168.1.2", "bp": True},
+    {"p": "99.0.0.2/32", "n": "3.3.3.3"},
     {"p": "99.0.0.3/32", "n": "4.4.4.4"},
-    {"p": "6.0.1.0/24", "n": "4.4.4.4"},
-    {"p": "6.0.2.0/24", "n": "4.4.4.4"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.1"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.1"},
+    {"p": "99.0.0.4/32", "n": "4.4.4.4"},
 ]
 bgpribRequireUnicastRoutes(
     "r1", "ipv4", "r1-cust1", "Customer 1 routes in r1 vrf (2)", want_r1_remote_cust1_routes
-)
+    , debug=False)
 
 want_r3_remote_cust1_routes = [
-    {"p": "5.1.0.0/24", "n": "1.1.1.1"},
-    {"p": "5.1.1.0/24", "n": "1.1.1.1"},
-    {"p": "99.0.0.1/32", "n": "1.1.1.1"},
-    {"p": "6.0.1.0/24", "n": "1.1.1.1"},
-    {"p": "6.0.2.0/24", "n": "1.1.1.1"},
-    {"p": "5.1.2.0/24", "n": "4.4.4.4"},
-    {"p": "5.1.3.0/24", "n": "4.4.4.4"},
-    {"p": "99.0.0.3/32", "n": "4.4.4.4"},
-    {"p": "5.4.2.0/24", "n": "4.4.4.4"},
-    {"p": "5.4.3.0/24", "n": "4.4.4.4"},
-    {"p": "99.0.0.3/32", "n": "4.4.4.4"},
-    {"p": "6.0.1.0/24", "n": "4.4.4.4"},
-    {"p": "6.0.2.0/24", "n": "4.4.4.4"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.2"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.2"},
+    {"p": "5.1.0.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "5.1.0.0/24", "n": "99.0.0.2", "bp": False},
+    {"p": "5.1.1.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "99.0.0.2", "bp": False},
+    {"p": "5.1.2.0/24", "n": "4.4.4.4", "bp": True},
+    {"p": "5.1.3.0/24", "n": "4.4.4.4", "bp": True},
+    {"p": "5.4.2.0/24", "n": "4.4.4.4", "bp": True},
+    {"p": "5.4.3.0/24", "n": "4.4.4.4", "bp": True},
+    {"p": "6.0.1.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "4.4.4.4", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.2", "bp": False},
+    {"p": "6.0.2.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "6.0.2.0/24", "n": "4.4.4.4", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.2", "bp": False},
+    {"p": "99.0.0.1/32", "n": "1.1.1.1", "bp": True},
+    {"p": "99.0.0.3/32", "n": "4.4.4.4", "bp": True},
+    {"p": "99.0.0.4/32", "n": "4.4.4.4", "bp": True},
 ]
 bgpribRequireUnicastRoutes(
     "r3", "ipv4", "r3-cust1", "Customer 1 routes in r3 vrf (2)", want_r3_remote_cust1_routes
-)
+    , debug=False)
 
 want_r4_remote_cust1_routes = [
-    {"p": "5.1.0.0/24", "n": "1.1.1.1"},
-    {"p": "5.1.1.0/24", "n": "1.1.1.1"},
-    {"p": "5.1.0.0/24", "n": "3.3.3.3"},
-    {"p": "5.1.1.0/24", "n": "3.3.3.3"},
-    {"p": "6.0.1.0/24", "n": "1.1.1.1"},
-    {"p": "6.0.2.0/24", "n": "1.1.1.1"},
-    {"p": "6.0.1.0/24", "n": "3.3.3.3"},
-    {"p": "6.0.2.0/24", "n": "3.3.3.3"},
-    {"p": "99.0.0.1/32", "n": "1.1.1.1"},
-    {"p": "99.0.0.2/32", "n": "3.3.3.3"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.3"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.3"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.4"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.4"},
+    {"p": "5.1.0.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "5.1.0.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "5.1.1.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.4", "bp": False},
+    {"p": "6.0.2.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "6.0.2.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.3", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.4", "bp": False},
+    {"p": "99.0.0.1/32", "n": "1.1.1.1", "bp": True},
+    {"p": "99.0.0.2/32", "n": "3.3.3.3", "bp": True},
+    {"p": "99.0.0.3/32", "n": "192.168.1.2", "bp": True},
+    {"p": "99.0.0.4/32", "n": "192.168.2.2", "bp": True},
 ]
 bgpribRequireUnicastRoutes(
     "r4", "ipv4", "r4-cust1", "Customer 1 routes in r4 vrf (2)", want_r4_remote_cust1_routes
-)
+    , debug=False)
 
 want_r4_remote_cust2_routes = [
-    {"p": "5.1.0.0/24", "n": "1.1.1.1"},
-    {"p": "5.1.1.0/24", "n": "1.1.1.1"},
-    {"p": "5.1.0.0/24", "n": "3.3.3.3"},
-    {"p": "5.1.1.0/24", "n": "3.3.3.3"},
-    {"p": "6.0.1.0/24", "n": "1.1.1.1"},
-    {"p": "6.0.1.0/24", "n": "3.3.3.3"},
-    {"p": "6.0.2.0/24", "n": "1.1.1.1"},
-    {"p": "6.0.2.0/24", "n": "3.3.3.3"},
-    {"p": "99.0.0.1/32", "n": "1.1.1.1"},
-    {"p": "99.0.0.2/32", "n": "3.3.3.3"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.3"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.3"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.4"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.4"},
+    {"p": "5.1.0.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "5.1.0.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "5.1.1.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.3", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.4", "bp": False},
+    {"p": "6.0.2.0/24", "n": "1.1.1.1", "bp": True},
+    {"p": "6.0.2.0/24", "n": "3.3.3.3", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.3", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.4", "bp": False},
+    {"p": "99.0.0.1/32", "n": "1.1.1.1", "bp": True},
+    {"p": "99.0.0.2/32", "n": "3.3.3.3", "bp": True},
+    {"p": "99.0.0.3/32", "n": "192.168.1.2", "bp": True},
+    {"p": "99.0.0.4/32", "n": "192.168.2.2", "bp": True},
 ]
 bgpribRequireUnicastRoutes(
     "r4", "ipv4", "r4-cust2", "Customer 2 routes in r4 vrf (2)", want_r4_remote_cust2_routes
-)
+    , debug=False)
 
 
 #########################################################################
@@ -384,14 +393,16 @@ luCommand(
     10,
 )
 want = [
-    {"p": "5.1.2.0/24", "n": "192.168.1.1"},
-    {"p": "5.1.3.0/24", "n": "192.168.1.1"},
-    {"p": "5.4.2.0/24", "n": "192.168.1.1"},
-    {"p": "5.4.3.0/24", "n": "192.168.1.1"},
-    {"p": "6.0.1.0/24", "n": "99.0.0.1"},
-    {"p": "6.0.2.0/24", "n": "99.0.0.1"},
+    {"p": "5.1.0.0/24", "n": "99.0.0.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "99.0.0.1", "bp": True},
+    {"p": "5.1.2.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.1.3.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.4.2.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.4.3.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "99.0.0.1", "bp": True},
+    {"p": "6.0.2.0/24", "n": "99.0.0.1", "bp": True},
 ]
-bgpribRequireUnicastRoutes("ce1", "ipv4", "", "Cust 1 routes from remote", want)
+bgpribRequireUnicastRoutes("ce1", "ipv4", "", "Cust 1 routes from remote", want, debug=False)
 
 luCommand(
     "ce2",
@@ -402,16 +413,20 @@ luCommand(
     10,
 )
 want = [
-    {"p": "5.1.0.0/24", "n": "192.168.1.1"},
-    {"p": "5.1.1.0/24", "n": "192.168.1.1"},
-    {"p": "5.1.2.0/24", "n": "192.168.1.1"},
-    {"p": "5.1.3.0/24", "n": "192.168.1.1"},
-    {"p": "5.4.2.0/24", "n": "192.168.1.1"},
-    {"p": "5.4.3.0/24", "n": "192.168.1.1"},
-    {"p": "6.0.1.0/24", "n": "192.168.1.1"},
-    {"p": "6.0.2.0/24", "n": "192.168.1.1"},
+    {"p": "5.1.0.0/24", "n": "192.168.1.1", "bp": False},
+    {"p": "5.1.0.0/24", "n": "99.0.0.2", "bp": True},
+    {"p": "5.1.1.0/24", "n": "192.168.1.1", "bp": False},
+    {"p": "5.1.1.0/24", "n": "99.0.0.2", "bp": True},
+    {"p": "5.1.2.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.1.3.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.4.2.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.4.3.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "192.168.1.1", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.2", "bp": True},
+    {"p": "6.0.2.0/24", "n": "192.168.1.1", "bp": False},
+    {"p": "6.0.2.0/24", "n": "99.0.0.2", "bp": True},
 ]
-bgpribRequireUnicastRoutes("ce2", "ipv4", "", "Cust 1 routes from remote", want)
+bgpribRequireUnicastRoutes("ce2", "ipv4", "", "Cust 1 routes from remote", want, debug=False)
 
 # human readable output for debugging
 luCommand("r4", 'vtysh -c "show bgp vrf r4-cust1 ipv4 uni"')
@@ -430,14 +445,16 @@ luCommand(
 )
 # Requires bvl-bug-degenerate-no-label fix (FRR PR #2053)
 want = [
-    {"p": "5.1.0.0/24", "n": "192.168.1.1"},
-    {"p": "5.1.1.0/24", "n": "192.168.1.1"},
-    {"p": "5.4.2.0/24", "n": "192.168.1.1"},
-    {"p": "5.4.3.0/24", "n": "192.168.1.1"},
-    {"p": "6.0.1.0/24", "n": "192.168.1.1"},
-    {"p": "6.0.2.0/24", "n": "192.168.1.1"},
+    {"p": "5.1.0.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.4.2.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "5.4.3.0/24", "n": "192.168.1.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "192.168.1.1", "bp": False},
+    {"p": "6.0.2.0/24", "n": "192.168.1.1", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.3", "bp": True},
+    {"p": "6.0.2.0/24", "n": "99.0.0.3", "bp": True},
 ]
-bgpribRequireUnicastRoutes("ce3", "ipv4", "", "Cust 1 routes from remote", want)
+bgpribRequireUnicastRoutes("ce3", "ipv4", "", "Cust 1 routes from remote", want, debug=False)
 
 luCommand(
     "ce4",
@@ -448,13 +465,15 @@ luCommand(
     10,
 )
 want = [
-    {"p": "5.1.0.0/24", "n": "192.168.2.1"},
-    {"p": "5.1.1.0/24", "n": "192.168.2.1"},
-    {"p": "5.1.2.0/24", "n": "192.168.2.1"},
-    {"p": "5.1.3.0/24", "n": "192.168.2.1"},
-    {"p": "6.0.1.0/24", "n": "192.168.2.1"},
-    {"p": "6.0.2.0/24", "n": "192.168.2.1"},
+    {"p": "5.1.0.0/24", "n": "192.168.2.1", "bp": True},
+    {"p": "5.1.1.0/24", "n": "192.168.2.1", "bp": True},
+    {"p": "5.1.2.0/24", "n": "192.168.2.1", "bp": True},
+    {"p": "5.1.3.0/24", "n": "192.168.2.1", "bp": True},
+    {"p": "6.0.1.0/24", "n": "192.168.2.1", "bp": False},
+    {"p": "6.0.2.0/24", "n": "192.168.2.1", "bp": False},
+    {"p": "6.0.1.0/24", "n": "99.0.0.4", "bp": True},
+    {"p": "6.0.2.0/24", "n": "99.0.0.4", "bp": True},
 ]
 bgpribRequireUnicastRoutes(
-    "ce4", "ipv4", "ce4-cust2", "Cust 2 routes from remote", want
+    "ce4", "ipv4", "ce4-cust2", "Cust 2 routes from remote", want, debug=False
 )