From: Xin Long <lucien....@gmail.com>
Date: Mon, 18 Dec 2017 14:26:21 +0800

> Now it's using IPV6_MIN_MTU as the min mtu in ip6_tnl_xmit, but
> IPV6_MIN_MTU actually only works when the inner packet is ipv6.
> 
> With IPV6_MIN_MTU for ipv4 packets, the new pmtu for inner dst
> couldn't be set less than 1280. It would cause tx_err and the
> packet to be dropped when the outer dst pmtu is close to 1280.
> 
> Jianlin found it by running ipv4 traffic with the topo:
> 
>   (client) gre6 <---> eth1 (route) eth2 <---> gre6 (server)
> 
> After changing eth2 mtu to 1300, the performance became very
> low, or the connection was even broken. The issue also affects
> ip4ip6 and ip6ip6 tunnels.
> 
> So if the inner packet is ipv4, 576 should be considered as the
> min mtu.
> 
> Note that for ip4ip6 and ip6ip6 tunnels, the inner packet can
> only be ipv4 or ipv6, but for gre6 tunnel, it may also be ARP.
> This patch using 576 as the min mtu for non-ipv6 packet works
> for all those cases.
> 
> Reported-by: Jianlin Shi <ji...@redhat.com>
> Signed-off-by: Xin Long <lucien....@gmail.com>

Applied.

Reply via email to