Date: Thu, 1 Mar 2012 15:08:58 +0000 (UTC) From: Andre Oppermann <andre@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r232341 - user/andre/tcp_workqueue/sys/netinet Message-ID: <201203011508.q21F8wUa084148@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andre Date: Thu Mar 1 15:08:58 2012 New Revision: 232341 URL: http://svn.freebsd.org/changeset/base/232341 Log: Adjust the default initial CWND upon connection establishment to the new and larger values specified by RFC5681 Section 3.1. The larger initial CWND per RFC3390, if enabled, is not affected. Modified: user/andre/tcp_workqueue/sys/netinet/tcp_input.c Modified: user/andre/tcp_workqueue/sys/netinet/tcp_input.c ============================================================================== --- user/andre/tcp_workqueue/sys/netinet/tcp_input.c Thu Mar 1 14:42:06 2012 (r232340) +++ user/andre/tcp_workqueue/sys/netinet/tcp_input.c Thu Mar 1 15:08:58 2012 (r232341) @@ -347,8 +347,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; + 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?201203011508.q21F8wUa084148>