[ovs-dev] [PATCH] ofproto: Fix behavior when special_cb not present (as with ovs-openflowd).

Ben Pfaff blp at nicira.com
Thu Feb 17 23:05:57 UTC 2011


The special_cb hook allows ofproto's client to intercept packets.  When
it is not present (as in ovs-openflowd), no packets need to be intercepted,
but ofproto implemented the opposite behavior.  This fixes the problem.

Reported-by: kk yap <yapkke at stanford.edu>
---
 ofproto/ofproto.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 39d3457..e4c3528 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -3134,9 +3134,9 @@ xlate_actions(struct action_xlate_ctx *ctx,
     ctx->last_pop_priority = -1;
 
     if (!ctx->check_special
-        || (ctx->ofproto->ofhooks->special_cb
-            && ctx->ofproto->ofhooks->special_cb(&ctx->flow, ctx->packet,
-                                                 ctx->ofproto->aux))) {
+        || !ctx->ofproto->ofhooks->special_cb
+        || ctx->ofproto->ofhooks->special_cb(&ctx->flow, ctx->packet,
+                                             ctx->ofproto->aux)) {
         do_xlate_actions(in, n_in, ctx);
     } else {
         ctx->may_set_up_flow = false;
-- 
1.7.1





More information about the dev mailing list