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

Reply via email to