mirror of
https://github.com/torvalds/linux.git
synced 2024-09-24 08:53:09 +00:00
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: Petr Machata <petrm@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
edaa117efe
commit
bfd1e27038
|
@ -67,6 +67,7 @@ export VXPORT
|
||||||
: ${ALL_TESTS:="
|
: ${ALL_TESTS:="
|
||||||
ping_ipv4
|
ping_ipv4
|
||||||
test_flood
|
test_flood
|
||||||
|
test_unicast
|
||||||
"}
|
"}
|
||||||
|
|
||||||
NUM_NETIFS=6
|
NUM_NETIFS=6
|
||||||
|
@ -263,6 +264,10 @@ setup_prepare()
|
||||||
vrp2_create
|
vrp2_create
|
||||||
ns1_create
|
ns1_create
|
||||||
ns2_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()
|
cleanup()
|
||||||
|
@ -394,6 +399,55 @@ test_flood()
|
||||||
__test_flood de:ad:be:ef:13:37 192.0.2.100 "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()
|
test_all()
|
||||||
{
|
{
|
||||||
echo "Running tests with UDP port $VXPORT"
|
echo "Running tests with UDP port $VXPORT"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user