diff mbox series

[ovs-dev] tests: Fixed flaky lr multiple gw ports

Message ID 20230428120151.2208589-1-xsimonar@redhat.com
State Accepted
Headers show
Series [ovs-dev] tests: Fixed flaky lr multiple gw ports | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Xavier Simonart April 28, 2023, 12:01 p.m. UTC
Tests was sometimes failing due to some race conditions using
Dummy ARP: the flows in OFTABLE_MAC_LOOKUP (generated by the Dummy ARP)
were not yet installed when the IP packet got sent.

Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
---
 tests/ovn.at | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Mark Michelson May 1, 2023, 7:37 p.m. UTC | #1
Thanks Xavier.

Acked-by: Mark Michelson <mmichels@redhat.com>

On 4/28/23 08:01, Xavier Simonart wrote:
> Tests was sometimes failing due to some race conditions using
> Dummy ARP: the flows in OFTABLE_MAC_LOOKUP (generated by the Dummy ARP)
> were not yet installed when the IP packet got sent.
> 
> Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
> ---
>   tests/ovn.at | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/ovn.at b/tests/ovn.at
> index 7e804699a..389cf5d7f 100644
> --- a/tests/ovn.at
> +++ b/tests/ovn.at
> @@ -32452,7 +32452,6 @@ ovn-nbctl lrp-set-gateway-chassis DR-S3 hv4
>   
>   ovn-nbctl --wait=sb sync
>   OVN_POPULATE_ARP
> -
>   vif_to_ls () {
>       case ${1} in dnl (
>           vif?[[11]]) echo ls ;; dnl (
> @@ -32566,6 +32565,9 @@ echo "Send Dummy ARP"
>   sip=`ip_to_hex 172 16 1 10`
>   tip=`ip_to_hex 172 16 1 50`
>   test_arp vif-north1 f0f000000011 $sip $tip
> +OVS_WAIT_UNTIL(
> +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep dl_src=f0:f0:00:00:00:11 | wc -l`]
> +)
>   
>   echo "Send traffic North to South"
>   sip=`ip_to_hex 172 16 1 10`
> @@ -32586,6 +32588,9 @@ echo "Send Dummy ARP"
>   sip=`ip_to_hex 10 0 0 10`
>   tip=`ip_to_hex 10 0 0 50`
>   test_arp vif-north2 f0f000000022 $sip $tip
> +OVS_WAIT_UNTIL(
> +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep dl_src=f0:f0:00:00:00:22 | wc -l`]
> +)
>   
>   echo "Send traffic South to North2"
>   sip=`ip_to_hex 20 0 0 10`
> @@ -32599,6 +32604,9 @@ echo "Send Dummy ARP"
>   sip=`ip_to_hex 192 168 0 10`
>   tip=`ip_to_hex 192 168 0 50`
>   test_arp vif-north3 f0f000000033 $sip $tip
> +OVS_WAIT_UNTIL(
> +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep dl_src=f0:f0:00:00:00:33 | wc -l`]
> +)
>   
>   echo "Send traffic South to North3"
>   sip=`ip_to_hex 20 0 0 10`
Ales Musil May 5, 2023, 5:50 a.m. UTC | #2
On Mon, May 1, 2023 at 9:37 PM Mark Michelson <mmichels@redhat.com> wrote:

> Thanks Xavier.
>
> Acked-by: Mark Michelson <mmichels@redhat.com>
>
> On 4/28/23 08:01, Xavier Simonart wrote:
> > Tests was sometimes failing due to some race conditions using
> > Dummy ARP: the flows in OFTABLE_MAC_LOOKUP (generated by the Dummy ARP)
> > were not yet installed when the IP packet got sent.
> >
> > Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
> > ---
> >   tests/ovn.at | 10 +++++++++-
> >   1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/ovn.at b/tests/ovn.at
> > index 7e804699a..389cf5d7f 100644
> > --- a/tests/ovn.at
> > +++ b/tests/ovn.at
> > @@ -32452,7 +32452,6 @@ ovn-nbctl lrp-set-gateway-chassis DR-S3 hv4
> >
> >   ovn-nbctl --wait=sb sync
> >   OVN_POPULATE_ARP
> > -
> >   vif_to_ls () {
> >       case ${1} in dnl (
> >           vif?[[11]]) echo ls ;; dnl (
> > @@ -32566,6 +32565,9 @@ echo "Send Dummy ARP"
> >   sip=`ip_to_hex 172 16 1 10`
> >   tip=`ip_to_hex 172 16 1 50`
> >   test_arp vif-north1 f0f000000011 $sip $tip
> > +OVS_WAIT_UNTIL(
> > +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep
> dl_src=f0:f0:00:00:00:11 | wc -l`]
> > +)
> >
> >   echo "Send traffic North to South"
> >   sip=`ip_to_hex 172 16 1 10`
> > @@ -32586,6 +32588,9 @@ echo "Send Dummy ARP"
> >   sip=`ip_to_hex 10 0 0 10`
> >   tip=`ip_to_hex 10 0 0 50`
> >   test_arp vif-north2 f0f000000022 $sip $tip
> > +OVS_WAIT_UNTIL(
> > +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep
> dl_src=f0:f0:00:00:00:22 | wc -l`]
> > +)
> >
> >   echo "Send traffic South to North2"
> >   sip=`ip_to_hex 20 0 0 10`
> > @@ -32599,6 +32604,9 @@ echo "Send Dummy ARP"
> >   sip=`ip_to_hex 192 168 0 10`
> >   tip=`ip_to_hex 192 168 0 50`
> >   test_arp vif-north3 f0f000000033 $sip $tip
> > +OVS_WAIT_UNTIL(
> > +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep
> dl_src=f0:f0:00:00:00:33 | wc -l`]
> > +)
> >
> >   echo "Send traffic South to North3"
> >   sip=`ip_to_hex 20 0 0 10`
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
Looks good to me, thanks.

