It's possible and valid that ovn-controller is busy and can't honor
'inject-pkt' commands.  Retry the operation a few times in case of
failure.

Spotted in GitHub CI:
  ../../../tests/ovn.at:26558: as hv1 ovs-appctl -t ovn-controller inject-pkt 
"$packet"
  --- /dev/null 2023-04-26 13:49:24.193558400 +0000
  +++ 
/workspace/ovn-tmp/ovn-23.03.90/_build/sub/tests/testsuite.dir/at-groups/608/stderr
       2023-04-26 14:01:05.140105227 +0000
  @@ -0,0 +1,2 @@
  +ovn-controller not ready.
  +ovs-appctl: ovn-controller: server returned an error

Signed-off-by: Dumitru Ceara <[email protected]>
---
 tests/ovn.at | 82 ++++++++++++++++++++++++++--------------------------
 1 file changed, 41 insertions(+), 41 deletions(-)

diff --git a/tests/ovn.at b/tests/ovn.at
index 7e804699ad..1ba73b9846 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -5765,7 +5765,7 @@ check ovn-nbctl --wait=hv sync
 packet="inport==\"ls1-lp1\" && eth.src==$ls1_lp1_mac && eth.dst==$rp_ls1_mac &&
         ip4 && ip.ttl==64 && ip4.src==$ls1_lp1_ip && ip4.dst==$ls2_lp1_ip &&
         udp && udp.src==53 && udp.dst==4369"
-AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 
 echo "---------NB dump-----"
@@ -5815,7 +5815,7 @@ packet="inport==\"ls1-lp1\" && eth.src==$ls1_lp1_mac && 
eth.dst==$rp_ls1_mac &&
         ip4 && ip.ttl==64 && ip4.src==$ls1_lp1_ip && ip4.dst==$ls2_lp1_ip &&
         udp && udp.src==53 && udp.dst==4369"
 
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 # The 2nd packet sent shound not be received.
 OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
 
@@ -7763,7 +7763,7 @@ packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && 
eth.dst==$ls1_ro_mac &&
        ip4 && ip.ttl==64 && ip4.src==$ls1_p1_ip && ip4.dst==$ls2_p1_ip &&
        udp && udp.src==53 && udp.dst==4369"
 
