[ovs-dev] [PATCH] compat: Remove rpl_dev_queue_xmit() backport.

Simon Horman simon.horman at netronome.com
Mon Mar 20 13:36:27 UTC 2017


On Thu, Mar 02, 2017 at 03:00:37PM -0800, Joe Stringer wrote:
> On 8 February 2017 at 16:50, Joe Stringer <joe at ovn.org> wrote:
> > The MPLS portions of this were inadvertently broken in v2.4 due to
> > 433637881ca5 ("datapath: define compat __skb_gso_segment()") which
> > inverts the supports_mpls_gso() logic, then when rpl_dev_queue_xmit()
> > backport dropped its VLAN portion in v2.6, the whole function became a
> > no-op - since b63bf2488209 ("datapath: remove VLAN compat code from GSO").
> >
> > Apparently the MPLS side of this code never worked in a released version
> > of OVS and no-one noticed, so remove it.
> >
> > Signed-off-by: Joe Stringer <joe at ovn.org>
> 
> Picking this thread back up... it's a bit elaborate, but as per my
> understanding there were basically three important versions of the
> MPLS GSO code in upstream Linux to date:
> 
> Linux earlier than 3.19 had a broken implementation.
> Linux 3.19 up until 4.9 had a version that worked OK for OVS
> codepaths, but was broken in other paths.
> Linux 4.9 and later should be correct in all cases[0 + fixes].
> 
> Then we have our OVS out-of-tree backport of the upstream OVS module.
> Today, the MPLS code in OVS matches roughly Linux 4.8. Prior to 3.19,
> we backported MPLS GSO, but there was a problem with the activation of
> the code[1] so MPLS GSO is broken with out-of-tree against kernels up
> to 3.19. For kernels 3.19 to 4.8, the MPLS GSO works correctly in the
> OVS tree. Linux 4.9 expects the skb to be prepared differently for
> MPLS GSO to work, so the out-of-tree module in conjunction with that
> version will be broken. When we backport this patch[0], that should be
> fixed---but we'll need to take care to do it in a way that still works
> on earlier versions..
> 
> This affects OVS 2.7 - users wanting to run OVS 2.7 with out-of-tree
> module with MPLS GSO (including loading the mpls_gso module) and a
> Linux 4.9 kernel may observe some issues like this when using MPLS
> push/pop. As far as I can tell, the most likely affected users would
> be those running recent Fedora releases but I don't think that they
> use the DKMS module by default. Given how elaborate this chain of
> requirements is, I'm not so strongly concerned about addressing this
> before bringing the three or four later backport series into the
> tree.. they've been blocking for pretty long already. It'd definitely
> be nice to fix it soon though.
> 
> Yi-Hung has been doing the investigation on this, thanks for providing
> the details and I hope I portrayed it correctly to the list here!

Am I correct in understanding that you would like to:
1. Address outstanding backports and then
2. Address the problem discussed in this thread, particularly for
   OVS2.7 + Linux 4.9

If so that sounds reasonable to me. I'd be happy to assist with this work
but I suspect that two (or more) heads will be better than one given the
complexity of getting it correct for all the relevant kernel versions.

> [0] https://github.com/torvalds/linux/commit/48d2ab609b6bbecb7698487c8579bc40de9d6dfa#diff-a6103578af113225119317a107fe30ec
> [1] http://patchwork.ozlabs.org/patch/725891/
> 


More information about the dev mailing list