Acked-by: Ales Musil <amusil@redhat.com>
Dumitru Ceara May 8, 2023, 11:05 a.m. UTC | #3
On 5/5/23 07:50, Ales Musil wrote:
> On Mon, May 1, 2023 at 9:37 PM Mark Michelson <mmichels@redhat.com> wrote:
> 
>> Thanks Xavier.
>>
>> Acked-by: Mark Michelson <mmichels@redhat.com>
>>
>> On 4/28/23 08:01, Xavier Simonart wrote:
>>> Tests was sometimes failing due to some race conditions using
>>> Dummy ARP: the flows in OFTABLE_MAC_LOOKUP (generated by the Dummy ARP)
>>> were not yet installed when the IP packet got sent.
>>>
>>> Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
>>> ---
>>>   tests/ovn.at | 10 +++++++++-
>>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/tests/ovn.at b/tests/ovn.at
>>> index 7e804699a..389cf5d7f 100644
>>> --- a/tests/ovn.at
>>> +++ b/tests/ovn.at
>>> @@ -32452,7 +32452,6 @@ ovn-nbctl lrp-set-gateway-chassis DR-S3 hv4
>>>
>>>   ovn-nbctl --wait=sb sync
>>>   OVN_POPULATE_ARP
>>> -
>>>   vif_to_ls () {
>>>       case ${1} in dnl (
>>>           vif?[[11]]) echo ls ;; dnl (
>>> @@ -32566,6 +32565,9 @@ echo "Send Dummy ARP"
>>>   sip=`ip_to_hex 172 16 1 10`
>>>   tip=`ip_to_hex 172 16 1 50`
>>>   test_arp vif-north1 f0f000000011 $sip $tip
>>> +OVS_WAIT_UNTIL(
>>> +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep
>> dl_src=f0:f0:00:00:00:11 | wc -l`]
>>> +)
>>>
>>>   echo "Send traffic North to South"
>>>   sip=`ip_to_hex 172 16 1 10`
>>> @@ -32586,6 +32588,9 @@ echo "Send Dummy ARP"
>>>   sip=`ip_to_hex 10 0 0 10`
>>>   tip=`ip_to_hex 10 0 0 50`
>>>   test_arp vif-north2 f0f000000022 $sip $tip
>>> +OVS_WAIT_UNTIL(
>>> +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep
>> dl_src=f0:f0:00:00:00:22 | wc -l`]
>>> +)
>>>
>>>   echo "Send traffic South to North2"
>>>   sip=`ip_to_hex 20 0 0 10`
>>> @@ -32599,6 +32604,9 @@ echo "Send Dummy ARP"
>>>   sip=`ip_to_hex 192 168 0 10`
>>>   tip=`ip_to_hex 192 168 0 50`
>>>   test_arp vif-north3 f0f000000033 $sip $tip
>>> +OVS_WAIT_UNTIL(
>>> +    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep
>> dl_src=f0:f0:00:00:00:33 | wc -l`]
>>> +)
>>>
>>>   echo "Send traffic South to North3"
>>>   sip=`ip_to_hex 20 0 0 10`
>>
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
>>
> Looks good to me, thanks.
> 
> Acked-by: Ales Musil <amusil@redhat.com>
> 

Thanks, Xavier, Ales and Mark!  I applied this to the main branch and
backported it to all stable branches down to 22.06.

Regards,
Dumitru
diff mbox series

Patch

diff --git a/tests/ovn.at b/tests/ovn.at
index 7e804699a..389cf5d7f 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -32452,7 +32452,6 @@  ovn-nbctl lrp-set-gateway-chassis DR-S3 hv4
 
 ovn-nbctl --wait=sb sync
 OVN_POPULATE_ARP
-
 vif_to_ls () {
     case ${1} in dnl (
         vif?[[11]]) echo ls ;; dnl (
@@ -32566,6 +32565,9 @@  echo "Send Dummy ARP"
 sip=`ip_to_hex 172 16 1 10`
 tip=`ip_to_hex 172 16 1 50`
 test_arp vif-north1 f0f000000011 $sip $tip
+OVS_WAIT_UNTIL(
+    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep dl_src=f0:f0:00:00:00:11 | wc -l`]
+)
 
 echo "Send traffic North to South"
 sip=`ip_to_hex 172 16 1 10`
@@ -32586,6 +32588,9 @@  echo "Send Dummy ARP"
 sip=`ip_to_hex 10 0 0 10`
 tip=`ip_to_hex 10 0 0 50`
 test_arp vif-north2 f0f000000022 $sip $tip
+OVS_WAIT_UNTIL(
+    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep dl_src=f0:f0:00:00:00:22 | wc -l`]
+)
 
 echo "Send traffic South to North2"
 sip=`ip_to_hex 20 0 0 10`
@@ -32599,6 +32604,9 @@  echo "Send Dummy ARP"
 sip=`ip_to_hex 192 168 0 10`
 tip=`ip_to_hex 192 168 0 50`
 test_arp vif-north3 f0f000000033 $sip $tip
+OVS_WAIT_UNTIL(
+    [test 1 = `as hv1 ovs-ofctl dump-flows br-int table=67 | grep dl_src=f0:f0:00:00:00:33 | wc -l`]
+)
 
 echo "Send traffic South to North3"
 sip=`ip_to_hex 20 0 0 10`