summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLi Wei <lw@cn.fujitsu.com>2015-01-29 09:09:03 +0100
committerDavid S. Miller <davem@davemloft.net>2015-01-30 00:28:59 +0100
commit3cdaa5be9e81a914e633a6be7b7d2ef75b528562 (patch)
treeb9889fdb4cdec87152a3657e69e39fd27bbb5243 /net
parentMerge branch 'arm-build-fixes' (diff)
downloadlinux-3cdaa5be9e81a914e633a6be7b7d2ef75b528562.tar.xz
linux-3cdaa5be9e81a914e633a6be7b7d2ef75b528562.zip
ipv4: Don't increase PMTU with Datagram Too Big message.
RFC 1191 said, "a host MUST not increase its estimate of the Path MTU in response to the contents of a Datagram Too Big message." Signed-off-by: Li Wei <lw@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/route.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index d58dd0ec3e53..52e1f2bf0ca2 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -966,6 +966,9 @@ static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu)
if (dst->dev->mtu < mtu)
return;
+ if (rt->rt_pmtu && rt->rt_pmtu < mtu)
+ return;
+
if (mtu < ip_rt_min_pmtu)
mtu = ip_rt_min_pmtu;