diff mbox

[ovs-dev,2/5] check-kernel: 802.1ad: Add datapath ping tests for CVLANs.

Message ID 1469728449-28857-3-git-send-email-e@erig.me
State Superseded
Headers show

Commit Message

Eric Garver July 28, 2016, 5:54 p.m. UTC
Signed-off-by: Eric Garver <e@erig.me>
---
 tests/system-traffic.at | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

Comments

Joe Stringer July 29, 2016, 6:26 p.m. UTC | #1
On 28 July 2016 at 10:54, Eric Garver <e@erig.me> wrote:
> Signed-off-by: Eric Garver <e@erig.me>

Hmm, on my Ubuntu 14.04 setup these tests fail with kernel 3.13.0-91,
bupass with kernel 3.19.0-58, but not 3.13.0-91. I guess the 3.13
kernel didn't support 802.1ad? Is there an easy way to figure this out
to skip the test on older kernels?
Eric Garver July 29, 2016, 8:29 p.m. UTC | #2
On Fri, Jul 29, 2016 at 11:26:30AM -0700, Joe Stringer wrote:
> On 28 July 2016 at 10:54, Eric Garver <e@erig.me> wrote:
> > Signed-off-by: Eric Garver <e@erig.me>
> 
> Hmm, on my Ubuntu 14.04 setup these tests fail with kernel 3.13.0-91,
> bupass with kernel 3.19.0-58, but not 3.13.0-91. I guess the 3.13
> kernel didn't support 802.1ad? Is there an easy way to figure this out
> to skip the test on older kernels?

I believe 802.1ad was added in 3.10. I'll try with an upstream 3.10.
I think the best way to check would be if iproute (ip ..) allows "proto
802.1ad" when creating a VLAN.
diff mbox

Patch

diff --git a/tests/system-traffic.at b/tests/system-traffic.at
index 1cdc2d2e0f4e..4f72292e5490 100644
--- a/tests/system-traffic.at
+++ b/tests/system-traffic.at
@@ -69,6 +69,35 @@  NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING
 OVS_TRAFFIC_VSWITCHD_STOP
 AT_CLEANUP
 
+AT_SETUP([datapath - ping between two ports on cvlan])
+OVS_TRAFFIC_VSWITCHD_START()
+
+AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])
+
+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_SVLAN(p0, at_ns0, 4094, "10.255.2.1/24")
+ADD_SVLAN(p1, at_ns1, 4094, "10.255.2.2/24")
+
+ADD_CVLAN(p0.4094, at_ns0, 100, "10.2.2.1/24")
+ADD_CVLAN(p1.4094, at_ns1, 100, "10.2.2.2/24")
+
+NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.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.2.2.2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+
+OVS_TRAFFIC_VSWITCHD_STOP
+AT_CLEANUP
+
 AT_SETUP([datapath - ping6 between two ports])
 OVS_TRAFFIC_VSWITCHD_START()
 
@@ -128,6 +157,40 @@  NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PI
 OVS_TRAFFIC_VSWITCHD_STOP
 AT_CLEANUP
 
+AT_SETUP([datapath - ping6 between two ports on cvlan])
+OVS_TRAFFIC_VSWITCHD_START()
+
+AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])
+
+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_SVLAN(p0, at_ns0, 4094, "fc00:ffff::1/96")
+ADD_SVLAN(p1, at_ns1, 4094, "fc00:ffff::2/96")
+
+ADD_CVLAN(p0.4094, at_ns0, 100, "fc00:1::1/96")
+ADD_CVLAN(p1.4094, at_ns1, 100, "fc00:1::2/96")
+
+dnl Linux seems to take a little time to get its IPv6 stack in order. Without
+dnl waiting, we get occasional failures due to the following error:
+dnl "connect: Cannot assign requested address"
+OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2])
+
+NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+NS_CHECK_EXEC([at_ns0], [ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], [0], [dnl
+3 packets transmitted, 3 received, 0% packet loss, time 0ms
+])
+
+OVS_TRAFFIC_VSWITCHD_STOP
+AT_CLEANUP
+
 AT_SETUP([datapath - ping over vxlan tunnel])
 OVS_CHECK_VXLAN()