Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Oct 2012 17:16:10 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r242249 - head/sys/netinet
Message-ID:  <201210281716.q9SHGAss060275@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andre
Date: Sun Oct 28 17:16:09 2012
New Revision: 242249
URL: http://svn.freebsd.org/changeset/base/242249

Log:
  Adjust the initial default CWND upon connection establishment to the
  new and increased values specified by RFC5681 Section 3.1.
  
  The even larger initial CWND per RFC3390, if enabled, is not affected.
  
  MFC after:	2 weeks

Modified:
  head/sys/netinet/tcp_input.c

Modified: head/sys/netinet/tcp_input.c
==============================================================================
--- head/sys/netinet/tcp_input.c	Sun Oct 28 17:06:50 2012	(r242248)
+++ head/sys/netinet/tcp_input.c	Sun Oct 28 17:16:09 2012	(r242249)
@@ -351,8 +351,15 @@ cc_conn_init(struct tcpcb *tp)
 	if (V_tcp_do_rfc3390)
 		tp->snd_cwnd = min(4 * tp->t_maxseg,
 		    max(2 * tp->t_maxseg, 4380));
-	else
-		tp->snd_cwnd = tp->t_maxseg;
+	else {
+		/* Per RFC5681 Section 3.1 */
+		if (tp->t_maxseg > 2190)
+			tp->snd_cwnd = 2 * tp->t_maxseg;
+		else if (tp->t_maxseg > 1095)
+			tp->snd_cwnd = 3 * tp->t_maxseg;
+		else
+			tp->snd_cwnd = 4 * tp->t_maxseg;
+	}
 
 	if (CC_ALGO(tp)->conn_init != NULL)
 		CC_ALGO(tp)->conn_init(tp->ccv);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210281716.q9SHGAss060275>