]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit4c4d000e0eff7413465d67dbcc012fdd8e13382f
tree56f7d290b0c9f305267eeac915ad28f90c10aba2
parentb3d41b150590b85be6b24ea1d55b0210a1cb1414
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