RFC3390 implementation

Oleg Polyakov opolyakov at yahoo.com
Fri Apr 11 13:19:02 PDT 2003


Nice to see RFC3390 implemented. It looks like it worth mention in tuning(7).

While we on it - there is section 2 in RFC:

>2.  Implementation Issues
>
>   When larger initial windows are implemented along with Path MTU
>   Discovery [RFC1191], and the MSS being used is found to be too large,
>   the congestion window `cwnd' SHOULD be reduced to prevent large
>   bursts of smaller segments.  Specifically, `cwnd' SHOULD be reduced
>   by the ratio of the old segment size to the new segment size.
>

So we need to take care of cwnd reduction in tcp_mtudisc function.
Here is a patch attached.

Or we may do it conditionally depending on tcp_do_rfc3390 variable.

----
Oleg

__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com
-------------- next part --------------
--- tcp_subr.c.orig	Fri Apr 11 13:05:53 2003
+++ tcp_subr.c	Fri Apr 11 13:06:27 2003
@@ -1449,6 +1449,14 @@
 #endif
 		if (so->so_snd.sb_hiwat < mss)
 			mss = so->so_snd.sb_hiwat;
+		/*
+		 * Follow suggestion in RFC 3390 to reduce the congestion
+		 * window by the ratio of the old segment size to the new
+		 * segment size.
+		 */
+		if (mss < tp->t_maxseg)
+			tp->snd_cwnd = max((tp->snd_cwnd / tp->t_maxseg) *
+			    mss, mss);
 
 		tp->t_maxseg = mss;
 


More information about the freebsd-net mailing list