The test was missing a --wait=hv ovn-nbctl argument, making it racy. It
also doesn't wait for the revalidator to get a chance to run so traffic
might hit the old (stale) datapath flows.
For the latter, we now add a "revalidator/wait" in
NS_CHECK_CONNECTIVITY__().
Fixes: f6e030df6606 ("tests: ARP to VIF port on LS with localnet port.")
Signed-off-by: Dumitru Ceara <[email protected]>
---
tests/system-common-macros.at | 4 ++++
tests/system-ovn.at | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at
index b8237b483b..6206bbb96f 100644
--- a/tests/system-common-macros.at
+++ b/tests/system-common-macros.at
@@ -480,6 +480,10 @@ m4_define([NS_CHECK_CONNECTIVITY__],
if test -n "$is_v6"; then
proto="-6"
fi
+
+ # Wait for revalidation of stale megaflows which may lag behind.
+ check ovs-appctl revalidator/wait
+
# Start a simple TCP and UDP echo server that replies with "ack
<received_msg>".
NETNS_DAEMONIZE($ns_dst, [nc $proto -l -p 1235 -d 0.1 -c '/bin/cat'],
[nc-$ns_dst-$ip-tcp.pid])
NETNS_DAEMONIZE($ns_dst, [nc $proto -l -u -p 1234 -d 0.1 -c '/bin/cat'],
[nc-$ns_dst-$ip-udp.pid])
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 65781bed30..1b8c8af081 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -21060,7 +21060,8 @@ ADD_VETH(ext-foo, ext-foo, br-ext, "172.16.1.100/24",
"00:10:10:01:02:13", \
# one - to check distributed NAT on non gw-chassis.
check ovn-nbctl lrp-set-gateway-chassis rp-public hv2
check ovn-nbctl lr-nat-del lr1
-check ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.0.1 192.168.1.2 sw01-x
00:00:04:00:00:01
+check ovn-nbctl --wait=hv lr-nat-add lr1 \
+ dnat_and_snat 172.16.0.1 192.168.1.2 sw01-x 00:00:04:00:00:01
NS_EXEC([ext-foo], [ip r add 172.16.0.1/32 dev ext-foo])
NS_CHECK_CONNECTIVITY([ext-foo], [sw01-x], 172.16.0.1)
--
2.54.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev