On Thu, Mar 19, 2015 at 06:03:25PM -0700, Jarno Rajahalme wrote:
> Signed-off-by: Jarno Rajahalme <[email protected]>
I think that most of this is code refactoring that should cause visible
change in behavior, with the exception of this change:
> @@ -2731,6 +2739,7 @@ compose_output_action__(struct xlate_ctx *ctx,
> ofp_port_t ofp_port,
> if (xport->peer) {
> const struct xport *peer = xport->peer;
> struct flow old_flow = ctx->xin->flow;
> + bool old_was_mpls = ctx->was_mpls;
> enum slow_path_reason special;
> uint8_t table_id =
> rule_dpif_lookup_get_init_table_id(&ctx->xin->flow);
> struct ofpbuf old_stack = ctx->stack;
> @@ -2781,6 +2790,10 @@ compose_output_action__(struct xlate_ctx *ctx,
> ofp_port_t ofp_port,
> ofpbuf_uninit(&ctx->stack);
> ctx->stack = old_stack;
>
> + /* The peer bridge popping MPLS should have no effect on the original
> + * bridge. */
> + ctx->was_mpls = old_was_mpls;
> +
> /* The fact that the peer bridge exits (for any reason) does not mean
> * that the original bridge should exit. Specifically, if the peer
> * bridge recirculates (which typically modifies the packet), the
If I'm correct about that, I'd consider making that a change of its own
to call out the difference.
Either way,
Acked-by: Ben Pfaff <[email protected]>
Thank you!
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev