On 28 Oct 2020, at 01:53 UTC Willem de Bruijn <willemdebruijn.ker...@gmail.com> wrote: > On Tue, Oct 27, 2020 at 5:52 PM Alexander Ovechkin <o...@yandex-team.ru> > wrote: > > > > > But it was moved on purpose to avoid setting the inner protocol to > > > IPPROTO_MPLS. That needs to use skb->inner_protocol to further segment. > > And why do we need to avoid setting the inner protocol to IPPROTO_MPLS? > > Currently skb->inner_protocol is used before call of ip6_tnl_xmit. > > Can you please give example when this patch breaks MPLS segmentation? > > mpls_gso_segment calls skb_mac_gso_segment on the inner packet. After > setting skb->protocol based on skb->inner_protocol.
Yeah, but mpls_gso_segment is called before ip6_tnl_xmit (because tun devices don't have NETIF_F_GSO_SOFTWARE in their mpls_features), so it does not matter to what value ip6_tnl_xmit sets skb->inner_ipproto. And even if gso would been called after both mpls_xmit and ip6_tnl_xmit it would fail as you have written.