selftests: net: Add test_vxlan_fdb_changelink.sh
authorPetr Machata <petrm@mellanox.com>
Tue, 18 Dec 2018 13:16:03 +0000 (13:16 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Dec 2018 05:18:26 +0000 (21:18 -0800)
Add a test to exercise the fix from the previous patch.

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/Makefile
tools/testing/selftests/net/test_vxlan_fdb_changelink.sh [new file with mode: 0755]

index 256d82d5fa8751aa400a1eef4f22e5c60b0f4dea..923570a9708ae730909920e321ee2880af0f8a8f 100644 (file)
@@ -7,6 +7,7 @@ CFLAGS += -I../../../../usr/include/
 TEST_PROGS := run_netsocktests run_afpackettests test_bpf.sh netdevice.sh rtnetlink.sh
 TEST_PROGS += fib_tests.sh fib-onlink-tests.sh pmtu.sh udpgso.sh ip_defrag.sh
 TEST_PROGS += udpgso_bench.sh fib_rule_tests.sh msg_zerocopy.sh psock_snd.sh
+TEST_PROGS += test_vxlan_fdb_changelink.sh
 TEST_PROGS_EXTENDED := in_netns.sh
 TEST_GEN_FILES =  socket
 TEST_GEN_FILES += psock_fanout psock_tpacket msg_zerocopy
diff --git a/tools/testing/selftests/net/test_vxlan_fdb_changelink.sh b/tools/testing/selftests/net/test_vxlan_fdb_changelink.sh
new file mode 100755 (executable)
index 0000000..2d442cd
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+
+# Check FDB default-remote handling across "ip link set".
+
+check_remotes()
+{
+       local what=$1; shift
+       local N=$(bridge fdb sh dev vx | grep 00:00:00:00:00:00 | wc -l)
+
+       echo -ne "expected two remotes after $what\t"
+       if [[ $N != 2 ]]; then
+               echo "[FAIL]"
+               EXIT_STATUS=1
+       else
+               echo "[ OK ]"
+       fi
+}
+
+ip link add name vx up type vxlan id 2000 dstport 4789
+bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.20 self permanent
+bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.30 self permanent
+check_remotes "fdb append"
+
+ip link set dev vx type vxlan remote 192.0.2.30
+check_remotes "link set"
+
+ip link del dev vx
+exit $EXIT_STATUS