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