Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55939b26 authored by Ido Schimmel's avatar Ido Schimmel Committed by David S. Miller
Browse files

selftests: forwarding: Add PVID test case for VXLAN with VLAN-aware bridges



When using VLAN-aware bridges with VXLAN, the VLAN that is mapped to the
VNI of the VXLAN device is that which is configured as "pvid untagged"
on the corresponding bridge port.

When these flags are toggled or when the VLAN is deleted entirely,
remote hosts should not be able to receive packets from the VTEP.

Add a test case for above mentioned scenarios.

Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0efe9ed9
Loading
Loading
Loading
Loading
+70 −0
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ export VXPORT
	test_flood
	test_unicast
	test_learning
	test_pvid
    "}

NUM_NETIFS=6
@@ -610,6 +611,75 @@ test_unicast()
	done
}

test_pvid()
{
	local -a expects=(0 0 0 0 0)
	local mac=de:ad:be:ef:13:37
	local dst=192.0.2.100
	local vid=10

	# Check that flooding works
	RET=0

	expects[0]=10; expects[1]=10; expects[3]=10
	vxlan_flood_test $mac $dst $vid "${expects[@]}"

	log_test "VXLAN: flood before pvid off"

	# Toggle PVID off and test that flood to remote hosts does not work
	RET=0

	bridge vlan add vid 10 dev vx10

	expects[0]=10; expects[1]=0; expects[3]=0
	vxlan_flood_test $mac $dst $vid "${expects[@]}"

	log_test "VXLAN: flood after pvid off"

	# Toggle PVID on and test that flood to remote hosts does work
	RET=0

	bridge vlan add vid 10 dev vx10 pvid untagged

	expects[0]=10; expects[1]=10; expects[3]=10
	vxlan_flood_test $mac $dst $vid "${expects[@]}"

	log_test "VXLAN: flood after pvid on"

	# Add a new VLAN and test that it does not affect flooding
	RET=0

	bridge vlan add vid 30 dev vx10

	expects[0]=10; expects[1]=10; expects[3]=10
	vxlan_flood_test $mac $dst $vid "${expects[@]}"

	bridge vlan del vid 30 dev vx10

	log_test "VXLAN: flood after vlan add"

	# Remove currently mapped VLAN and test that flood to remote hosts does
	# not work
	RET=0

	bridge vlan del vid 10 dev vx10

	expects[0]=10; expects[1]=0; expects[3]=0
	vxlan_flood_test $mac $dst $vid "${expects[@]}"

	log_test "VXLAN: flood after vlan delete"

	# Re-add the VLAN and test that flood to remote hosts does work
	RET=0

	bridge vlan add vid 10 dev vx10 pvid untagged

	expects[0]=10; expects[1]=10; expects[3]=10
	vxlan_flood_test $mac $dst $vid "${expects[@]}"

	log_test "VXLAN: flood after vlan re-add"
}

vxlan_ping_test()
{
	local ping_dev=$1; shift