Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
Thanks Darrell, that is very helpful. Come up with v2 soon. Yifeng On Mon, Aug 13, 2018 at 9:50 AM, Darrell Ball wrote: > clarification: the running time is per test. > > > On Mon, Aug 13, 2018 at 9:47 AM, Darrell Ball wrote: > >> With a few minor tweaks, below, the running time was brought down from >> 1.5-2 minutes to 15-25 seconds per test. >> >> I just changed the tcpdump filter (many variations are possible though) >> and eliminated some redundant tcpdump checks >> since they are implied. >> >> Thanks Darrell >> >> >> >> dball@ubuntu:~/ovs$ git diff tests/system-traffic.at >> diff --git a/tests/system-traffic.at b/tests/system-traffic.at >> index 1eeaff0..03c3a4f 100644 >> --- a/tests/system-traffic.at >> +++ b/tests/system-traffic.at >> @@ -596,7 +596,7 @@ AT_CHECK([ip link set dev br-underlay up]) >> dnl Set up tunnel endpoints on OVS outside the namespace. >> ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24]) >> >> -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & >> +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & >> sleep 1 >> >> dnl First, check the underlay. >> @@ -611,9 +611,6 @@ dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], >> [172.31.1.100], [10.1.1.1/2 >> dnl Now, check the overlay by sending out raw arp and icmp packets. >> ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff000308004542ec2c4000402ff3bca >> c1f0101ac1f01646558f2ff00040806000108000 >> 6040001f2ff00040a0101010a010164 actions=NORMAL" >> >> -sleep 1 >> -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > >> 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at >> f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null]) >> - >> ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff00030800457aec8e4000402ff322a >> c1f0101ac1f01646558f2ff0001f2ff0004080045545 >> 48f40004001cfb30a0101010a0101640800e6e829270003e1a3435b0 >> 000ff1a0500101112131415161718191a1b1c1d1e1f202122232 >> 425262728292a2b2c2d2e2f3031323334353637 actions=NORMAL" >> >> sleep 1 >> @@ -643,7 +640,7 @@ dnl Set up tunnel endpoints on OVS outside the >> namespace and emulate a native >> dnl linux device inside the namespace. >> ADD_OVS_TUNNEL([erspan], [br0], [at_erspan0], [172.31.1.1], [ >> 10.1.1.100/24], [options:key=1 options:erspan_ver=1 >> options:erspan_idx=7]) >> >> -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & >> +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & >> sleep 1 >> >> dnl First, check the underlay >> @@ -654,11 +651,6 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 >> 172.31.1.100 | FORMAT_PING], [ >> dnl Okay, now send out an arp request from 10.1.1.1 for 10.1.1.100 in >> erspan. >> ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff00030800454e151d4000402fcac0a >> c1f0101ac1f0164100088be000610010007f >> 2ff000408060001080006040001f2ff00040a0101010a010164 >> actions=normal" >> >> -sleep 1 >> -dnl 0002 is arp reply, followed by mac address of 10.1.1.100. >> -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "f2ff 0001 0806" 2>&1 >> 1>/dev/null]) >> -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0800 0604 0002 f2ff >> 0001 0a01" 2>&1 1>/dev/null]) >> - >> dnl Okay, now check the overlay with raw icmp packets. >> AT_FAIL_IF([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > >> 172.31.1.1: GREv0, .* length 1258" 2>&1 1>/dev/null]) >> >> @@ -691,7 +683,7 @@ dnl Set up tunnel endpoints on OVS outside the >> namespace and simulate a native >> dnl linux device inside the namespace. >> ADD_OVS_TUNNEL([erspan], [br0], [at_erspan0], [172.31.1.1], [ >> 10.1.1.100/24], [options:key=1 options:erspan_ver=2 options:erspan_dir=1 >> options:erspan_hwid=0x7]) >> >> -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & >> +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & >> sleep 1 >> >> dnl First, check the underlay >> @@ -702,10 +694,6 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 >> 172.31.1.100 | FORMAT_PING], [ >> dnl Okay, send raw arp request and icmp echo request. >> ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff000308004552373d4000402fa89ca >> c1f0101ac1f0164100088be000620016f54b4178078f >> 2ff000408060001080006040001f2ff00040a0101010a010164 >> actions=normal" >> >> -sleep 1 >> -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0806 0001 0800 0604 0002 >> f2ff " 2>&1 1>/dev/null]) >> -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0a01 0164 f2ff 0004 >> 0a01 0101" 2>&1 1>/dev/null]) >> - >> ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff00030800459287e14000402f57b8a >> c1f0101ac1f0164100088be00052001144cd5a48078f2ff0 >>
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
clarification: the running time is per test. On Mon, Aug 13, 2018 at 9:47 AM, Darrell Ball wrote: > With a few minor tweaks, below, the running time was brought down from > 1.5-2 minutes to 15-25 seconds per test. > > I just changed the tcpdump filter (many variations are possible though) > and eliminated some redundant tcpdump checks > since they are implied. > > Thanks Darrell > > > > dball@ubuntu:~/ovs$ git diff tests/system-traffic.at > diff --git a/tests/system-traffic.at b/tests/system-traffic.at > index 1eeaff0..03c3a4f 100644 > --- a/tests/system-traffic.at > +++ b/tests/system-traffic.at > @@ -596,7 +596,7 @@ AT_CHECK([ip link set dev br-underlay up]) > dnl Set up tunnel endpoints on OVS outside the namespace. > ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24]) > > -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & > +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & > sleep 1 > > dnl First, check the underlay. > @@ -611,9 +611,6 @@ dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], > [172.31.1.100], [10.1.1.1/2 > dnl Now, check the overlay by sending out raw arp and icmp packets. > ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff000308004542ec2c4000402ff3bcac1f0101 > ac1f01646558f2ff000408060001080006040001 > f2ff00040a0101010a010164 actions=NORMAL" > > -sleep 1 > -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > > 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at > f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null]) > - > ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff00030800457aec8e4000402ff322ac1f0101 > ac1f01646558f2ff0001f2ff000408004554548f4000 > 4001cfb30a0101010a0101640800e6e829270003e1a3435bff1a > 0500101112131415161718191a1b1c1d1e1f2021222324252627 > 28292a2b2c2d2e2f3031323334353637 actions=NORMAL" > > sleep 1 > @@ -643,7 +640,7 @@ dnl Set up tunnel endpoints on OVS outside the > namespace and emulate a native > dnl linux device inside the namespace. > ADD_OVS_TUNNEL([erspan], [br0], [at_erspan0], [172.31.1.1], [ > 10.1.1.100/24], [options:key=1 options:erspan_ver=1 options:erspan_idx=7]) > > -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & > +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & > sleep 1 > > dnl First, check the underlay > @@ -654,11 +651,6 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 > 172.31.1.100 | FORMAT_PING], [ > dnl Okay, now send out an arp request from 10.1.1.1 for 10.1.1.100 in > erspan. > ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff00030800454e151d4000402fcac0ac1f0101 > ac1f0164100088be000610010007f2ff > 000408060001080006040001f2ff00040a0101010a010164 > actions=normal" > > -sleep 1 > -dnl 0002 is arp reply, followed by mac address of 10.1.1.100. > -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "f2ff 0001 0806" 2>&1 > 1>/dev/null]) > -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0800 0604 0002 f2ff > 0001 0a01" 2>&1 1>/dev/null]) > - > dnl Okay, now check the overlay with raw icmp packets. > AT_FAIL_IF([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > > 172.31.1.1: GREv0, .* length 1258" 2>&1 1>/dev/null]) > > @@ -691,7 +683,7 @@ dnl Set up tunnel endpoints on OVS outside the > namespace and simulate a native > dnl linux device inside the namespace. > ADD_OVS_TUNNEL([erspan], [br0], [at_erspan0], [172.31.1.1], [ > 10.1.1.100/24], [options:key=1 options:erspan_ver=2 options:erspan_dir=1 > options:erspan_hwid=0x7]) > > -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & > +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & > sleep 1 > > dnl First, check the underlay > @@ -702,10 +694,6 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 > 172.31.1.100 | FORMAT_PING], [ > dnl Okay, send raw arp request and icmp echo request. > ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff000308004552373d4000402fa89cac1f0101 > ac1f0164100088be000620016f54b4178078 > f2ff000408060001080006040001f2ff00040a0101010a010164 > actions=normal" > > -sleep 1 > -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0806 0001 0800 0604 0002 > f2ff " 2>&1 1>/dev/null]) > -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0a01 0164 f2ff 0004 > 0a01 0101" 2>&1 1>/dev/null]) > - > ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff00030800459287e14000402f57b8ac1f0101 > ac1f0164100088be00052001144cd5a48078f2ff0001 > f2ff00040800455c38d640004001eb640a0101010a0101640800 > 5e57585f0001df6c6b5b45bc05001011121314151617 > 18191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f > actions=normal" > > sleep
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
With a few minor tweaks, below, the running time was brought down from 1.5-2 minutes to 15-25 seconds. I just changed the tcpdump filter (many variations are possible though) and eliminated some redundant tcpdump checks since they are implied. Thanks Darrell dball@ubuntu:~/ovs$ git diff tests/system-traffic.at diff --git a/tests/system-traffic.at b/tests/system-traffic.at index 1eeaff0..03c3a4f 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -596,7 +596,7 @@ AT_CHECK([ip link set dev br-underlay up]) dnl Set up tunnel endpoints on OVS outside the namespace. ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24]) -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & sleep 1 dnl First, check the underlay. @@ -611,9 +611,6 @@ dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [10.1.1.1/2 dnl Now, check the overlay by sending out raw arp and icmp packets. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff0002f2ff000308004542ec2c4000402ff3bcac1f0101ac1f01646558f2ff000408060001080006040001f2ff00040a0101010a010164 actions=NORMAL" -sleep 1 -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null]) - ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff0002f2ff00030800457aec8e4000402ff322ac1f0101ac1f01646558f2ff0001f2ff000408004554548f40004001cfb30a0101010a0101640800e6e829270003e1a3435bff1a0500101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 actions=NORMAL" sleep 1 @@ -643,7 +640,7 @@ dnl Set up tunnel endpoints on OVS outside the namespace and emulate a native dnl linux device inside the namespace. ADD_OVS_TUNNEL([erspan], [br0], [at_erspan0], [172.31.1.1], [10.1.1.100/24], [options:key=1 options:erspan_ver=1 options:erspan_idx=7]) -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & sleep 1 dnl First, check the underlay @@ -654,11 +651,6 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | FORMAT_PING], [ dnl Okay, now send out an arp request from 10.1.1.1 for 10.1.1.100 in erspan. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff0002f2ff00030800454e151d4000402fcac0ac1f0101ac1f0164100088be000610010007f2ff000408060001080006040001f2ff00040a0101010a010164 actions=normal" -sleep 1 -dnl 0002 is arp reply, followed by mac address of 10.1.1.100. -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "f2ff 0001 0806" 2>&1 1>/dev/null]) -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0800 0604 0002 f2ff 0001 0a01" 2>&1 1>/dev/null]) - dnl Okay, now check the overlay with raw icmp packets. AT_FAIL_IF([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > 172.31.1.1: GREv0, .* length 1258" 2>&1 1>/dev/null]) @@ -691,7 +683,7 @@ dnl Set up tunnel endpoints on OVS outside the namespace and simulate a native dnl linux device inside the namespace. ADD_OVS_TUNNEL([erspan], [br0], [at_erspan0], [172.31.1.1], [10.1.1.100/24], [options:key=1 options:erspan_ver=2 options:erspan_dir=1 options:erspan_hwid=0x7]) -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & +ip netns exec at_ns0 tcpdump -U -i p0 dst host 172.31.1.1 -w p0.pcap & sleep 1 dnl First, check the underlay @@ -702,10 +694,6 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | FORMAT_PING], [ dnl Okay, send raw arp request and icmp echo request. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff0002f2ff000308004552373d4000402fa89cac1f0101ac1f0164100088be000620016f54b4178078f2ff000408060001080006040001f2ff00040a0101010a010164 actions=normal" -sleep 1 -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0806 0001 0800 0604 0002 f2ff " 2>&1 1>/dev/null]) -AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "0a01 0164 f2ff 0004 0a01 0101" 2>&1 1>/dev/null]) - ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff0002f2ff00030800459287e14000402f57b8ac1f0101ac1f0164100088be00052001144cd5a48078f2ff0001f2ff00040800455c38d640004001eb640a0101010a01016408005e57585f0001df6c6b5b45bc0500101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f actions=normal" sleep 1 @@ -738,7 +726,7 @@ ADD_OVS_TUNNEL6([ip6erspan], [br0], [at_erspan0], [fc00:100::1], [10.1.1.100/24] OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 2 fc00:100::100]) -ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & +ip netns exec at_ns0 tcpdump -U proto gre -i p0 -w p0.pcap & sleep 1 dnl First, check the underlay @@ -749,13 +737,6
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
Hi Darrell, Thanks for the review. Will do. Best, Yifeng On Fri, Aug 10, 2018 at 3:12 PM, Darrell Ball wrote: > Thanks Yifeng > > Thanks for switching to use ‘packet-out’. > Patches 4-8 seem like they can be part of the same patch, since they are > closely related. > As discussed, none of the tests pass for Userspace datapath, so maybe you > want to check them out or just disable them for now > > I tested with “Linux ubuntu 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 > 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux” > Fusion Ubuntu VM > > dball@ubuntu:~/ovs$ time sudo make check-system-userspace > TESTSUITEFLAGS='18-22' -C _gcc > make: Entering directory '/home/dball/ovs/_gcc' > make all-recursive > make[1]: Entering directory '/home/dball/ovs/_gcc' > Making all in datapath > make[2]: Entering directory '/home/dball/ovs/_gcc/datapath' > Making all in linux > make[3]: Entering directory '/home/dball/ovs/_gcc/datapath/linux' > make -C /lib/modules/4.4.0-119-generic/build > M=/home/dball/ovs/_gcc/datapath/linux > modules > make[4]: Entering directory '/usr/src/linux-headers-4.4.0-119-generic' > Building modules, stage 2. > MODPOST 6 modules > make[4]: Leaving directory '/usr/src/linux-headers-4.4.0-119-generic' > make[3]: Leaving directory '/home/dball/ovs/_gcc/datapath/linux' > make[3]: Entering directory '/home/dball/ovs/_gcc/datapath' > make[3]: Leaving directory '/home/dball/ovs/_gcc/datapath' > make[2]: Leaving directory '/home/dball/ovs/_gcc/datapath' > make[2]: Entering directory '/home/dball/ovs/_gcc' > make[3]: Entering directory '/home/dball/ovs/_gcc/datapath' > make[3]: 'distfiles' is up to date. > make[3]: Leaving directory '/home/dball/ovs/_gcc/datapath' > make[2]: Leaving directory '/home/dball/ovs/_gcc' > make[1]: Leaving directory '/home/dball/ovs/_gcc' > set /bin/bash '../tests/system-userspace-testsuite' -C tests > AUTOTEST_PATH='utilities:vswitchd:ovsdb:vtep:tests::: > ovn/controller-vtep:ovn/northd:ovn/utilities:ovn/controller' 18-22 -j1; \ > "$@" || (test X'' = Xyes && "$@" --recheck) > ## --- ## > ## openvswitch 2.10.90 test suite. ## > ## --- ## > > datapath-sanity > > 18: datapath - ping over gre tunnel by simulated packets FAILED ( > system-traffic.at:615) > 19: datapath - ping over erspan v1 tunnel by simulated packets FAILED ( > system-traffic.at:659) > 20: datapath - ping over erspan v2 tunnel by simulated packets FAILED ( > system-traffic.at:706) > 21: datapath - ping over ip6erspan v1 tunnel by simulated packets FAILED ( > system-traffic.at:754) > 22: datapath - ping over ip6erspan v2 tunnel by simulated packets FAILED ( > system-traffic.at:804) > > ## - ## > ## Test results. ## > ## - ## > > ERROR: All 5 tests were run, > 5 failed unexpectedly. > ## --- ## > ## system-userspace-testsuite.log was created. ## > ## --- ## > > > The kmod tests all pass now and they are a little faster now, but still > slow > > et /bin/bash '../tests/system-kmod-testsuite' -C tests > AUTOTEST_PATH='utilities:vswitchd:ovsdb:vtep:tests::: > ovn/controller-vtep:ovn/northd:ovn/utilities:ovn/controller' 18 -j1; \ > "$@" || (test X'' = Xyes && "$@" --recheck) > ## --- ## > ## openvswitch 2.10.90 test suite. ## > ## --- ## > 18: datapath - ping over gre tunnel by simulated packets ok > > ## - ## > ## Test results. ## > ## - ## > > 1 test was successful. > make[1]: Leaving directory '/home/dball/ovs/_gcc' > make: Leaving directory '/home/dball/ovs/_gcc' > > real1m32.789s > user0m3.396s > sys 0m0.872s > > > Thanks Darrell > > > > > > > On 8/8/18, 4:35 PM, "ovs-dev-boun...@openvswitch.org on behalf of Yifeng > Sun" > wrote: > > Introduce a new test that doesn't setup native gre tunnels but sends > simulated raw packets. > This test is supposed to only run for kernel version from 4.4.x to > 4.15.x. > > Signed-off-by: Yifeng Sun > --- > tests/system-traffic.at | 47 ++ > + > 1 file changed, 47 insertions(+) > > diff --git a/tests/system-traffic.at b/tests/system-traffic.at > index cf53c10..dca2bc8 100644 > --- a/tests/system-traffic.at > +++ b/tests/system-traffic.at > @@ -575,6 +575,53 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i > 0.3 -w 2 10.1.1.100 | FORMAT_PI > OVS_TRAFFIC_VSWITCHD_STOP > AT_CLEANUP > > +AT_SETUP([datapath - ping over gre tunnel by simulated packets]) > +OVS_CHECK_KERNEL(4, 4, 15) > + > +OVS_TRAFFIC_VSWITCHD_START() > + > +AT_CHECK([ovs-vsctl -- set bridge br0 other-config:hwaddr=\"f2:ff: > 00:00:00:01\"]) > +ADD_BR([br-underlay], [set bridge br-underlay > other-config:hwaddr=\"f2:ff:00:00:00:02\"]) > + > +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) > +AT_CHECK([ovs-o
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
Thanks Yifeng Thanks for switching to use ‘packet-out’. Patches 4-8 seem like they can be part of the same patch, since they are closely related. As discussed, none of the tests pass for Userspace datapath, so maybe you want to check them out or just disable them for now I tested with “Linux ubuntu 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux” Fusion Ubuntu VM dball@ubuntu:~/ovs$ time sudo make check-system-userspace TESTSUITEFLAGS='18-22' -C _gcc make: Entering directory '/home/dball/ovs/_gcc' make all-recursive make[1]: Entering directory '/home/dball/ovs/_gcc' Making all in datapath make[2]: Entering directory '/home/dball/ovs/_gcc/datapath' Making all in linux make[3]: Entering directory '/home/dball/ovs/_gcc/datapath/linux' make -C /lib/modules/4.4.0-119-generic/build M=/home/dball/ovs/_gcc/datapath/linux modules make[4]: Entering directory '/usr/src/linux-headers-4.4.0-119-generic' Building modules, stage 2. MODPOST 6 modules make[4]: Leaving directory '/usr/src/linux-headers-4.4.0-119-generic' make[3]: Leaving directory '/home/dball/ovs/_gcc/datapath/linux' make[3]: Entering directory '/home/dball/ovs/_gcc/datapath' make[3]: Leaving directory '/home/dball/ovs/_gcc/datapath' make[2]: Leaving directory '/home/dball/ovs/_gcc/datapath' make[2]: Entering directory '/home/dball/ovs/_gcc' make[3]: Entering directory '/home/dball/ovs/_gcc/datapath' make[3]: 'distfiles' is up to date. make[3]: Leaving directory '/home/dball/ovs/_gcc/datapath' make[2]: Leaving directory '/home/dball/ovs/_gcc' make[1]: Leaving directory '/home/dball/ovs/_gcc' set /bin/bash '../tests/system-userspace-testsuite' -C tests AUTOTEST_PATH='utilities:vswitchd:ovsdb:vtep:tests:::ovn/controller-vtep:ovn/northd:ovn/utilities:ovn/controller' 18-22 -j1; \ "$@" || (test X'' = Xyes && "$@" --recheck) ## --- ## ## openvswitch 2.10.90 test suite. ## ## --- ## datapath-sanity 18: datapath - ping over gre tunnel by simulated packets FAILED (system-traffic.at:615) 19: datapath - ping over erspan v1 tunnel by simulated packets FAILED (system-traffic.at:659) 20: datapath - ping over erspan v2 tunnel by simulated packets FAILED (system-traffic.at:706) 21: datapath - ping over ip6erspan v1 tunnel by simulated packets FAILED (system-traffic.at:754) 22: datapath - ping over ip6erspan v2 tunnel by simulated packets FAILED (system-traffic.at:804) ## - ## ## Test results. ## ## - ## ERROR: All 5 tests were run, 5 failed unexpectedly. ## --- ## ## system-userspace-testsuite.log was created. ## ## --- ## The kmod tests all pass now and they are a little faster now, but still slow et /bin/bash '../tests/system-kmod-testsuite' -C tests AUTOTEST_PATH='utilities:vswitchd:ovsdb:vtep:tests:::ovn/controller-vtep:ovn/northd:ovn/utilities:ovn/controller' 18 -j1; \ "$@" || (test X'' = Xyes && "$@" --recheck) ## --- ## ## openvswitch 2.10.90 test suite. ## ## --- ## 18: datapath - ping over gre tunnel by simulated packets ok ## - ## ## Test results. ## ## - ## 1 test was successful. make[1]: Leaving directory '/home/dball/ovs/_gcc' make: Leaving directory '/home/dball/ovs/_gcc' real1m32.789s user0m3.396s sys 0m0.872s Thanks Darrell On 8/8/18, 4:35 PM, "ovs-dev-boun...@openvswitch.org on behalf of Yifeng Sun" wrote: Introduce a new test that doesn't setup native gre tunnels but sends simulated raw packets. This test is supposed to only run for kernel version from 4.4.x to 4.15.x. Signed-off-by: Yifeng Sun --- tests/system-traffic.at | 47 +++ 1 file changed, 47 insertions(+) diff --git a/tests/system-traffic.at b/tests/system-traffic.at index cf53c10..dca2bc8 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -575,6 +575,53 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([datapath - ping over gre tunnel by simulated packets]) +OVS_CHECK_KERNEL(4, 4, 15) + +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-vsctl -- set bridge br0 other-config:hwaddr=\"f2:ff:00:00:00:01\"]) +ADD_BR([br-underlay], [set bridge br-underlay other-config:hwaddr=\"f2:ff:00:00:00:02\"]) + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) +AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"]) + +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", f2:ff:00:00:00:03) +AT_CHECK([ip addr add dev br-underlay "172.31.1.100/24"]) +AT_CHECK([ip link set dev br-underlay
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
On Thu, Aug 9, 2018 at 12:46 PM, Yifeng Sun wrote: > Yes, in original test, ADD_NATIVE_TUNNEL will try to load upstream > gre modules. But since openvswitch is running in compatible model, > there is a conflict and the gre tests will always fail. So this new series > of tests abandoned using ADD_NATIVE_TUNNEL and doesn't need > native gre modules any more. > > oh, my mistake, the line is actually a comment. +dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [ 10.1.1.1/24]) I thought it is active. Thanks William > On Thu, Aug 9, 2018 at 11:55 AM, William Tu wrote: > >> >> >> On Wed, Aug 8, 2018 at 11:32 AM, Yifeng Sun >> wrote: >> >>> Introduce a new test that doesn't setup native gre tunnels but sends >>> simulated raw packets. >>> This test is supposed to only run for kernel version from 4.4.x to >>> 4.15.x. >>> >>> Signed-off-by: Yifeng Sun >>> --- >>> tests/system-traffic.at | 47 ++ >>> + >>> 1 file changed, 47 insertions(+) >>> >>> diff --git a/tests/system-traffic.at b/tests/system-traffic.at >>> index cf53c10..dca2bc8 100644 >>> --- a/tests/system-traffic.at >>> +++ b/tests/system-traffic.at >>> @@ -575,6 +575,53 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i >>> 0.3 -w 2 10.1.1.100 | FORMAT_PI >>> OVS_TRAFFIC_VSWITCHD_STOP >>> AT_CLEANUP >>> >>> +AT_SETUP([datapath - ping over gre tunnel by simulated packets]) >>> +OVS_CHECK_KERNEL(4, 4, 15) >>> + >>> +OVS_TRAFFIC_VSWITCHD_START() >>> + >>> +AT_CHECK([ovs-vsctl -- set bridge br0 other-config:hwaddr=\"f2:ff:00 >>> :00:00:01\"]) >>> +ADD_BR([br-underlay], [set bridge br-underlay >>> other-config:hwaddr=\"f2:ff:00:00:00:02\"]) >>> + >>> +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) >>> +AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"]) >>> + >>> +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", f2:ff:00:00:00:03) >>> +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. >>> +ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24]) >>> + >> >> +ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & >>> +sleep 1 >>> + >>> +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 We don't actually add gretap port as below, instead, we will >>> +dnl emulate one that sends out packets. Suppose its mac address is >>> f2:ff:00:00:00:04. >>> +dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [ >>> 10.1.1.1/24]) >>> >> >> Doesn't ADD_NATIVE_TUNNEL setup native gre tunnels? >> And this causes loading the upstream kernel's gre module. >> >> Thanks >> William >> >>> + >>> +dnl Now, check the overlay by sending out raw arp and icmp packets. >>> +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >>> packet=f2ff0002f2ff000308004542ec2c4000402ff3bca >>> c1f0101ac1f01646558f2ff00040806000108000 >>> 6040001f2ff00040a0101010a010164 actions=NORMAL" >>> + >>> +sleep 1 >>> +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > >>> 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at >>> f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null]) >>> + >>> +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >>> packet=f2ff0002f2ff00030800457aec8e4000402ff322a >>> c1f0101ac1f01646558f2ff0001f2ff0004080045545 >>> 48f40004001cfb30a0101010a0101640800e6e829270003e1a3435b0 >>> 000ff1a0500101112131415161718191a1b1c1d1e1f202122232 >>> 425262728292a2b2c2d2e2f3031323334353637 actions=NORMAL" >>> + >>> +sleep 1 >>> +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > >>> 172.31.1.1: GREv0, length 102: IP 10.1.1.100 > 10.1.1.1: ICMP echo >>> reply, .* length 64$" 2>&1 1>/dev/null]) >>> + >>> +OVS_TRAFFIC_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> AT_SETUP([datapath - clone action]) >>> OVS_TRAFFIC_VSWITCHD_START() >>> >>> -- >>> 2.7.4 >>> >>> ___ >>> dev mailing list >>> d...@openvswitch.org >>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >>> >> >> > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
Yes, in original test, ADD_NATIVE_TUNNEL will try to load upstream gre modules. But since openvswitch is running in compatible model, there is a conflict and the gre tests will always fail. So this new series of tests abandoned using ADD_NATIVE_TUNNEL and doesn't need native gre modules any more. On Thu, Aug 9, 2018 at 11:55 AM, William Tu wrote: > > > On Wed, Aug 8, 2018 at 11:32 AM, Yifeng Sun > wrote: > >> Introduce a new test that doesn't setup native gre tunnels but sends >> simulated raw packets. >> This test is supposed to only run for kernel version from 4.4.x to 4.15.x. >> >> Signed-off-by: Yifeng Sun >> --- >> tests/system-traffic.at | 47 ++ >> + >> 1 file changed, 47 insertions(+) >> >> diff --git a/tests/system-traffic.at b/tests/system-traffic.at >> index cf53c10..dca2bc8 100644 >> --- a/tests/system-traffic.at >> +++ b/tests/system-traffic.at >> @@ -575,6 +575,53 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 >> -w 2 10.1.1.100 | FORMAT_PI >> OVS_TRAFFIC_VSWITCHD_STOP >> AT_CLEANUP >> >> +AT_SETUP([datapath - ping over gre tunnel by simulated packets]) >> +OVS_CHECK_KERNEL(4, 4, 15) >> + >> +OVS_TRAFFIC_VSWITCHD_START() >> + >> +AT_CHECK([ovs-vsctl -- set bridge br0 other-config:hwaddr=\"f2:ff:00 >> :00:00:01\"]) >> +ADD_BR([br-underlay], [set bridge br-underlay >> other-config:hwaddr=\"f2:ff:00:00:00:02\"]) >> + >> +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) >> +AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"]) >> + >> +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", f2:ff:00:00:00:03) >> +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. >> +ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24]) >> + > > +ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & >> +sleep 1 >> + >> +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 We don't actually add gretap port as below, instead, we will >> +dnl emulate one that sends out packets. Suppose its mac address is >> f2:ff:00:00:00:04. >> +dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [ >> 10.1.1.1/24]) >> > > Doesn't ADD_NATIVE_TUNNEL setup native gre tunnels? > And this causes loading the upstream kernel's gre module. > > Thanks > William > >> + >> +dnl Now, check the overlay by sending out raw arp and icmp packets. >> +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff000308004542ec2c4000402ff3bca >> c1f0101ac1f01646558f2ff00040806000108000 >> 6040001f2ff00040a0101010a010164 actions=NORMAL" >> + >> +sleep 1 >> +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > >> 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at >> f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null]) >> + >> +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 >> packet=f2ff0002f2ff00030800457aec8e4000402ff322a >> c1f0101ac1f01646558f2ff0001f2ff0004080045545 >> 48f40004001cfb30a0101010a0101640800e6e829270003e1a3435b0 >> 000ff1a0500101112131415161718191a1b1c1d1e1f202122232 >> 425262728292a2b2c2d2e2f3031323334353637 actions=NORMAL" >> + >> +sleep 1 >> +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > >> 172.31.1.1: GREv0, length 102: IP 10.1.1.100 > 10.1.1.1: ICMP echo >> reply, .* length 64$" 2>&1 1>/dev/null]) >> + >> +OVS_TRAFFIC_VSWITCHD_STOP >> +AT_CLEANUP >> + >> AT_SETUP([datapath - clone action]) >> OVS_TRAFFIC_VSWITCHD_START() >> >> -- >> 2.7.4 >> >> ___ >> dev mailing list >> d...@openvswitch.org >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH 4/8] system-traffic.at: Add gre tunnel test that doesn't depend on upstream gre module
On Wed, Aug 8, 2018 at 11:32 AM, Yifeng Sun wrote: > Introduce a new test that doesn't setup native gre tunnels but sends > simulated raw packets. > This test is supposed to only run for kernel version from 4.4.x to 4.15.x. > > Signed-off-by: Yifeng Sun > --- > tests/system-traffic.at | 47 ++ > + > 1 file changed, 47 insertions(+) > > diff --git a/tests/system-traffic.at b/tests/system-traffic.at > index cf53c10..dca2bc8 100644 > --- a/tests/system-traffic.at > +++ b/tests/system-traffic.at > @@ -575,6 +575,53 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 > -w 2 10.1.1.100 | FORMAT_PI > OVS_TRAFFIC_VSWITCHD_STOP > AT_CLEANUP > > +AT_SETUP([datapath - ping over gre tunnel by simulated packets]) > +OVS_CHECK_KERNEL(4, 4, 15) > + > +OVS_TRAFFIC_VSWITCHD_START() > + > +AT_CHECK([ovs-vsctl -- set bridge br0 other-config:hwaddr=\"f2:ff: > 00:00:00:01\"]) > +ADD_BR([br-underlay], [set bridge br-underlay other-config:hwaddr=\"f2:ff: > 00:00:00:02\"]) > + > +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) > +AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"]) > + > +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", f2:ff:00:00:00:03) > +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. > +ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24]) > + +ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap & > +sleep 1 > + > +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 We don't actually add gretap port as below, instead, we will > +dnl emulate one that sends out packets. Suppose its mac address is > f2:ff:00:00:00:04. > +dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [ > 10.1.1.1/24]) > Doesn't ADD_NATIVE_TUNNEL setup native gre tunnels? And this causes loading the upstream kernel's gre module. Thanks William > + > +dnl Now, check the overlay by sending out raw arp and icmp packets. > +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff000308004542ec2c4000402ff3bcac1f0101 > ac1f01646558f2ff000408060001080006040001 > f2ff00040a0101010a010164 actions=NORMAL" > + > +sleep 1 > +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > > 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at > f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null]) > + > +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet= > f2ff0002f2ff00030800457aec8e4000402ff322ac1f0101 > ac1f01646558f2ff0001f2ff000408004554548f4000 > 4001cfb30a0101010a0101640800e6e829270003e1a3435bff1a > 0500101112131415161718191a1b1c1d1e1f2021222324252627 > 28292a2b2c2d2e2f3031323334353637 actions=NORMAL" > + > +sleep 1 > +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 > > 172.31.1.1: GREv0, length 102: IP 10.1.1.100 > 10.1.1.1: ICMP echo reply, > .* length 64$" 2>&1 1>/dev/null]) > + > +OVS_TRAFFIC_VSWITCHD_STOP > +AT_CLEANUP > + > AT_SETUP([datapath - clone action]) > OVS_TRAFFIC_VSWITCHD_START() > > -- > 2.7.4 > > ___ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev