[ovs-dev] [PATCH ovn v5 02/15] ovn-controller: Implement translation of OVN flows into OpenFlow.

Ben Pfaff blp at nicira.com
Fri May 1 23:10:46 UTC 2015


On Fri, May 01, 2015 at 03:28:28PM -0400, Russell Bryant wrote:
> On 04/30/2015 02:48 AM, Ben Pfaff wrote:
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > +        ldp = ldp_lookup(&pipeline->logical_datapath);
> > +        if (!ldp) {
> > +            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 1);
> > +            VLOG_INFO_RL(&rl,
> > +                         "logical flow for unknown logical datapath "UUID_FMT,
> > +                         UUID_ARGS(&pipeline->logical_datapath));
> > +            continue;
> > +        }
> 
> It looks like I'm getting this message when deleting a logical datapath.
>  It's pretty easy to replicate.
> 
> $ ovn-nbctl lswitch-add foo
> $ ovn-nbctl lswitch-del foo
> 
> 2015-05-01T19:25:23.282Z|00008|pipeline|INFO|logical flow for unknown
> logical datapath 5fe86814-9c7d-408b-82f9-0f2f13eacff1
> 
> It looks like an expected condition, so perhaps it should just be
> dropped?  Or maybe debug ..

I think it won't be too unusual but it should generally be a transient
condition.  I think it's reasonable to just count the number of times it
happens.

I folded this in:

diff --git a/ovn/controller/pipeline.c b/ovn/controller/pipeline.c
index f124354..2a36a77 100644
--- a/ovn/controller/pipeline.c
+++ b/ovn/controller/pipeline.c
@@ -15,6 +15,7 @@
 
 #include <config.h>
 #include "pipeline.h"
+#include "coverage.h"
 #include "dynamic-string.h"
 #include "ofp-actions.h"
 #include "ofpbuf.h"
@@ -26,6 +27,8 @@
 #include "simap.h"
 
 VLOG_DEFINE_THIS_MODULE(pipeline);
+
+COVERAGE_DEFINE(pipeline_unknown_logical_datapath);
 
 /* Symbol table. */
 
@@ -275,10 +278,7 @@ pipeline_run(struct controller_ctx *ctx)
         const struct logical_datapath *ldp;
         ldp = ldp_lookup(&pipeline->logical_datapath);
         if (!ldp) {
-            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 1);
-            VLOG_INFO_RL(&rl,
-                         "logical flow for unknown logical datapath "UUID_FMT,
-                         UUID_ARGS(&pipeline->logical_datapath));
+            COVERAGE_INC(pipeline_unknown_logical_datapath);
             continue;
         }
 



More information about the dev mailing list