On Tue, Jul 13, 2021 at 12:00:13PM -0700, Ben Pfaff wrote:
> On Sat, Jul 10, 2021 at 02:56:53PM +0200, Lorenzo Bianconi wrote:
> > ack, no worries. I folded the patch here:
> > https://github.com/LorenzoBianconi/ovn/tree/CoPP-v7
> > 
> > however CoPP tests available in system-ovn.at and for 
> > ovn-northd/ovn-controller
> > are failing with DDlog. Can you please double check if you are facing the 
> > same
> > issues?
> 
> I didn't run the system-ovn.at tests, but the ones for ovn-northd and
> ovn-controller are embarrassing.  Sorry about that.  I'll fix them, and
> I'll see if I can get the system-ovn tests set up and run here.

Here's a fix to fold in.  With this, I get failures in the following
tests.  I'm going to assume that this isn't related since all the
versions of the same test fail:

539: Symmetric IPv6 ECMP reply flows -- ovn-northd -- dp-groups=yes FAILED 
(ovn.at:23254)
540: Symmetric IPv6 ECMP reply flows -- ovn-northd -- dp-groups=no FAILED 
(ovn.at:23254)
541: Symmetric IPv6 ECMP reply flows -- ovn-northd-ddlog -- dp-groups=yes 
FAILED (ovn.at:23254)
542: Symmetric IPv6 ECMP reply flows -- ovn-northd-ddlog -- dp-groups=no
FAILED (ovn.at:23254)

I still haven't set up the system-ovn tests.  It's on my to-do list.

-8<--------------------------cut here-------------------------->8--

ovn-northd-ddlog: Fix CoPP behavior.

In ovn_northd.dl, the new 'controller_meter' column needs to be
included in the row UUID, otherwise replacing a row with one that is
identical except for controller_meter will fail with an ovsdb-server
transaction error.

In ovn-controller.at, it's necessary to wait for flow table updates.
---
 northd/ovn_northd.dl    | 4 ++--
 tests/ovn-controller.at | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/northd/ovn_northd.dl b/northd/ovn_northd.dl
index d7b54be85644..71e868f05db2 100644
--- a/northd/ovn_northd.dl
+++ b/northd/ovn_northd.dl
@@ -1697,7 +1697,7 @@ for (f in AggregatedFlow()) {
     if (f.logical_datapaths.size() == 1) {
         Some{var dp} = f.logical_datapaths.nth(0) in
         sb::Out_Logical_Flow(
-            ._uuid = hash128((dp, f.stage, f.priority, f.__match, f.actions, 
f.external_ids)),
+            ._uuid = hash128((dp, f.stage, f.priority, f.__match, f.actions, 
f.controller_meter, f.external_ids)),
             .logical_datapath = Some{dp},
             .logical_dp_group = None,
             .pipeline         = pipeline,
@@ -1710,7 +1710,7 @@ for (f in AggregatedFlow()) {
     } else {
         var group_uuid = hash128(f.logical_datapaths) in {
             sb::Out_Logical_Flow(
-                ._uuid = hash128((group_uuid, f.stage, f.priority, f.__match, 
f.actions, f.external_ids)),
+                ._uuid = hash128((group_uuid, f.stage, f.priority, f.__match, 
f.actions, f.controller_meter, f.external_ids)),
                 .logical_datapath = None,
                 .logical_dp_group = Some{group_uuid},
                 .pipeline         = pipeline,
diff --git a/tests/ovn-controller.at b/tests/ovn-controller.at
index 475528623b5c..e317b70aa55f 100644
--- a/tests/ovn-controller.at
+++ b/tests/ovn-controller.at
@@ -632,19 +632,19 @@ check ovn-nbctl ls-lb-add ls1 lb1
 
 # controller-event metering
 check ovn-nbctl meter-add event-elb drop 100 pktps 10
-check ovn-nbctl ls-copp-add ls1 event-elb event-elb
+check ovn-nbctl --wait=hv ls-copp-add ls1 event-elb event-elb
 
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int | grep controller | grep 
userdata=00.00.00.0f | grep -q meter_id=1])
 
 # reject metering
 check ovn-nbctl meter-add acl-meter drop 1 pktps 0
 check ovn-nbctl ls-copp-add ls1 reject acl-meter
-check ovn-nbctl acl-add ls1 from-lport 1002 'inport == "lsp1" && ip && udp' 
reject
+check ovn-nbctl --wait=hv acl-add ls1 from-lport 1002 'inport == "lsp1" && ip 
&& udp' reject
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int | grep controller | grep 
userdata=00.00.00.16 | grep -q meter_id=2])
 
 # arp metering
 check ovn-nbctl meter-add arp-meter drop 200 pktps 0
-check ovn-nbctl lr-copp-add lr1 arp-resolve arp-meter
+check ovn-nbctl --wait=hv lr-copp-add lr1 arp-resolve arp-meter
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int | grep controller | grep 
userdata=00.00.00.00 | grep -q meter_id=3])
 
 OVN_CLEANUP([hv1])
-- 
2.31.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to