- options:requested-chassis for logical port
- NAT and Load Balancer flows
- 2LSs IGMP and MLD
- Dynamic neighbor between LRs
- (userspace test) conntrack TCP reset
- Dont flood fill local datapaths beyond distributed gateway port
- 1 LR with distributed router gateway port

Signed-off-by: Xavier Simonart <[email protected]>
---
 tests/ovn-northd.at |  2 +-
 tests/ovn.at        | 17 ++++++++++++-----
 tests/system-ovn.at |  9 +++++++--
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index d9de4aacb..c252f61a5 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -4566,7 +4566,7 @@ check ovn-nbctl lr-nat-del ro1
 check ovn-nbctl lr-nat-del ro2
 
 check ovn-nbctl --add-route lr-nat-add ro1 dnat_and_snat 10.0.0.100 
192.168.1.2 vm1 00:00:00:00:00:01
-check ovn-nbctl --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 
192.168.2.2 vm2 00:00:00:00:00:02
+check ovn-nbctl --wait=sb --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 
192.168.2.2 vm2 00:00:00:00:00:02
 
 check_lflows 1
 
diff --git a/tests/ovn.at b/tests/ovn.at
index 0c2fe9f97..2d13a1cb2 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -76,6 +76,12 @@ m4_define([OVN_CHECK_PACKETS_REMOVE_BROADCAST],
 m4_define([OVN_CHECK_PACKETS_CONTAIN],
   [ovn_wait_packets__ "$1" "$2" "__file__:__line__"])
 
+# OVN_CHECK_PACKETS_UNIQ succeeds if some expected packets are duplicated.
+# It fails if unexpected packets are received.
+m4_define([OVN_CHECK_PACKETS_UNIQ],
+  [ovn_check_packets__ "$1" "$2" "__file__:__line__"
+   AT_CHECK([sort $rcv_text | uniq], [0], [expout])])
+
 AT_BANNER([OVN components])
 
 AT_SETUP([lexer])
@@ -11418,7 +11424,7 @@ echo $outside_ip
 test_arp 3 1 f00000010204 $outside_ip $rtr_ip
 
 # Now check the packets actually received against the ones expected.
-OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
+OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
 
 # Send ip packet between foo1 and outside1
 src_mac="f00000010203"
@@ -11428,7 +11434,7 @@ dst_ip=`ip_to_hex 172 16 1 3`
 
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
 
 # Now check the packets actually received against the ones expected.
-OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
+OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
 
 # Now add bridge-mappings on hv2, which should make everything work
 as hv2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
@@ -11449,7 +11455,7 @@ 
exp_gw_ip_garp=ffffffffffff00000201020308060001080006040001000002010203ac1001010
 echo $exp_gw_ip_garp >> hv3-vif1.expected
 
 # Now check the packets actually received against the ones expected.
-OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
+OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
 
 # Send ip packet between foo1 and outside1
 src_mac="f00000010203"
@@ -13838,7 +13844,7 @@ as hv1
 ovs-vsctl set interface hv1-vif0 external-ids:iface-id=lsp0
 
 OVS_WAIT_UNTIL([test 1 = $(grep -c "Claiming lport lsp0" 
hv1/ovn-controller.log)])
-check_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
+wait_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
 
 # (4) Chassis hv1 should add flows in OFTABLE_PHY_TO_LOG and 
OFTABLE_LOG_TO_PHY tables.
 as hv1 ovs-ofctl dump-flows br-int
@@ -25636,7 +25642,6 @@ src_ip=`ip_to_hex 10 0 1 2`
 dst_ip=`ip_to_hex 10 0 2 2`
 
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
 as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
-as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
 
 # Packet to Expect at p2
 src_mac="000000000201"
@@ -25646,6 +25651,7 @@ dst_ip=`ip_to_hex 10 0 2 2`
 echo 
"${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000"
 > expected
 
 OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
+as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
 
 # MAC binding entry should have generated
 AT_CHECK([ovn-sbctl find mac ip=10.0.0.2 mac='"00:00:00:00:03:02"' 
logical_port=lrp-r1-join | grep 10\.0\.0\.2], [0], [ignore], [])
@@ -29553,6 +29559,7 @@ AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | 
grep 10.0.1.2], [0], [ig
 # doesn't remove.)
 check ovn-nbctl --wait=hv lrp-set-gateway-chassis lrp_lr_ls1 hv1 1
 as hv2 check ovn-appctl -t ovn-controller recompute
+ovn-nbctl --wait=hv sync
 AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [1])
 
 # Enable dnat_and_snat on lr, and now hv2 should see flows for lsp1.
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 5d90be1c9..2de21e9f5 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -4174,13 +4174,17 @@ start_daemon ovn-controller
 #   - subnet 20.0.0.0/8
 #   - 2 port (sw2-p1 - sw2-p2)
 #   - IGMP Querier from 20.0.0.254
-
 ovn-nbctl ls-add sw1
 ovn-nbctl ls-add sw2
 
 for i in `seq 1 2`
 do
     ADD_NAMESPACES(sw1-p$i)
+# Only send 1 membership report as second one might be received after flushing 
IGMP groups
+# causing test to fail
+    NS_CHECK_EXEC([sw1-p$i], [sysctl -w net.ipv4.igmp_qrv=1], [0], [dnl
+net.ipv4.igmp_qrv = 1
+])
     ADD_VETH(sw1-p$i, sw1-p$i, br-int, "10.0.0.$i/24", "00:00:00:00:01:0$i", \
             "10.0.0.254")
     ovn-nbctl lsp-add sw1 sw1-p$i \
@@ -4200,6 +4204,7 @@ done
 ovn-nbctl set Logical_Switch sw1 other_config:mcast_querier="false"
 ovn-nbctl set Logical_Switch sw1 other_config:mcast_snoop="true"
 
+
 group_v4="239.0.1.68"
 # Inject IGMP Join for v4 group on sw1-p1.
 NS_CHECK_EXEC([sw1-p1], [ip addr add dev sw1-p1 ${group_v4}/32 autojoin], [0])
@@ -5414,7 +5419,7 @@ AT_CHECK([
     ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep 
state=ESTABLISHED -c)
     test $ct_est_count -eq 0
 
-    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep 
state=CLOS -c)
+    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep 
state='CLOS\|TIME_WAIT' -c)
     test $ct_est_count -eq 1
 ])
 
-- 
2.31.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to