diff mbox

[ovs-dev] system-traffic: Fix clone test.

Message ID 1482358921-51669-1-git-send-email-u9012063@gmail.com
State Accepted
Headers show

Commit Message

William Tu Dec. 21, 2016, 10:22 p.m. UTC
The existing clone test fails the system testsuite.  The patch provides
fix, removes the unused at_ns2, and uses "ovs-ofctl monitor" to validate
the packet contents after actions inside a clone.

Signed-off-by: William Tu <u9012063@gmail.com>
---
 tests/system-common-macros.at |  6 ++++++
 tests/system-traffic.at       | 25 ++++++++++++++-----------
 2 files changed, 20 insertions(+), 11 deletions(-)

Comments

Joe Stringer Dec. 22, 2016, 12:43 a.m. UTC | #1
On 21 December 2016 at 14:22, William Tu <u9012063@gmail.com> wrote:
> The existing clone test fails the system testsuite.  The patch provides
> fix, removes the unused at_ns2, and uses "ovs-ofctl monitor" to validate
> the packet contents after actions inside a clone.
>
> Signed-off-by: William Tu <u9012063@gmail.com>

LGTM thanks! Applied to master.
diff mbox

Patch

diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at
index d41de23..64640b4 100644
--- a/tests/system-common-macros.at
+++ b/tests/system-common-macros.at
@@ -204,6 +204,12 @@  m4_define([ADD_NATIVE_TUNNEL],
 #
 m4_define([FORMAT_PING], [grep "transmitted" | sed 's/time.*ms$/time 0ms/'])
 
+# STRIP_MONITOR_CSUM([])
+#
+# Strip the csum value from ovs-ofctl monitor.
+#
+m4_define([STRIP_MONITOR_CSUM], [grep "csum:" | sed 's/csum:.*/csum: <skip>/'])
+
 # FORMAT_CT([ip-addr])
 #
 # Strip content from the piped input which would differ from test to test
diff --git a/tests/system-traffic.at b/tests/system-traffic.at
index d70c5c3..7f55783 100644
--- a/tests/system-traffic.at
+++ b/tests/system-traffic.at
@@ -344,24 +344,27 @@  ADD_NAMESPACES(at_ns0, at_ns1, at_ns2)
 
 ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24")
 ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24")
-ADD_VETH(p2, at_ns2, br0, "10.1.1.3/24")
 
-AT_CHECK([ovs-vsctl -- set interface ovs-p0 ofport_request=1])
-AT_CHECK([ovs-vsctl -- set interface ovs-p1 ofport_request=2])
-AT_CHECK([ovs-vsctl -- set interface ovs-p2 ofport_request=3])
+AT_CHECK([ovs-vsctl -- set interface ovs-p0 ofport_request=1 \
+                    -- set interface ovs-p1 ofport_request=2])
 
-dnl verify that the clone(...) won't affect the original packet, so ping still works OK
-dnl without 'output' in 'clone()'
-AT_CHECK([ovs-ofctl add-flow br0 "in_port=1,ip,actions=clone(mod_dl_dst(50:54:00:00:00:0a),set_field:192.168.3.3->ip_dst), output:2"])
-dnl with 'output' in 'clone()'
-AT_CHECK([ovs-ofctl add-flow br0 "in_port=2,ip,actions=clone(mod_dl_dst(50:54:00:00:00:0b),set_field:192.168.4.4->ip_dst, output:3), output:1"])
+AT_DATA([flows.txt], [dnl
+priority=1 actions=NORMAL
+priority=10 in_port=1,ip,actions=clone(mod_dl_dst(50:54:00:00:00:0a),set_field:192.168.3.3->ip_dst), output:2
+priority=10 in_port=2,ip,actions=clone(mod_dl_src(ae:c6:7e:54:8d:4d),mod_dl_dst(50:54:00:00:00:0b),set_field:192.168.4.4->ip_dst, controller), output:1
+])
+AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
+AT_CHECK([ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log])
 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
 ])
 
-NETNS_DAEMONIZE([at_ns1], [[$PYTHON $srcdir/test-l7.py]], [http0.pid])
-NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
+AT_CHECK([cat ofctl_monitor.log | STRIP_MONITOR_CSUM], [0], [dnl
+icmp,vlan_tci=0x0000,dl_src=ae:c6:7e:54:8d:4d,dl_dst=50:54:00:00:00:0b,nw_src=10.1.1.2,nw_dst=192.168.4.4,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=0,icmp_code=0 icmp_csum: <skip>
+icmp,vlan_tci=0x0000,dl_src=ae:c6:7e:54:8d:4d,dl_dst=50:54:00:00:00:0b,nw_src=10.1.1.2,nw_dst=192.168.4.4,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=0,icmp_code=0 icmp_csum: <skip>
+icmp,vlan_tci=0x0000,dl_src=ae:c6:7e:54:8d:4d,dl_dst=50:54:00:00:00:0b,nw_src=10.1.1.2,nw_dst=192.168.4.4,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=0,icmp_code=0 icmp_csum: <skip>
+])
 
 OVS_TRAFFIC_VSWITCHD_STOP
 AT_CLEANUP