[ovs-dev] [PATCH 08/10] system-layer3-tunnels: Add basic VXLAN-GPE ping test case

Eric Garver e at erig.me
Mon Jul 10 19:39:58 UTC 2017


This also adds a new autotest file specifically for layer3 tunnels.

Signed-off-by: Eric Garver <e at erig.me>
---
 tests/automake.mk                   |  1 +
 tests/system-kmod-testsuite.at      |  1 +
 tests/system-layer3-tunnels.at      | 50 +++++++++++++++++++++++++++++++++++++
 tests/system-userspace-testsuite.at |  1 +
 4 files changed, 53 insertions(+)
 create mode 100644 tests/system-layer3-tunnels.at

diff --git a/tests/automake.mk b/tests/automake.mk
index 3118bbc278b7..be9dc966b147 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -115,6 +115,7 @@ SYSTEM_USERSPACE_TESTSUITE_AT = \
 SYSTEM_TESTSUITE_AT = \
 	tests/system-common-macros.at \
 	tests/system-ovn.at \
+	tests/system-layer3-tunnels.at \
 	tests/system-traffic.at
 
 SYSTEM_OFFLOADS_TESTSUITE_AT = \
diff --git a/tests/system-kmod-testsuite.at b/tests/system-kmod-testsuite.at
index bdf57c8946af..975b200342e6 100644
--- a/tests/system-kmod-testsuite.at
+++ b/tests/system-kmod-testsuite.at
@@ -23,4 +23,5 @@ m4_include([tests/system-common-macros.at])
 m4_include([tests/system-kmod-macros.at])
 
 m4_include([tests/system-traffic.at])
+m4_include([tests/system-layer3-tunnels.at])
 m4_include([tests/system-ovn.at])
diff --git a/tests/system-layer3-tunnels.at b/tests/system-layer3-tunnels.at
new file mode 100644
index 000000000000..585b63d94d5f
--- /dev/null
+++ b/tests/system-layer3-tunnels.at
@@ -0,0 +1,50 @@
+AT_BANNER([layer3-tunnels])
+
+AT_SETUP([layer3 - ping over VXLAN-GPE])
+OVS_TRAFFIC_VSWITCHD_START([set Bridge br0 other-config:hwaddr="00:12:34:56:78:bb"])
+OVS_CHECK_VXLAN_GPE()
+OVS_CHECK_IPROUTE_ENCAP()
+
+ADD_BR([br-underlay])
+
+ADD_NAMESPACES(at_ns0)
+
+dnl Set up underlay link from host into the namespace using veth pair.
+ADD_VETH(p0, at_ns0, br-underlay, "172.31.1.1/24")
+AT_CHECK([ip addr add dev br-underlay "172.31.1.100/24"])
+AT_CHECK([ip link set dev br-underlay up])
+
+dnl Set up tunnel endpoints on OVS outside the namespace and with a native
+dnl linux device inside the namespace.
+ADD_OVS_TUNNEL([vxlan], [br0], [at_vxlan0], [172.31.1.1], [10.1.1.2/24],
+               [options:packet_type=legacy_l3 options:exts=gpe])
+AT_CHECK([ip neigh add 10.1.1.1 lladdr 00:12:34:56:78:aa dev br0])
+NS_CHECK_EXEC([at_ns0], [ip link add dev at_vxlan1 type vxlan dstport 4789 external gpe])
+NS_CHECK_EXEC([at_ns0], [ip addr add dev at_vxlan1 10.1.1.1/24])
+NS_CHECK_EXEC([at_ns0], [ip link set dev at_vxlan1 mtu 1450 up])
+NS_CHECK_EXEC([at_ns0], [ip route add 10.1.1.2/32 encap ip id 0 dst 172.31.1.100 dev at_vxlan1])
+
+AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"])
+
+dnl Now add rules for OVS to forward to the tunnel and local port
+AT_CHECK([ovs-ofctl add-flow br0 "priority=1 action=drop"])
+AT_CHECK([ovs-ofctl add-flow br0 "priority=100 ip,nw_dst=10.1.1.1 action=output:at_vxlan0"])
+AT_CHECK([ovs-ofctl add-flow br0 "priority=100 ip,nw_dst=10.1.1.2 action=mod_dl_src:00:12:34:56:78:aa,mod_dl_dst:00:12:34:56:78:bb,local"])
+
+OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.1.1.2])
+
+dnl First, check the underlay
+NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+
+dnl Okay, now check the overlay with different packet sizes
+NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+
+OVS_TRAFFIC_VSWITCHD_STOP
+AT_CLEANUP
diff --git a/tests/system-userspace-testsuite.at b/tests/system-userspace-testsuite.at
index e81f5a445483..a89536f1d381 100644
--- a/tests/system-userspace-testsuite.at
+++ b/tests/system-userspace-testsuite.at
@@ -23,5 +23,6 @@ m4_include([tests/system-userspace-macros.at])
 m4_include([tests/system-common-macros.at])
 
 m4_include([tests/system-traffic.at])
+m4_include([tests/system-layer3-tunnels.at])
 m4_include([tests/system-ovn.at])
 m4_include([tests/system-userspace-packet-type-aware.at])
-- 
2.12.0



More information about the dev mailing list