Subject: [PATCH] Fix bug of update IPv4 PMTU when received ICMP Fragmentation Needed message

From: Wei Yongjun <[email-masked]>
Date: Fri, 01 Jun 2007 11:51:43 +0800

When received ICMP Fragmentation Needed message, PATH MTU is always set 
to the 576 even if MTU in ICMP message is lager then 576. This is 
because of error condition in function ip_rt_frag_needed(), now if 
packet size of that ICMP message is less then new MTU, packet size will 
be used ,but RFC says ICMP error message return as much as we can 
without exceeding 576 bytes.

This patch has Fixed this BUG.

Signed-off-by: Wei Yongjun <[email-masked]>

--- net/ipv4/route.c.orig	2007-05-25 05:22:47.000000000 +0800
+++ net/ipv4/route.c	2007-06-01 11:42:55.000000000 +0800
@@ -1424,7 +1424,7 @@ unsigned short ip_rt_frag_needed(struct 
 			    !(dst_metric_locked(&rth->u.dst, RTAX_MTU))) {
 				unsigned short mtu = new_mtu;
 
-				if (new_mtu < 68 || new_mtu >= old_mtu) {
+				if (new_mtu < 68) {
 
 					/* BSD 4.2 compatibility hack :-( */
 					if (mtu == 0 &&