On 4/28/23 13:06, Xavier Simonart wrote: > Hi Dumitru > Hi Xavier,
> When can this "ovn-controller not ready" error happen ? Is this not only at > startup? > Can this not be fixed using wait_for_ports_up ? > This "wait_for_ports_up" is missing for the test failing in ci > (../../../tests/ovn.at:26558) - which means that, even with your fix, I am > afraid we might still get a flaky test because all flows might not be > installed when the packet is injected. > It looks to me the missing wait_for_ports_up - which can cause > "ovn-controller not ready" or missing flows - happens for these three tests: > - route tables IPv6 -- overlapping subnets > - policy-based routing: 1 HVs, 2 LSs, 1 lport/LS, 1 LR > - policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR > if ports are up (after wait_for_ports_up), can the ovn-controller still be > not ready? > I can add these too, for completeness, but AFAICT there are cases when "ovn-controller not ready" can happen, e.g., if the address set, port group, template incremental processing nodes are in state EN_STALE or EN_ABORTED. Regards, Dumitru > Thanks > Xavier > > On Fri, Apr 28, 2023 at 9:05 AM Ales Musil <[email protected]> wrote: > >> On Wed, Apr 26, 2023 at 10:49 PM Mark Michelson <[email protected]> >> wrote: >> >>> Hi Dumitru, >>> >>> This seems like a good approach to take. >>> >>> Acked-by: Mark Michelson <[email protected]> >>> >>> >>> On 4/26/23 11:36, Dumitru Ceara wrote: >>>> 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 >>> >>> _______________________________________________ >>> dev mailing list >>> [email protected] >>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >>> >>> >> Looks good to me, thanks. >> >> Acked-by: Ales Musil <[email protected]> >> >> -- >> >> Ales Musil >> >> Senior Software Engineer - OVN Core >> >> Red Hat EMEA <https://www.redhat.com> >> >> [email protected] IM: amusil >> <https://red.ht/sig> >> _______________________________________________ >> dev mailing list >> [email protected] >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
