Bug 15530

Summary: ipip6 MTU cannot be set lower than 1280
Product: Networking Reporter: Bernhard Schmidt (berni)
Component: IPV6Assignee: Hideaki YOSHIFUJI (yoshfuji)
Status: RESOLVED OBSOLETE    
Severity: low CC: alan, ou.ghorbel
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.32 Subsystem:
Regression: No Bisected commit-id:

Description Bernhard Schmidt 2010-03-13 14:38:36 UTC
The (inner) MTU of a ipip6 (IPv4-in-IPv6) tunnel cannot be set below 1280, which is the minimum MTU in IPv6. However, there should be no IPv6 on the tunnel interface at all (ipip6 cannot transport it), so the IPv6 rules should not apply.

root@pest:~# ip -6 tunnel add test1 mode ipip6 remote 2001:xxxx::26 local 2001:xxx::1:1
root@pest:~# ip link set test1 mtu 1280
root@pest:~# ip link set test1 mtu 1279
RTNETLINK answers: Invalid argument

This prevents the tunnel from work on paths that only support a (outer) IPv6 MTU of 1280, since the tunnel adds an additional overhead of 40 bytes.

Setting net.ipv6.conf.<if>.disable_ipv6=1 and/or removing the IPv6 link-local address on the tunnel interface does not help.
Comment 1 Andrew Morton 2010-03-19 21:21:01 UTC
(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Sat, 13 Mar 2010 14:38:54 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=15530
> 
>            Summary: ipip6 MTU cannot be set lower than 1280
>            Product: Networking
>            Version: 2.5
>     Kernel Version: 2.6.32
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: low
>           Priority: P1
>          Component: IPV6
>         AssignedTo: yoshfuji@linux-ipv6.org
>         ReportedBy: berni@birkenwald.de
>         Regression: No
> 
> 
> The (inner) MTU of a ipip6 (IPv4-in-IPv6) tunnel cannot be set below 1280,
> which is the minimum MTU in IPv6. However, there should be no IPv6 on the
> tunnel interface at all (ipip6 cannot transport it), so the IPv6 rules should
> not apply.
> 
> root@pest:~# ip -6 tunnel add test1 mode ipip6 remote 2001:xxxx::26 local
> 2001:xxx::1:1
> root@pest:~# ip link set test1 mtu 1280
> root@pest:~# ip link set test1 mtu 1279
> RTNETLINK answers: Invalid argument
> 
> This prevents the tunnel from work on paths that only support a (outer) IPv6
> MTU of 1280, since the tunnel adds an additional overhead of 40 bytes.
> 
> Setting net.ipv6.conf.<if>.disable_ipv6=1 and/or removing the IPv6 link-local
> address on the tunnel interface does not help.
>
Comment 2 Oussama Ghorbel 2013-09-26 19:36:35 UTC
I have submitted a patch to netdev/linux-kernel mailing lists and to the subsystem maintainers.

Subject is: [PATCH] IPv6: Allow the MTU of ipip6 tunnel to be set below 1280

It can also be viewed here:
http://marc.info/?l=linux-netdev&m=138020715711239&w=2

Regards