summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Wei <lw@cn.fujitsu.com>2015-01-29 16:09:03 +0800
committerDavid S. Miller <davem@davemloft.net>2015-01-29 15:28:59 -0800
commit3cdaa5be9e81a914e633a6be7b7d2ef75b528562 (patch)
treeb9889fdb4cdec87152a3657e69e39fd27bbb5243
parenta1a0b558ce89a8e46b2c9d1cd847e0d728f97e00 (diff)
downloadlinux-3cdaa5be9e81a914e633a6be7b7d2ef75b528562.tar.gz
linux-3cdaa5be9e81a914e633a6be7b7d2ef75b528562.tar.bz2
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>
-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;