On Wed, Sep 25, 2013 at 09:09:27AM -0700, Ben Pfaff wrote:
> On Wed, Sep 25, 2013 at 01:31:07PM +0900, Simon Horman wrote:
> > Rather than tracking the MPLS depth as a field in the
> > flow, which is an entirely poor place for it, just track
> > the delta to the MPLS depth during translation.
> > 
> > This logic was developed while implementing recirculation
> > and intended to be used to detect when recirculation should
> > occur. This variant of the patch uses the logic to determine
> > if processing of actions should stop due to an MPLS
> > action which cannot be translated (without recirculation).
> > 
> > A side-effect of this patch is that it resolves a bug
> > whereby ovs-vswitchd will abort due to to an assertion
> > on eth_type_mpls(ctx->xin->flow.dl_type) in compose_mpls_pop_action(()
> > if the actions of a flow include pop_mpls twice without
> > a push_mpls in between.
> > 
> > Signed-off-by: Simon Horman <ho...@verge.net.au>
> 
> The code seems fine.
> 
> This commit appears to introduce one subtle semantic change.
> Previously, if a packet had an MPLS ethertype followed by too few bytes
> to constitute a full MPLS label, then the flow indicated that with
> mpls_depth=0, mpls_lse=0.  Now, there is no way to distinguish this case
> from a single label with mpls_lse=0.  I don't know whether this is
> important.

I need to think about this a little but my initial reaction
is that it is not important as I believe mpls_depth was only used
when composing actions. And I'm not sure that the subtle change that
you point out changes the way that occurs.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to