ipv4: Don't increase PMTU with Datagram Too Big message.
authorLi Wei <lw@cn.fujitsu.com>
Thu, 29 Jan 2015 08:09:03 +0000 (16:09 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Jan 2015 23:28:59 +0000 (15:28 -0800)
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>
net/ipv4/route.c

index d58dd0ec3e5302c2862c8fe53bfd43ca05a3e669..52e1f2bf0ca2ff2fe3d85086465068da4bbb43f2 100644 (file)
@@ -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;