On Mon, Jun 21, 2021 at 6:37 PM Han Zhou <[email protected]> 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 <[email protected]> > --- > 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 > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
