summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_input.c
diff options
context:
space:
mode:
authorJonathan Lemon <jlemon@FreeBSD.org>2000-11-04 15:59:39 +0000
committerJonathan Lemon <jlemon@FreeBSD.org>2000-11-04 15:59:39 +0000
commit8735719e4359369d060031e43c33a4154b862cc6 (patch)
treec09661268b59e5b8cb9787af8eb50a1a442aa1f8 /sys/netinet/tcp_input.c
parentf18c4450ac639a3c09c578ab87febd1fb6a50a80 (diff)
Notes
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r--sys/netinet/tcp_input.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index f49a7f429d26..1f7d0fb2776b 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1935,7 +1935,12 @@ process_ACK:
if (cw > tp->snd_ssthresh)
incr = incr * incr / cw;
- if (tcp_do_newreno == 0 || SEQ_GEQ(th->th_ack, tp->snd_recover))
+ /*
+ * If t_dupacks != 0 here, it indicates that we are still
+ * in NewReno fast recovery mode, so we leave the congestion
+ * window alone.
+ */
+ if (tcp_do_newreno == 0 || tp->t_dupacks == 0)
tp->snd_cwnd = min(cw + incr,TCP_MAXWIN<<tp->snd_scale);
}
if (acked > so->so_snd.sb_cc) {