diff mbox

[ovs-dev,v3,2/7] system-common-macros: Add macros to check for and test 802.1ad.

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

Commit Message

Eric Garver Sept. 15, 2016, 12:26 a.m. UTC
Add macros OVS_CHECK_8021AD(), ADD_SVLAN() and ADD_CVLAN().

Signed-off-by: Eric Garver <e@erig.me>
---
 tests/system-common-macros.at | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at
index 1dfdcf9ea789..bf7682ef31c2 100644
--- a/tests/system-common-macros.at
+++ b/tests/system-common-macros.at
@@ -130,12 +130,35 @@  m4_define([ADD_VETH_BOND],
 # 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],
-    [ NS_CHECK_EXEC([$2], [ip link add link $1 name $1.$3 type vlan id $3])
+    [ NS_CHECK_EXEC([$2], [ip link add link $1 name $1.$3 type vlan proto 802.1q id $3])
       NS_CHECK_EXEC([$2], [ip link set dev $1.$3 up])
       NS_CHECK_EXEC([$2], [ip addr add dev $1.$3 $4])
     ]
 )
 
+# ADD_SVLAN([port], [namespace], [vlan-id], [ip-addr])
+#
+# Add a SVLAN device named 'port' within 'namespace'. It will be configured
+# with the ID 'vlan-id' and the address 'ip-addr'.
+m4_define([ADD_SVLAN],
+    [ NS_CHECK_EXEC([$2], [ip link add link $1 name $1.$3 type vlan proto 802.1ad id $3])
+      NS_CHECK_EXEC([$2], [ip link set dev $1.$3 up])
+      NS_CHECK_EXEC([$2], [ip addr add dev $1.$3 $4])
+      NS_CHECK_EXEC([$2], [ip link set $1.$3 mtu 1496])
+    ]
+)
+
+# ADD_CVLAN([port], [namespace], [vlan-id], [ip-addr])
+#
+# Similar to ADD_VLAN(), but sets MTU. Lower MTU here instead of increase MTU
+# on bridge/SVLAN because older kernels didn't work.
+#
+m4_define([ADD_CVLAN],
+    [ ADD_VLAN([$1], [$2], [$3], [$4])
+      NS_CHECK_EXEC([$2], [ip link set $1.$3 mtu 1492])
+    ]
+)
+
 # ADD_OVS_TUNNEL([type], [bridge], [port], [remote-addr], [overlay-addr])
 #
 # Add an ovs-based tunnel device in the root namespace, with name 'port' and
@@ -213,3 +236,10 @@  m4_define([OVS_CHECK_GRE],
 # OVS_CHECK_GENEVE()
 m4_define([OVS_CHECK_GENEVE],
     [AT_SKIP_IF([! ip link add foo type geneve help 2>&1 | grep geneve >/dev/null])])
+
+# OVS_CHECK_8021AD()
+m4_define([OVS_CHECK_8021AD],
+    [AT_SKIP_IF([! grep "VLAN label stack" ovs-vswitchd.log])
+     AT_SKIP_IF([test `sed -n 's/.*VLAN label stack length probed as \(\d*\)/\1/p' ovs-vswitchd.log` -lt 2])
+     AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:vlan-limit=0])
+    ])