On Thu, Mar 19, 2015 at 06:03:25PM -0700, Jarno Rajahalme wrote:
> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>

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 <b...@nicira.com>

Thank you!
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to