ofproto-dpif-xlate: Actually drop packets on mirror ports.
authorEthan Jackson <ethan@nicira.com>
Sun, 7 Jul 2013 10:52:16 +0000 (03:52 -0700)
committerEthan Jackson <ethan@nicira.com>
Sun, 7 Jul 2013 11:43:19 +0000 (04:43 -0700)
Reported-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
ofproto/ofproto-dpif-xlate.c

index 2ba9560..3a23c1f 100644 (file)
@@ -195,6 +195,7 @@ add_mirror_actions(struct xlate_ctx *ctx, const struct flow *orig_flow)
                          "%s, which is reserved exclusively for mirroring",
                          ctx->ofproto->up.name, in_bundle->name);
         }
+        ofpbuf_clear(&ctx->xout->odp_actions);
         return;
     }
 
@@ -2008,10 +2009,12 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout)
             && !actions_output_to_local_port(&ctx)) {
             compose_output_action(&ctx, OFPP_LOCAL);
         }
+
+        fix_sflow_action(&ctx);
+
         if (mbridge_has_mirrors(ctx.ofproto->mbridge)) {
             add_mirror_actions(&ctx, &orig_flow);
         }
-        fix_sflow_action(&ctx);
     }
 
     ofpbuf_uninit(&ctx.stack);