aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorPetr Machata <petrm@mellanox.com>2018-11-19 16:11:18 +0000
committerDavid S. Miller <davem@davemloft.net>2018-11-19 17:59:44 -0800
commitbfd1e27038ab7e9ee3f730667cd0ae0e0eb23f88 (patch)
tree98fe009beb6ff4e57068d9ca0ef74b51d83190f9 /tools
parentselftests: forwarding: vxlan_bridge_1d: Add flood test (diff)
downloadlinux-dev-bfd1e27038ab7e9ee3f730667cd0ae0e0eb23f88.tar.xz
linux-dev-bfd1e27038ab7e9ee3f730667cd0ae0e0eb23f88.zip
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>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh b/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
index 1edd5189c41c..1a3486ec1d21 100755
--- a/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
+++ b/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
@@ -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"