From cfe17b43c10d9d14510e77d21cc463c34c6d7c34 Mon Sep 17 00:00:00 2001 From: Joe Stringer Date: Wed, 29 Jul 2015 12:56:06 -0700 Subject: [PATCH] kmod-traffic: Expand sanity tests. The initial sanity test only checked IPv4 without IP fragments. This patch adds additional tests using IPv6 and VLANs with IP fragments and expands the existing test to be more strict. Signed-off-by: Joe Stringer Acked-by: Daniele Di Proietto --- tests/kmod-macros.at | 11 +++++ tests/kmod-traffic.at | 93 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/tests/kmod-macros.at b/tests/kmod-macros.at index 582494019..eef1263bb 100644 --- a/tests/kmod-macros.at +++ b/tests/kmod-macros.at @@ -77,3 +77,14 @@ m4_define([ADD_VETH], AT_CHECK([ip netns exec $2 ip link set dev $1 up]) ] ) + +# ADD_VLAN([port], [namespace], [vlan-id], [ip-addr]) +# +# Add a VLAN device named 'port' within 'namespace'. It will be configured +# with the ID 'vlan-id' and the address 'ip-addr'. +m4_define([ADD_VLAN], + [ AT_CHECK([ip netns exec $2 ip link add link $1 name $1.$3 type vlan id $3]) + AT_CHECK([ip netns exec $2 ip link set dev $1.$3 up]) + AT_CHECK([ip netns exec $2 ip addr add dev $1.$3 $4]) + ] +) diff --git a/tests/kmod-traffic.at b/tests/kmod-traffic.at index f7783be85..9df8b62ad 100644 --- a/tests/kmod-traffic.at +++ b/tests/kmod-traffic.at @@ -11,6 +11,97 @@ ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") AT_CAPTURE_FILE([ping.output]) AT_CHECK([ip netns exec at_ns0 bash -c "ping -q -c 3 -i 0.3 -w 2 10.1.1.2 > ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping -s 1600 -q -c 3 -i 0.3 -w 2 10.1.1.2 >> ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.2 >> ping.output"]) -OVS_KMOD_VSWITCHD_STOP([], DEL_NAMESPACES(at_ns0, at_ns1)) +AT_CHECK([cat ping.output | grep "transmitted" | sed 's/time.*ms$/time 0ms/'], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_KMOD_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([kmod - ping between two ports on vlan]) +OVS_KMOD_VSWITCHD_START( + [set-fail-mode br0 standalone -- ]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") + +ADD_VLAN(p0, at_ns0, 100, "10.2.2.1/24") +ADD_VLAN(p1, at_ns1, 100, "10.2.2.2/24") + +AT_CAPTURE_FILE([ping.output]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping -q -c 3 -i 0.3 -w 2 10.2.2.2 > ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 >> ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping -s 3200 -q -c 3 -i 0.3 -w 2 10.2.2.2 >> ping.output"]) + +AT_CHECK([cat ping.output | grep "transmitted" | sed 's/time.*ms$/time 0ms/'], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_KMOD_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([kmod - ping6 between two ports]) +OVS_KMOD_VSWITCHD_START( + [set-fail-mode br0 standalone -- ]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "fc00::1/96") +ADD_VETH(p1, at_ns1, br0, "fc00::2/96") + +dnl Without this sleep, we get occasional failures due to the following error: +dnl "connect: Cannot assign requested address" +sleep 2; + +AT_CAPTURE_FILE([ping.output]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping6 -q -c 3 -i 0.3 -w 2 fc00::2 > ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00::2 >> ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 >> ping.output"]) + +AT_CHECK([cat ping.output | grep "transmitted" | sed 's/time.*ms$/time 0ms/'], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_KMOD_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([kmod - ping6 between two ports on vlan]) +OVS_KMOD_VSWITCHD_START( + [set-fail-mode br0 standalone -- ]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "fc00::1/96") +ADD_VETH(p1, at_ns1, br0, "fc00::2/96") + +ADD_VLAN(p0, at_ns0, 100, "fc00:1::1/96") +ADD_VLAN(p1, at_ns1, 100, "fc00:1::2/96") + +dnl Without this sleep, we get occasional failures due to the following error: +dnl "connect: Cannot assign requested address" +sleep 2; + +AT_CAPTURE_FILE([ping.output]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping6 -q -c 3 -i 0.3 -w 2 fc00:1::2 > ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00:1::2 >> ping.output"]) +AT_CHECK([ip netns exec at_ns0 bash -c "ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 >> ping.output"]) + +AT_CHECK([cat ping.output | grep "transmitted" | sed 's/time.*ms$/time 0ms/'], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_KMOD_VSWITCHD_STOP AT_CLEANUP -- 2.20.1