[ovs-dev] [PATCH 17/26] ofproto-dpif-xlate: Move 'mirrors' from xlate_out to xlate_ctx.

Ben Pfaff blp at nicira.com
Thu Jul 30 06:42:37 UTC 2015


Nothing outside of ofproto-dpif-xlate.c referenced this member.

Signed-off-by: Ben Pfaff <blp at nicira.com>
---
 ofproto/ofproto-dpif-xlate.c | 21 +++++++++++----------
 ofproto/ofproto-dpif-xlate.h |  1 -
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 8a208a4..2a91cfc 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -206,6 +206,7 @@ struct xlate_ctx {
     uint32_t sflow_n_outputs;   /* Number of output ports. */
     odp_port_t sflow_odp_port;  /* Output port for composing sFlow action. */
     bool exit;                  /* No further actions should be processed. */
+    mirror_mask_t mirrors;      /* Bitmap of associated mirrors. */
 
    /* These are used for non-bond recirculation.  The recirculation IDs are
     * stored in xout and must be associated with a datapath flow (ukey),
@@ -1536,8 +1537,8 @@ add_mirror_actions(struct xlate_ctx *ctx, const struct flow *orig_flow)
     uint16_t vlan;
     uint16_t vid;
 
-    mirrors = ctx->xout->mirrors;
-    ctx->xout->mirrors = 0;
+    mirrors = ctx->mirrors;
+    ctx->mirrors = 0;
 
     in_xbundle = lookup_input_bundle(xbridge, orig_flow->in_port.ofp_port,
                                      ctx->xin->packet != NULL, NULL);
@@ -1595,7 +1596,7 @@ add_mirror_actions(struct xlate_ctx *ctx, const struct flow *orig_flow)
         }
 
         mirrors &= ~dup_mirrors;
-        ctx->xout->mirrors |= dup_mirrors;
+        ctx->mirrors |= dup_mirrors;
         if (out) {
             struct xlate_cfg *xcfg = ovsrcu_get(struct xlate_cfg *, &xcfgp);
             struct xbundle *out_xbundle = xbundle_lookup(xcfg, out);
@@ -2825,8 +2826,8 @@ compose_output_action__(struct xlate_ctx *ctx, ofp_port_t ofp_port,
     }
 
     if (mbridge_has_mirrors(ctx->xbridge->mbridge) && xport->xbundle) {
-        ctx->xout->mirrors |= xbundle_mirror_dst(xport->xbundle->xbridge,
-                                                 xport->xbundle);
+        ctx->mirrors |= xbundle_mirror_dst(xport->xbundle->xbridge,
+                                           xport->xbundle);
     }
 
     if (xport->peer) {
@@ -2871,10 +2872,10 @@ compose_output_action__(struct xlate_ctx *ctx, ofp_port_t ofp_port,
                  * the learning action look at the packet, then drop it. */
                 struct flow old_base_flow = ctx->base_flow;
                 size_t old_size = ctx->odp_actions->size;
-                mirror_mask_t old_mirrors = ctx->xout->mirrors;
+                mirror_mask_t old_mirrors = ctx->mirrors;
 
                 xlate_table_action(ctx, flow->in_port.ofp_port, 0, true, true);
-                ctx->xout->mirrors = old_mirrors;
+                ctx->mirrors = old_mirrors;
                 ctx->base_flow = old_base_flow;
                 ctx->odp_actions->size = old_size;
 
@@ -4722,7 +4723,6 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout)
         .has_normal = false,
         .has_fin_timeout = false,
         .nf_output_iface = NF_OUT_DROP,
-        .mirrors = 0,
         .n_recircs = 0,
     };
 
@@ -4761,6 +4761,7 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout)
         .sflow_n_outputs = 0,
         .sflow_odp_port = 0,
         .exit = false,
+        .mirrors = 0,
 
         .recirc_action_offset = -1,
         .last_unroll_offset = -1,
@@ -5014,7 +5015,7 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout)
     /* Update mirror stats only for packets really received by the bridge. */
     if (!xin->recirc && mbridge_has_mirrors(xbridge->mbridge)) {
         if (ctx.xin->resubmit_stats) {
-            mirror_update_stats(xbridge->mbridge, xout->mirrors,
+            mirror_update_stats(xbridge->mbridge, ctx.mirrors,
                                 ctx.xin->resubmit_stats->n_packets,
                                 ctx.xin->resubmit_stats->n_bytes);
         }
@@ -5023,7 +5024,7 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout)
 
             entry = xlate_cache_add_entry(ctx.xin->xcache, XC_MIRROR);
             entry->u.mirror.mbridge = mbridge_ref(xbridge->mbridge);
-            entry->u.mirror.mirrors = xout->mirrors;
+            entry->u.mirror.mirrors = ctx.mirrors;
         }
     }
 
diff --git a/ofproto/ofproto-dpif-xlate.h b/ofproto/ofproto-dpif-xlate.h
index 9c9d2f2..346c735 100644
--- a/ofproto/ofproto-dpif-xlate.h
+++ b/ofproto/ofproto-dpif-xlate.h
@@ -44,7 +44,6 @@ struct xlate_out {
     bool has_normal;            /* Actions output to OFPP_NORMAL? */
     bool has_fin_timeout;       /* Actions include NXAST_FIN_TIMEOUT? */
     ofp_port_t nf_output_iface; /* Output interface index for NetFlow. */
-    mirror_mask_t mirrors;      /* Bitmap of associated mirrors. */
 
     /* Recirculation IDs on which references are held. */
     unsigned n_recircs;
-- 
2.1.3




More information about the dev mailing list