-as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if packet hit the drop policy
 AT_CHECK([ovs-ofctl dump-flows br-int | \
@@ -7790,7 +7790,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep lr_in_policy | grep 
"192.168.1.0" | wc -l]
 packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && eth.dst==$ls1_ro_mac &&
        ip4 && ip.ttl==64 && ip4.src==$ls1_p1_ip && ip4.dst==$ls2_p1_ip &&
        udp && udp.src==53 && udp.dst==4369"
-as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if packet hit the allow policy
 sleep 1
@@ -7822,7 +7822,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep lr_in_policy | \
 packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && eth.dst==$ls1_ro_mac &&
        ip4 && ip.ttl==64 && ip4.src==$ls1_p1_ip && ip4.dst==$ls2_p1_ip &&
        udp && udp.src==53 && udp.dst==4369"
-as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 sleep 1
 
 echo "southbound flows"
@@ -7950,7 +7950,7 @@ packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && 
eth.dst==$ls1_ro_mac &&
        ip6 && ip.ttl==64 && ip6.src==$ls1_p1_ip && ip6.dst==$ls2_p1_ip &&
        udp && udp.src==53 && udp.dst==4369"
 
-as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if packet hit the drop policy
 AT_CHECK([ovs-ofctl dump-flows br-int | \
@@ -7978,7 +7978,7 @@ AT_CHECK([grep lr_in_policy sbflows2 | grep "2001" | wc 
-l], [0], [dnl
 packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && eth.dst==$ls1_ro_mac &&
        ip6 && ip.ttl==64 && ip6.src==$ls1_p1_ip && ip6.dst==$ls2_p1_ip &&
        udp && udp.src==53 && udp.dst==4369"
-as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if packet hit the allow policy
 ovn-sbctl dump-flows > sbflows3
@@ -8013,7 +8013,7 @@ AT_CHECK([grep lr_in_policy sbflows4 | \
 packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && eth.dst==$ls1_ro_mac &&
        ip6 && ip.ttl==64 && ip6.src==$ls1_p1_ip && ip6.dst==$ls2_p1_ip &&
        udp && udp.src==53 && udp.dst==4369"
-as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as pbr-hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 sleep 1
 
 ovn-sbctl dump-flows > sbflows5
@@ -9543,73 +9543,73 @@ AT_CAPTURE_FILE([sbflows])
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4360 && tcp.dst==80"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be dropped with logging in the ingress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4361 && tcp.dst==81"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be dropped without logging in the eggress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4360 && tcp.dst==180"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be dropped with logging in the egress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4361 && tcp.dst==181"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be allowed without logging.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4362 && tcp.dst==82"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be allowed with logging.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4363 && tcp.dst==83"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should allow related flows without logging.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4364 && tcp.dst==84"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should allow related flows with logging.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4365 && tcp.dst==85"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be rejected without logging in the ingress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4366 && tcp.dst==86"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be rejected with logging in the ingress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4367 && tcp.dst==87"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be rejected without logging in the egress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4366 && tcp.dst==186"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Send packet that should be rejected with logging in the egress pipeline.
 packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
         ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
         tcp && tcp.flags==2 && tcp.src==4367 && tcp.dst==187"
-as hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 OVS_WAIT_UNTIL([ test 8 = $(grep -c 'acl_log' hv/ovn-controller.log) ])
 
@@ -17346,7 +17346,7 @@ test_icmp() {
                   icmp4.code==0"
     shift; shift; shift; shift; shift; shift
     hv=hv`vif_to_hv $inport`
-    as $hv ovs-appctl -t ovn-controller inject-pkt "$packet"
+    OVS_WAIT_UNTIL([as $hv ovs-appctl -t ovn-controller inject-pkt "$packet"])
     in_ls=`vif_to_ls $inport`
     in_lrp=`vif_to_lrp $inport`
     for outport; do
@@ -18811,7 +18811,7 @@ packet="inport==\"sw1-p1\" && eth.src==$sw1_p1_mac && 
eth.dst==$sw1_ro_mac &&
        udp && udp.src==53 && udp.dst==4369"
 
 # Start by Sending the packet and make sure it makes it there as expected
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Expected packet has TTL decreased by 1
 expected="eth.src==$sw2_ro_mac && eth.dst==$sw2_p1_mac &&
@@ -18825,7 +18825,7 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
 as hv2 ovs-appctl -t ovn-controller exit
 
 # Now send the packet again. This time, it should not arrive.
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
 
@@ -19707,7 +19707,7 @@ packet="inport==\"sw1-p1\" && eth.src==$sw1_p1_mac && 
eth.dst==$sw1_ro_mac &&
        udp && udp.src==53 && udp.dst==4369"
 
 # Start by Sending the packet and make sure it makes it there as expected
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Expected packet has TTL decreased by 1
 expected="eth.src==$sw2_ro_mac && eth.dst==$sw2_p1_mac &&
@@ -19721,7 +19721,7 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
 as hv2 ovs-appctl -t ovn-controller exit --restart
 
 # Now send the packet again. This time, it should still arrive
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 cat expected expected > expected2
 
@@ -21623,7 +21623,7 @@ AT_CAPTURE_FILE([offlows])
 packet0="inport==\"sw0-p11\" && eth.src==00:00:00:00:00:11 && 
eth.dst==00:00:00:00:00:21 &&
          ip4 && ip.ttl==64 && ip4.src==192.168.1.11 && ip4.dst==192.168.1.100 
&&
          tcp && tcp.src==10000 && tcp.dst==80"
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet0"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet0"])
 ovn-nbctl --wait=hv
 
 ovn-sbctl list controller_event > events
@@ -21652,7 +21652,7 @@ packet1="inport==\"sw1-p0\" && 
eth.src==00:00:00:00:00:33 && eth.dst==00:00:00:0
          ip4 && ip.ttl==64 && ip4.src==192.168.2.11 && ip4.dst==192.168.2.100 
&&
          tcp && tcp.src==10000 && tcp.dst==80"
 
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet1"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet1"])
 ovn-nbctl --wait=hv
 ovn-sbctl list controller_event
 uuid=$(ovn-sbctl list controller_event | awk '/_uuid/{print $3}')
@@ -21668,7 +21668,7 @@ packet2="inport==\"sw0-p11\" && 
eth.src==00:00:00:00:00:11 && eth.dst==00:00:00:
          ip6 && ip.ttl==64 && ip6.src==2001::11 && ip6.dst==2001::10 &&
          tcp && tcp.src==10000 && tcp.dst==50051"
 
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet2"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet2"])
 ovn-nbctl --wait=hv
 ovn-sbctl list controller_event
 uuid=$(ovn-sbctl list controller_event | awk '/_uuid/{print $3}')
@@ -25552,7 +25552,7 @@ for s_az in $(seq 1 $n_az); do
                     udp && udp.src==53 && udp.dst==4369"
             echo "sending: $packet"
             AT_CHECK([ovn_trace --ovs "$packet" > 
${s_az}-${d_az}-$i.ovn-trace])
-            AT_CHECK([ovs-appctl -t ovn-controller inject-pkt "$packet"])
+            OVS_WAIT_UNTIL([ovs-appctl -t ovn-controller inject-pkt "$packet"])
             ovs_inport=$(ovs-vsctl --bare --columns=ofport find Interface 
external-ids:iface-id="$ovn_inport")
 
             ovs_packet=$(echo $packet | ovstest test-ovn expr-to-packets)
@@ -26107,7 +26107,7 @@ for i in $(seq 5001 5010); do
     packet="inport==\"lsp11\" && eth.src==f0:00:00:00:01:11 && 
eth.dst==00:00:00:01:01:01 &&
             ip4 && ip.ttl==64 && ip4.src==192.168.1.11 && ip4.dst==10.0.0.123 
&&
             tcp && tcp.src==$i && tcp.dst==80"
-    AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+    OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
     for j in 1 2; do
         # Assume all packets go to lsp2${j}.
@@ -26226,7 +26226,7 @@ wait_for_ports_up
 # Test 1
 packet="inport==\"lsp11\" && eth.src==f0:00:00:00:01:11 && 
eth.dst==00:00:00:01:01:01 &&
         ip4 && ip.ttl==64 && ip4.src==192.168.1.11 && ip4.dst==2.2.2.2 && icmp"
-AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Assume no packets go neither to lsp21 nor to lsp22.
 > expected_lsp21
@@ -26256,7 +26256,7 @@ done
 # Test 2
 packet="inport==\"lsp11\" && eth.src==f0:00:00:00:01:11 && 
eth.dst==00:00:00:01:01:01 &&
         ip4 && ip.ttl==64 && ip4.src==192.168.1.11 && ip4.dst==1.1.1.1 && icmp"
-AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Assume all packets go to lsp22.
 exp_packet="eth.src==00:00:00:01:02:01 && eth.dst==f0:00:00:00:02:22 &&
@@ -26286,7 +26286,7 @@ done
 # Test 3
 packet="inport==\"lsp21\" && eth.src==f0:00:00:00:02:21 && 
eth.dst==00:00:00:01:02:01 &&
         ip4 && ip.ttl==64 && ip4.src==192.168.2.21 && ip4.dst==2.2.2.2 && icmp"
-AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Assume all packets go to lsp21.
 exp_packet="eth.src==00:00:00:01:02:01 && eth.dst==f0:00:00:00:02:21 &&
@@ -26383,7 +26383,7 @@ wait_for_ports_up
 # test 1
 packet="inport==\"lsp11\" && eth.src==f0:00:00:00:01:11 && 
eth.dst==00:00:00:01:01:01 &&
         ip4 && ip.ttl==64 && ip4.src==192.168.1.11 && ip4.dst==192.168.2.21 && 
icmp"
-AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Assume all packets go to lsp21.
 exp_packet="eth.src==00:00:00:01:02:01 && eth.dst==f0:00:00:00:02:21 && ip4 &&
@@ -26417,7 +26417,7 @@ ovs-vsctl set interface hv1-vif2 
options:tx_pcap=hv1/vif2-tx.pcap
 # test 2
 packet="inport==\"lsp11\" && eth.src==f0:00:00:00:01:11 && 
eth.dst==00:00:00:01:01:01 &&
         ip4 && ip.ttl==64 && ip4.src==192.168.1.11 && ip4.dst==192.168.2.200 
&& icmp"
-AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Assume all packets go to lsp11.
 exp_packet="eth.src==00:00:00:01:01:01 && eth.dst==f0:00:00:00:01:11 && ip4 &&
@@ -26522,7 +26522,7 @@ for i in $(seq 1 2); do
     packet="inport==\"lsp${i}1\" && eth.src==f0:00:00:00:0${i}:1${i} &&
             eth.dst==00:00:00:01:0${i}:01 && ip4 && ip.ttl==64 &&
             ip4.src==192.168.${i}.${i}1 && ip4.dst==10.0.0.1 && icmp"
-    AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+    OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
     # Assume all packets go to lsp${di}1.
     exp_packet="eth.src==00:00:00:01:0${di}:01 && 
eth.dst==f0:00:00:00:0${di}:1${di} &&
@@ -26635,7 +26635,7 @@ for i in $(seq 1 2); do
     packet="inport==\"lsp${i}1\" && eth.src==f0:00:00:00:0${i}:1${i} &&
             eth.dst==00:00:00:01:0${i}:01 && ip6 && ip.ttl==64 &&
             ip6.src==2001:db8:${i}::${i}1 && ip6.dst==2001:db8:2000::1 && 
icmp6"
-    AT_CHECK([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
+    OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
     # Assume all packets go to lsp${di}1.
     exp_packet="eth.src==00:00:00:01:0${di}:01 && 
eth.dst==f0:00:00:00:0${di}:1${di} && ip6 &&
@@ -26755,7 +26755,7 @@ dst_ip=172.16.1.11
 packet="inport==\"lsp11\" && eth.src==$src_mac && eth.dst==$dst_mac &&
         ip4 && ip.ttl==64 && ip4.src==$src_ip && ip4.dst==$dst_ip &&
         udp && udp.src==53 && udp.dst==4369"
-check as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if the packet hit the forwarding group policy
 AT_CAPTURE_FILE([offlows2])
@@ -31968,7 +31968,7 @@ packet="inport==\"sw1-lp1\" && 
eth.src==00:00:04:01:02:03 &&
        ip4.src==10.0.0.100 && ip4.dst==20.0.0.200 &&
        udp && udp.src==53 && udp.dst==4369"
 
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if packet hit the drop rule
 AT_CHECK([ovs-ofctl dump-flows br-int | grep "nw_dst=20.0.0.0/24" | \
@@ -31995,7 +31995,7 @@ packet="inport==\"sw1-lp1\" && 
eth.src==00:00:04:01:02:03 &&
        ip4.src==10.0.0.100 && ip4.dst==20.0.0.200 &&
        udp && udp.src==53 && udp.dst==4369"
 
-as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"])
 
 # Check if packet hit the drop rule
 AT_CHECK([ovs-ofctl dump-flows br-int "nw_src=10.0.0.0/24" | \
@@ -32200,7 +32200,7 @@ packet="inport==\"ls1-lp1\" && eth.src==$ls1_p1_mac && 
eth.dst==$bcast_mac &&
        arp.op==1 && arp.sha==$ls1_p1_mac && arp.spa==$ls1_p1_ip4 &&
        arp.tha==$bcast_mac && arp.tpa==${arp_proxy_ls1[[1]]}"
 
-as hv1 ovn-appctl -t ovn-controller inject-pkt "$packet"
+OVS_WAIT_UNTIL([as hv1 ovn-appctl -t ovn-controller inject-pkt "$packet"])
 
 as hv1 ovs-ofctl dump-flows br-int| \
                  grep ${arp_proxy_ls1[[1]]} | grep priority=50 > debug1
-- 
2.31.1

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

Reply via email to