Merge branch 'net-improve-the-process-of-redirect-and-toobig-for-ipv6-tunnels'
authorDavid S. Miller <davem@davemloft.net>
Mon, 13 Nov 2017 01:44:06 +0000 (10:44 +0900)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Nov 2017 01:44:06 +0000 (10:44 +0900)
commitede372dcae15d3ba1d3d52ac45be7a27ce31be28
tree4f7d59f1fe372192fdf08515f0d69dcc761adb80
parent0d728b844c2dd8dd3875ed304eee43967c5d14f6
parent77552cfa39c48e695c39d0553afc8c6018e411ce
Merge branch 'net-improve-the-process-of-redirect-and-toobig-for-ipv6-tunnels'

Xin Long says:

====================
net: improve the process of redirect and toobig for ipv6 tunnels

Now let's say there are 3 kinds of icmp packets to process for tunnels,
toobig(needfrag), redirect, others, their process should be:

 - toobig(needfrag)
   update the lower dst's pmtu by route cache, also update sk dst's pmtu
   if possible, or it will be fine if sk dst pmtu will get updated on tx
   path.

 - redirect
   update the lower dst's gw by route cache and return, no need to send
   this redirect packet to user sk.

 - others
   send the packet to user's sk, or it will also be fine to use err_count
   to count it and report fail link on tx path.

All ipv4 tunnels basically follow this while some of ipv6 tunnels are
doing in different ways, like ip6gre and ip6_tunnels update tnl dev's
mtu instead of updating lower dst pmtu, no redirect process on their
err_handlers, which doesn't make any sense and even causes performance
problems.

This patchset is to improve the process of redirect and toobig for ip6gre
ip4ip6, ip6ip6 tunnels, as in ipv4 tunnels.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>