ipv4: use next hop exceptions also for input routes
authorTimo Teräs <timo.teras@iki.fi>
Thu, 27 Jun 2013 07:27:05 +0000 (10:27 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Jun 2013 04:27:47 +0000 (21:27 -0700)
commit2ffae99d1fac272952b5a395759823717760ce37
tree0c1cd0ea84fa58072e0eef58a0d8507567c6d785
parentb173ee488dcc545e77ed482158a2f0d06d7a5860
ipv4: use next hop exceptions also for input routes

Commit d2d68ba9 (ipv4: Cache input routes in fib_info nexthops)
assmued that "locally destined, and routed packets, never trigger
PMTU events or redirects that will be processed by us".

However, it seems that tunnel devices do trigger PMTU events in certain
cases. At least ip_gre, ip6_gre, sit, and ipip do use the inner flow's
skb_dst(skb)->ops->update_pmtu to propage mtu information from the
outer flows. These can cause the inner flow mtu to be decreased. If
next hop exceptions are not consulted for pmtu, IP fragmentation will
not be done properly for these routes.

It also seems that we really need to have the PMTU information always
for netfilter TCPMSS clamp-to-pmtu feature to work properly.

So for the time being, cache separate copies of input routes for
each next hop exception.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Reviewed-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
net/ipv4/fib_semantics.c
net/ipv4/route.c