summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlstewart <lstewart@FreeBSD.org>2010-12-02 01:01:37 +0000
committerlstewart <lstewart@FreeBSD.org>2010-12-02 01:01:37 +0000
commitae5fd63399d612d2bd80c7d55f2d85e207dd1e2e (patch)
tree93de4243f222f74e6341eb2bb4ae0eb01a8c412b
parent88a0e7e6ddcafc1b6514b64da98d386bfaa617dc (diff)
downloadFreeBSD-src-ae5fd63399d612d2bd80c7d55f2d85e207dd1e2e.zip
FreeBSD-src-ae5fd63399d612d2bd80c7d55f2d85e207dd1e2e.tar.gz
Set ssthresh appropriately on RTO. This change was accidentally not ported from
the pre modular CC stack. Sponsored by: FreeBSD Foundation Submitted by: David Hayes <dahayes at swin edu au> MFC after: 9 weeks X-MFC with: r215166
-rw-r--r--sys/netinet/tcp_input.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index 8fb9a52..4dbc038 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -378,6 +378,8 @@ cc_cong_signal(struct tcpcb *tp, struct tcphdr *th, uint32_t type)
tp->t_dupacks = 0;
tp->t_bytes_acked = 0;
EXIT_RECOVERY(tp->t_flags);
+ tp->snd_ssthresh = max(2, min(tp->snd_wnd, tp->snd_cwnd) / 2 /
+ tp->t_maxseg) * tp->t_maxseg;
tp->snd_cwnd = tp->t_maxseg;
break;
case CC_RTO_ERR:
OpenPOWER on IntegriCloud