From: Stefano Brivio <sbri...@redhat.com> Date: Thu, 18 Oct 2018 21:25:07 +0200
> Commit 058214a4d1df ("ip6_tun: Add infrastructure for doing > encapsulation") added the ip6_tnl_encap() call in ip6_tnl_xmit(), before > the call to ipv6_push_frag_opts() to append the IPv6 Tunnel Encapsulation > Limit option (option 4, RFC 2473, par. 5.1) to the outer IPv6 header. > > As long as the option didn't actually end up in generated packets, this > wasn't an issue. Then commit 89a23c8b528b ("ip6_tunnel: Fix missing tunnel > encapsulation limit option") fixed sending of this option, and the > resulting layout, e.g. for FoU, is: > > .-------------------.------------.----------.-------------------.----- - - > | Outer IPv6 Header | UDP header | Option 4 | Inner IPv6 Header | Payload > '-------------------'------------'----------'-------------------'----- - - > > Needless to say, FoU and GUE (at least) won't work over IPv6. The option > is appended by default, and I couldn't find a way to disable it with the > current iproute2. > > Turn this into a more reasonable: > > .-------------------.----------.------------.-------------------.----- - - > | Outer IPv6 Header | Option 4 | UDP header | Inner IPv6 Header | Payload > '-------------------'----------'------------'-------------------'----- - - > > With this, and with 84dad55951b0 ("udp6: fix encap return code for > resubmitting"), FoU and GUE work again over IPv6. > > Fixes: 058214a4d1df ("ip6_tun: Add infrastructure for doing encapsulation") > Signed-off-by: Stefano Brivio <sbri...@redhat.com> This goes back to v4.7 then, I can't believe this has been broken for so long. :-/ Applied and queued up for -stable, thanks.