mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 21:47:15 +02:00
topotests: bgp_evpn_rt5, add test with match evpn vni command
Add a test that ensures that the 'match evpn vni' command works with bgp evpn rt5 updates. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
parent
4f65107d20
commit
0d5bd461af
|
@ -5,11 +5,17 @@ router bgp 65000
|
||||||
bgp router-id 192.168.100.21
|
bgp router-id 192.168.100.21
|
||||||
bgp log-neighbor-changes
|
bgp log-neighbor-changes
|
||||||
no bgp default ipv4-unicast
|
no bgp default ipv4-unicast
|
||||||
|
no bgp ebgp-requires-policy
|
||||||
neighbor 192.168.100.41 remote-as 65000
|
neighbor 192.168.100.41 remote-as 65000
|
||||||
neighbor 192.168.100.41 capability extended-nexthop
|
neighbor 192.168.100.41 capability extended-nexthop
|
||||||
|
neighbor 192.168.100.61 remote-as 65500
|
||||||
|
neighbor 192.168.100.61 capability extended-nexthop
|
||||||
!
|
!
|
||||||
address-family l2vpn evpn
|
address-family l2vpn evpn
|
||||||
neighbor 192.168.100.41 activate
|
neighbor 192.168.100.41 activate
|
||||||
|
neighbor 192.168.100.41 route-map rmap_r1 in
|
||||||
|
neighbor 192.168.100.61 activate
|
||||||
|
neighbor 192.168.100.61 route-map rmap_r3 in
|
||||||
advertise-all-vni
|
advertise-all-vni
|
||||||
exit-address-family
|
exit-address-family
|
||||||
!
|
!
|
||||||
|
@ -28,3 +34,9 @@ router bgp 65000 vrf r1-vrf-101
|
||||||
advertise ipv6 unicast
|
advertise ipv6 unicast
|
||||||
exit-address-family
|
exit-address-family
|
||||||
!
|
!
|
||||||
|
route-map rmap_r3 deny 1
|
||||||
|
match evpn vni 102
|
||||||
|
exit
|
||||||
|
route-map rmap_r1 permit 1
|
||||||
|
match evpn vni 101
|
||||||
|
exit
|
||||||
|
|
31
tests/topotests/bgp_evpn_rt5/r3/bgpd.conf
Normal file
31
tests/topotests/bgp_evpn_rt5/r3/bgpd.conf
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
! debug bgp neighbor-events
|
||||||
|
! debug bgp updates
|
||||||
|
! debug bgp zebra
|
||||||
|
router bgp 65500
|
||||||
|
bgp router-id 192.168.100.61
|
||||||
|
bgp log-neighbor-changes
|
||||||
|
no bgp default ipv4-unicast
|
||||||
|
no bgp ebgp-requires-policy
|
||||||
|
neighbor 192.168.100.21 remote-as 65000
|
||||||
|
neighbor 192.168.100.21 capability extended-nexthop
|
||||||
|
!
|
||||||
|
address-family l2vpn evpn
|
||||||
|
neighbor 192.168.100.21 activate
|
||||||
|
advertise-all-vni
|
||||||
|
exit-address-family
|
||||||
|
!
|
||||||
|
router bgp 65000 vrf r3-vrf-102
|
||||||
|
bgp router-id 192.168.100.61
|
||||||
|
bgp log-neighbor-changes
|
||||||
|
no bgp network import-check
|
||||||
|
address-family ipv4 unicast
|
||||||
|
network 192.168.102.102/32
|
||||||
|
exit-address-family
|
||||||
|
address-family ipv6 unicast
|
||||||
|
network fd00:102::1/128
|
||||||
|
exit-address-family
|
||||||
|
address-family l2vpn evpn
|
||||||
|
advertise ipv4 unicast
|
||||||
|
advertise ipv6 unicast
|
||||||
|
exit-address-family
|
||||||
|
!
|
13
tests/topotests/bgp_evpn_rt5/r3/zebra.conf
Normal file
13
tests/topotests/bgp_evpn_rt5/r3/zebra.conf
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
vrf r3-vrf-102
|
||||||
|
vni 102
|
||||||
|
exit-vrf
|
||||||
|
!
|
||||||
|
interface r3-eth0
|
||||||
|
ip address 192.168.100.61/24
|
||||||
|
!
|
||||||
|
interface loop102 vrf r3-vrf-102
|
||||||
|
ip address 192.168.102.61/32
|
||||||
|
ipv6 address fd00:6::1/128
|
||||||
|
!
|
||||||
|
|
||||||
|
|
|
@ -42,10 +42,12 @@ def build_topo(tgen):
|
||||||
|
|
||||||
tgen.add_router("r1")
|
tgen.add_router("r1")
|
||||||
tgen.add_router("r2")
|
tgen.add_router("r2")
|
||||||
|
tgen.add_router("r3")
|
||||||
|
|
||||||
switch = tgen.add_switch("s1")
|
switch = tgen.add_switch("s1")
|
||||||
switch.add_link(tgen.gears["r1"])
|
switch.add_link(tgen.gears["r1"])
|
||||||
switch.add_link(tgen.gears["r2"])
|
switch.add_link(tgen.gears["r2"])
|
||||||
|
switch.add_link(tgen.gears["r3"])
|
||||||
|
|
||||||
switch = tgen.add_switch("s2")
|
switch = tgen.add_switch("s2")
|
||||||
switch.add_link(tgen.gears["r1"])
|
switch.add_link(tgen.gears["r1"])
|
||||||
|
@ -53,6 +55,9 @@ def build_topo(tgen):
|
||||||
switch = tgen.add_switch("s3")
|
switch = tgen.add_switch("s3")
|
||||||
switch.add_link(tgen.gears["r2"])
|
switch.add_link(tgen.gears["r2"])
|
||||||
|
|
||||||
|
switch = tgen.add_switch("s4")
|
||||||
|
switch.add_link(tgen.gears["r3"])
|
||||||
|
|
||||||
|
|
||||||
def setup_module(mod):
|
def setup_module(mod):
|
||||||
"Sets up the pytest environment"
|
"Sets up the pytest environment"
|
||||||
|
@ -71,16 +76,16 @@ def setup_module(mod):
|
||||||
)
|
)
|
||||||
return pytest.skip("Skipping BGP EVPN RT5 NETNS Test. Kernel not supported")
|
return pytest.skip("Skipping BGP EVPN RT5 NETNS Test. Kernel not supported")
|
||||||
|
|
||||||
# create VRF vrf-101 on R1 and R2
|
# create VRF vrf-101 on R1, R2, R3
|
||||||
# create loop101
|
# create loop101
|
||||||
cmds_vrflite = [
|
cmds_vrflite = [
|
||||||
"ip link add {}-vrf-101 type vrf table 101",
|
"ip link add {0}-vrf-{1} type vrf table {1}",
|
||||||
"ip ru add oif {}-vrf-101 table 101",
|
"ip ru add oif {0}-vrf-{1} table {1}",
|
||||||
"ip ru add iif {}-vrf-101 table 101",
|
"ip ru add iif {0}-vrf-{1} table {1}",
|
||||||
"ip link set dev {}-vrf-101 up",
|
"ip link set dev {0}-vrf-{1} up",
|
||||||
"ip link add loop101 type dummy",
|
"ip link add loop{1} type dummy",
|
||||||
"ip link set dev loop101 master {}-vrf-101",
|
"ip link set dev loop{1} master {0}-vrf-{1}",
|
||||||
"ip link set dev loop101 up",
|
"ip link set dev loop{1} up",
|
||||||
]
|
]
|
||||||
|
|
||||||
cmds_r2 = [ # config routing 101
|
cmds_r2 = [ # config routing 101
|
||||||
|
@ -92,6 +97,15 @@ def setup_module(mod):
|
||||||
"ip link set vxlan-101 up type bridge_slave learning off flood off mcast_flood off",
|
"ip link set vxlan-101 up type bridge_slave learning off flood off mcast_flood off",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
cmds_r3 = [ # config routing 102
|
||||||
|
"ip link add name bridge-102 up type bridge stp_state 0",
|
||||||
|
"ip link set bridge-102 master {}-vrf-102",
|
||||||
|
"ip link set dev bridge-102 up",
|
||||||
|
"ip link add name vxlan-102 type vxlan id 102 dstport 4789 dev r3-eth0 local 192.168.100.61",
|
||||||
|
"ip link set dev vxlan-102 master bridge-102",
|
||||||
|
"ip link set vxlan-102 up type bridge_slave learning off flood off mcast_flood off",
|
||||||
|
]
|
||||||
|
|
||||||
# cmds_r1_netns_method3 = [
|
# cmds_r1_netns_method3 = [
|
||||||
# "ip link add name vxlan-{1} type vxlan id {1} dstport 4789 dev {0}-eth0 local 192.168.100.21",
|
# "ip link add name vxlan-{1} type vxlan id {1} dstport 4789 dev {0}-eth0 local 192.168.100.21",
|
||||||
# "ip link set dev vxlan-{1} netns {0}-vrf-{1}",
|
# "ip link set dev vxlan-{1} netns {0}-vrf-{1}",
|
||||||
|
@ -111,8 +125,8 @@ def setup_module(mod):
|
||||||
|
|
||||||
router = tgen.gears["r2"]
|
router = tgen.gears["r2"]
|
||||||
for cmd in cmds_vrflite:
|
for cmd in cmds_vrflite:
|
||||||
logger.info("cmd to r2: " + cmd.format("r2"))
|
logger.info("cmd to r2: " + cmd.format("r2", 101))
|
||||||
output = router.cmd_raises(cmd.format("r2"))
|
output = router.cmd_raises(cmd.format("r2", 101))
|
||||||
logger.info("result: " + output)
|
logger.info("result: " + output)
|
||||||
|
|
||||||
for cmd in cmds_r2:
|
for cmd in cmds_r2:
|
||||||
|
@ -120,6 +134,17 @@ def setup_module(mod):
|
||||||
output = router.cmd_raises(cmd.format("r2"))
|
output = router.cmd_raises(cmd.format("r2"))
|
||||||
logger.info("result: " + output)
|
logger.info("result: " + output)
|
||||||
|
|
||||||
|
router = tgen.gears["r3"]
|
||||||
|
for cmd in cmds_vrflite:
|
||||||
|
logger.info("cmd to r3: " + cmd.format("r3", 102))
|
||||||
|
output = router.cmd_raises(cmd.format("r3", 102))
|
||||||
|
logger.info("result: " + output)
|
||||||
|
|
||||||
|
for cmd in cmds_r3:
|
||||||
|
logger.info("cmd to r3: " + cmd.format("r3"))
|
||||||
|
output = router.cmd_raises(cmd.format("r3"))
|
||||||
|
logger.info("result: " + output)
|
||||||
|
|
||||||
tgen.net["r1"].cmd_raises(
|
tgen.net["r1"].cmd_raises(
|
||||||
"ip link add name vxlan-101 type vxlan id 101 dstport 4789 dev r1-eth0 local 192.168.100.21"
|
"ip link add name vxlan-101 type vxlan id 101 dstport 4789 dev r1-eth0 local 192.168.100.21"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue