[ovs-dev] *** SPAM *** [PATCH] xlate: Recirculate also when MPLS POP is implicit.

Jarno Rajahalme jarno at ovn.org
Wed Jan 11 02:55:23 UTC 2017


> On Jan 6, 2017, at 9:06 AM, Ben Pfaff <blp at ovn.org> wrote:
> 
> On Thu, Jan 05, 2017 at 06:19:41PM -0800, Jarno Rajahalme wrote:
>> 'ctx->was_mpls' is used to flag when an MPLS packet has been popped to
>> a non-MPLS packet, but it was not set when the MPLS POP is implicit
>> due to the 'ctx->xin->flow' being restored after a patch port
>> traversal to group bucket execution.
>> 
>> If MPLS push on a non-MPLS packet is followed by an MPLS POP in the
>> same actions list, a recirculation after the MPLS POP would not be
>> necessary, as the parsed L3/4 fields are still available.  Even so,
>> the current action validation and execution code in the Linux kernel
>> datapath implementation would need to be enhanced to support this
>> case.  For now we trigger recirculation instead.
>> 
>> Reported-by: Thomas Morin <thomas.morin at orange.com>
>> Suggested-by: Takashi YAMAMOTO <yamamoto at ovn.org>
>> Fixes: 742c0ac3c0ab ("mpls: Fix MPLS restoration after patch port and group bucket.")
>> Signed-off-by: Jarno Rajahalme <jarno at ovn.org>
> 
> This is complicated.
> 
> This is a bug fix, I guess.  Is this anything we can test?
> 

Testing was there, but surprisingly did not need a change, so the patch did not have the desired effect. Sorry for the churn, will send a new version once the test cases actually work as they should.

  Jarno


> Should this be implemented as a helper function?
> 

Will do.



More information about the dev mailing list