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
This commit is contained in:
andre 2012-10-28 17:16:09 +00:00
parent eba8578ed3
commit 5589a42386

View File

@ -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);