diff mbox

[ovs-dev] mcast-snooping: Add and improve mcast-snooping tests.

Message ID 1488539327-21179-1-git-send-email-nic@opencloud.tech
State Accepted
Headers show

Commit Message

nickcooper-zhangtonghao March 3, 2017, 11:08 a.m. UTC
Signed-off-by: nickcooper-zhangtonghao <nic@opencloud.tech>
---
 tests/mcast-snooping.at | 112 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 112 insertions(+)

Comments

Ben Pfaff March 3, 2017, 7:35 p.m. UTC | #1
On Fri, Mar 03, 2017 at 03:08:47AM -0800, nickcooper-zhangtonghao wrote:
> Signed-off-by: nickcooper-zhangtonghao <nic@opencloud.tech>

Thank you for writing a test.  I applied it to master.
diff mbox

Patch

diff --git a/tests/mcast-snooping.at b/tests/mcast-snooping.at
index c03aba3..90de8b3 100644
--- a/tests/mcast-snooping.at
+++ b/tests/mcast-snooping.at
@@ -29,6 +29,8 @@  dummy@ovs-dummy: hit:0 missed:0
 		p2 2/2: (dummy)
 ])
 
+ovs-appctl time/stop
+
 # Send IGMPv3 query on p2 with vlan 1725
 # 5c:8a:38:55:25:52 > 01:00:5e:00:00:01, ethertype 802.1Q (0x8100), length 64: vlan 1725, p 0, ethertype IPv4,
 # 172.17.25.1 > 224.0.0.1: igmp query v3
@@ -102,3 +104,113 @@  AT_CHECK([ovs-appctl mdb/show br0], [0], [dnl
 
 OVS_VSWITCHD_STOP
 AT_CLEANUP
+
+AT_SETUP([mcast - delete the port mdb when vlan configruation changed])
+OVS_VSWITCHD_START([])
+
+AT_CHECK([
+    ovs-vsctl set bridge br0 \
+    datapath_type=dummy \
+    mcast_snooping_enable=true \
+    other-config:mcast-snooping-disable-flood-unregistered=false
+], [0])
+
+AT_CHECK([ovs-ofctl add-flow br0 action=normal])
+
+AT_CHECK([
+    ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy \
+    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \
+    -- add-port br0 p2 \
+    -- set Interface p2 type=dummy other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2 \
+    -- add-port br0 p3 \
+    -- set Interface p3 type=dummy other-config:hwaddr=aa:55:aa:55:00:03 ofport_request=3
+], [0])
+
+ovs-appctl time/stop
+
+# send report packets
+AT_CHECK([
+    ovs-appctl netdev-dummy/receive p1  \
+        '01005E010101000C29A027A18100000108004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
+    ovs-appctl netdev-dummy/receive p1  \
+        '01005E010101000C29A027A28100000208004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
+], [0])
+
+# send query packets
+AT_CHECK([
+    ovs-appctl netdev-dummy/receive p3  \
+       '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
+    ovs-appctl netdev-dummy/receive p3  \
+        '01005E010101000C29A027D28100000208004500001C000100004002CBCAAC102202E00101011114EEEB00000000'
+], [0])
+
+AT_CHECK([ovs-appctl mdb/show br0], [0], [dnl
+ port  VLAN  GROUP                Age
+    1     1  224.1.1.1           0
+    1     2  224.1.1.1           0
+    3     1  querier               0
+    3     2  querier               0
+])
+
+AT_CHECK([ovs-vsctl set port p3 tag=2], [0])
+
+AT_CHECK([ovs-appctl mdb/show br0], [0], [dnl
+ port  VLAN  GROUP                Age
+    1     1  224.1.1.1           0
+    1     2  224.1.1.1           0
+])
+
+AT_CLEANUP
+
+AT_SETUP([mcast - delete the port mdb when port destroyed])
+OVS_VSWITCHD_START([])
+
+AT_CHECK([
+    ovs-vsctl set bridge br0 \
+    datapath_type=dummy \
+    mcast_snooping_enable=true \
+    other-config:mcast-snooping-disable-flood-unregistered=false
+], [0])
+
+AT_CHECK([ovs-ofctl add-flow br0 action=normal])
+
+AT_CHECK([
+    ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy \
+    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \
+    -- add-port br0 p2 \
+    -- set Interface p2 type=dummy other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2 \
+], [0])
+
+# send report packets
+AT_CHECK([
+    ovs-appctl netdev-dummy/receive p1  \
+        '01005E010101000C29A027A18100000108004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
+    ovs-appctl netdev-dummy/receive p1  \
+        '01005E010101000C29A027A28100000208004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
+], [0])
+
+# send query packets
+AT_CHECK([
+    ovs-appctl netdev-dummy/receive p2  \
+       '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
+    ovs-appctl netdev-dummy/receive p2  \
+        '01005E010101000C29A027D28100000208004500001C000100004002CBCAAC102202E00101011114EEEB00000000'
+], [0])
+
+AT_CHECK([ovs-appctl mdb/show br0], [0], [dnl
+ port  VLAN  GROUP                Age
+    1     1  224.1.1.1           0
+    1     2  224.1.1.1           0
+    2     1  querier               0
+    2     2  querier               0
+])
+
+AT_CHECK([ovs-vsctl del-port br0 p2], [0])
+
+AT_CHECK([ovs-appctl mdb/show br0], [0], [dnl
+ port  VLAN  GROUP                Age
+    1     1  224.1.1.1           0
+    1     2  224.1.1.1           0
+])
+
+AT_CLEANUP