OSDN Git Service

selftests: pmtu: Add pmtu_vti6_default_mtu test
authorStefano Brivio <sbrivio@redhat.com>
Sat, 17 Mar 2018 01:31:43 +0000 (02:31 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 18 Mar 2018 00:15:14 +0000 (20:15 -0400)
Same as pmtu_vti4_default_mtu, but on IPv6 with vti6.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/pmtu.sh

index be13b32..5d9af22 100755 (executable)
 #      endpoints. Check that MTU assigned to vti interface is the MTU of the
 #      lower layer (veth) minus additional lower layer headers (zero, for veth)
 #      minus IPv4 header length
+#
+# - pmtu_vti6_default_mtu
+#      Same as above, for IPv6
 
 tests="
        pmtu_vti6_exception     vti6: PMTU exceptions
-       pmtu_vti4_default_mtu   vti4: default MTU assignment"
+       pmtu_vti4_default_mtu   vti4: default MTU assignment
+       pmtu_vti6_default_mtu   vti6: default MTU assignment"
 
 NS_A="ns-$(mktemp -u XXXXXX)"
 NS_B="ns-$(mktemp -u XXXXXX)"
@@ -225,6 +229,18 @@ test_pmtu_vti4_default_mtu() {
        fi
 }
 
+test_pmtu_vti6_default_mtu() {
+       setup namespaces veth vti6 || return 2
+
+       # Check that MTU of vti device is MTU of veth minus IPv6 header length
+       veth_mtu="$(link_get_mtu "${ns_a}" veth_a)"
+       vti6_mtu="$(link_get_mtu "${ns_a}" vti6_a)"
+       if [ $((veth_mtu - vti6_mtu)) -ne 40 ]; then
+               err "  vti MTU ${vti6_mtu} is not veth MTU ${veth_mtu} minus IPv6 header length"
+               return 1
+       fi
+}
+
 trap cleanup EXIT
 
 exitcode=0