mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 16:57:43 +00:00
tests: bgp_l3vpn_to_bgp_vrf - add bestpath checks
Signed-off-by: Lou Berger <lberger@labn.net>
This commit is contained in:
parent
b4bfe0aa47
commit
5df69602e7
@ -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
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user