Commit bfd1e270 authored by Petr Machata's avatar Petr Machata Committed by David S. Miller
Browse files

selftests: forwarding: vxlan_bridge_1d: Add unicast test



Test that when sending traffic to a learned MAC address, the traffic is
forwarded accurately only to the right endpoint.

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 edaa117e
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ export VXPORT
: ${ALL_TESTS:="
	ping_ipv4
	test_flood
	test_unicast
    "}

NUM_NETIFS=6
@@ -263,6 +264,10 @@ setup_prepare()
	vrp2_create
	ns1_create
	ns2_create

	r1_mac=$(in_ns ns1 mac_get w2)
	r2_mac=$(in_ns ns2 mac_get w2)
	h2_mac=$(mac_get $h2)
}

cleanup()
@@ -394,6 +399,55 @@ test_flood()
	__test_flood de:ad:be:ef:13:37 192.0.2.100 "flood"
}

vxlan_fdb_add_del()
{
	local add_del=$1; shift
	local mac=$1; shift
	local dev=$1; shift
	local dst=$1; shift

	bridge fdb $add_del dev $dev $mac self static permanent \
		${dst:+dst} $dst 2>/dev/null
	bridge fdb $add_del dev $dev $mac master static 2>/dev/null
}

__test_unicast()
{
	local mac=$1; shift
	local dst=$1; shift
	local hit_idx=$1; shift
	local what=$1; shift

	RET=0

	local -a expects=(0 0 0)
	expects[$hit_idx]=10

	vxlan_flood_test $mac $dst "${expects[@]}"

	log_test "VXLAN: $what"
}

test_unicast()
{
	local -a targets=("$h2_mac $h2"
			  "$r1_mac vx1 192.0.2.34"
			  "$r2_mac vx1 192.0.2.50")
	local target

	for target in "${targets[@]}"; do
		vxlan_fdb_add_del add $target
	done

	__test_unicast $h2_mac 192.0.2.2 0 "local MAC unicast"
	__test_unicast $r1_mac 192.0.2.3 1 "remote MAC 1 unicast"
	__test_unicast $r2_mac 192.0.2.4 2 "remote MAC 2 unicast"

	for target in "${targets[@]}"; do
		vxlan_fdb_add_del del $target
	done
}

test_all()
{
	echo "Running tests with UDP port $VXPORT"