ipv4: Cache learned PMTU information in inetpeer.
authorDavid S. Miller <davem@davemloft.net>
Thu, 10 Feb 2011 04:42:07 +0000 (20:42 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Feb 2011 05:33:07 +0000 (21:33 -0800)
commit2c8cec5c10bced2408082a6656170e74ac17231c
tree56f7d290b0c9f305267eeac915ad28f90c10aba2
parentd606ef3fe0c57504b8e534c58498f73a6abc049a
ipv4: Cache learned PMTU information in inetpeer.

The general idea is that if we learn new PMTU information, we
bump the peer genid.

This triggers the dst_ops->check() code to validate and if
necessary propagate the new PMTU value into the metrics.

Learned PMTU information self-expires.

This means that it is not necessary to kill a cached route
entry just because the PMTU information is too old.

As a consequence:

1) When the path appears unreachable (dst_ops->link_failure
   or dst_ops->negative_advice) we unwind the PMTU state if
   it is out of date, instead of killing the cached route.

   A redirected route will still be invalidated in these
   situations.

2) rt_check_expire(), rt_worker_func(), et al. are no longer
   necessary at all.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/route.c