This case fails occasionally because although it waits until port
binding is completed on HV, the patch port creation may not be
completed yet on HV for the localnet port, so if the packets are sent
out at this moment, the case will fail. This patch ensures patch
port is created and then do another sync before sending the packet
so that the ovn-controller is given a chance to handle the change
and install related flows to OVS.

Signed-off-by: Han Zhou <[email protected]>
---
 tests/ovn.at | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/ovn.at b/tests/ovn.at
index 8d9519e..2187f48 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -9111,6 +9111,8 @@ ovs-vsctl -- add-port br-int hv1-vif1 -- \
     ofport-request=1
 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
 
+OVS_WAIT_UNTIL([ovs-vsctl show | grep 'patch-ln-public-to-br-int'])
+
 OVS_WAIT_UNTIL([test x`ovn-nbctl lsp-get-up sw0_ip6-port1` = xup])
 cr_uuid=`ovn-sbctl find port_binding logical_port=cr-ip6_public | grep _uuid | 
cut -f2 -d ":"`
 
@@ -9118,6 +9120,9 @@ cr_uuid=`ovn-sbctl find port_binding 
logical_port=cr-ip6_public | grep _uuid | c
 chassis_uuid=`ovn-sbctl list chassis | grep _uuid | cut -f2 -d ":"`
 OVS_WAIT_UNTIL([test $chassis_uuid = `ovn-sbctl get port_binding $cr_uuid 
chassis`])
 
+# Allow some time for ovn-northd and ovn-controller to catch up.
+ovn-nbctl --wait=hv --timeout=3 sync
+
 trim_zeros() {
     sed 's/\(00\)\{1,\}$//'
 }
-- 
2.1.0

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

Reply via email to