[ovs-dev] [PATCH ovn v3] ovn.at: Fix test "virtual ports -- ovn-northd-ddlog".

Han Zhou hzhou at ovn.org
Tue Jun 22 01:45:20 UTC 2021


On Mon, Jun 21, 2021 at 6:37 PM Han Zhou <hzhou at ovn.org> wrote:
>
> The test case fails quite often for northd-ddlog because of the tunnel
> keys mismatch when comparing OpenFlow rules. Keys can change in
> different runs. This patch fixes it by extracting the expected keys from
> SB DB before comparison instead of hardcoding.
>
> There are some other potential timing issues in this test and this
> patch fixes them as well by replacing AT_CHECK with wait_column.
>
> Signed-off-by: Han Zhou <hzhou at ovn.org>
> ---
> v1 -> v2: addresses Mark Michelson's comments - adding more fixes to
potential
>           timing issues.
> v2 -> v3: addresses Ben and Mark's comments:
>     - Using wait_column instead of OVS_WAIT_UNTIL.
>     - Using hex instead of decimal for the tunnel key match.
>
>  tests/ovn.at | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/tests/ovn.at b/tests/ovn.at
> index bc494fcad..914e07636 100644
> --- a/tests/ovn.at
> +++ b/tests/ovn.at
> @@ -17311,27 +17311,29 @@ logical_port=sw0-vir) = x])
>  as hv1
>  ovs-vsctl set interface hv1-vif3 external-ids:iface-id=sw0-vir
>
> -AT_CHECK([test x$(ovn-sbctl --bare --columns chassis find port_binding \
> -logical_port=sw0-vir) = x], [0], [])
> +wait_column "" Port_Binding chassis logical_port=sw0-vir
>
>  # Cleanup hv1-vif3.
>  as hv1
>  ovs-vsctl del-port hv1-vif3
>
> -AT_CHECK([test x$(ovn-sbctl --bare --columns chassis find port_binding \
> -logical_port=sw0-vir) = x], [0], [])
> +wait_column "" Port_Binding chassis logical_port=sw0-vir
>
>  check_virtual_offlows_present() {
>      hv=$1
>
> -    AT_CHECK([as $hv ovs-ofctl dump-flows br-int table=44 |
ofctl_strip_all | grep "priority=2000"], [0], [dnl
> - table=44, priority=2000,ip,metadata=0x1 actions=resubmit(,45)
> - table=44, priority=2000,ipv6,metadata=0x1 actions=resubmit(,45)
> +    sw0_dp_key=$((16#$(fetch_column Datapath_Binding tunnel_key
external_ids:name=sw0)))
> +    lr0_dp_key=$((16#$(fetch_column Datapath_Binding tunnel_key
external_ids:name=lr0)))
> +    lr0_public_dp_key=$((16#$(fetch_column Port_Binding tunnel_key
logical_port=lr0-public)))

Sorry, this is not correct. Please ignore this version. I will send v4.

> +
> +    AT_CHECK_UNQUOTED([as $hv ovs-ofctl dump-flows br-int table=44 |
ofctl_strip_all | grep "priority=2000"], [0], [dnl
> + table=44, priority=2000,ip,metadata=0x$sw0_dp_key actions=resubmit(,45)
> + table=44, priority=2000,ipv6,metadata=0x$sw0_dp_key
actions=resubmit(,45)
>  ])
>
> -    AT_CHECK([as $hv ovs-ofctl dump-flows br-int table=11 |
ofctl_strip_all | \
> +    AT_CHECK_UNQUOTED([as $hv ovs-ofctl dump-flows br-int table=11 |
ofctl_strip_all | \
>      grep "priority=92" | grep 172.168.0.50], [0], [dnl
> - table=11,
priority=92,arp,reg14=0x3,metadata=0x3,arp_tpa=172.168.0.50,arp_op=1
actions=move:NXM_OF_ETH_SRC[[]]->NXM_OF_ETH_DST[[]],mod_dl_src:10:54:00:00:00:10,load:0x2->NXM_OF_ARP_OP[[]],move:NXM_NX_ARP_SHA[[]]->NXM_NX_ARP_THA[[]],load:0x105400000010->NXM_NX_ARP_SHA[[]],push:NXM_OF_ARP_SPA[[]],push:NXM_OF_ARP_TPA[[]],pop:NXM_OF_ARP_SPA[[]],pop:NXM_OF_ARP_TPA[[]],move:NXM_NX_REG14[[]]->NXM_NX_REG15[[]],load:0x1->NXM_NX_REG10[[0]],resubmit(,37)
> + table=11,
priority=92,arp,reg14=0x$lr0_public_dp_key,metadata=0x$lr0_dp_key,arp_tpa=172.168.0.50,arp_op=1
actions=move:NXM_OF_ETH_SRC[[]]->NXM_OF_ETH_DST[[]],mod_dl_src:10:54:00:00:00:10,load:0x2->NXM_OF_ARP_OP[[]],move:NXM_NX_ARP_SHA[[]]->NXM_NX_ARP_THA[[]],load:0x105400000010->NXM_NX_ARP_SHA[[]],push:NXM_OF_ARP_SPA[[]],push:NXM_OF_ARP_TPA[[]],pop:NXM_OF_ARP_SPA[[]],pop:NXM_OF_ARP_TPA[[]],move:NXM_NX_REG14[[]]->NXM_NX_REG15[[]],load:0x1->NXM_NX_REG10[[0]],resubmit(,37)
>  ])
>  }
>
> --
> 2.30.2
>


More information about the dev mailing list