diff options
author | lstewart <lstewart@FreeBSD.org> | 2010-12-02 01:01:37 +0000 |
---|---|---|
committer | lstewart <lstewart@FreeBSD.org> | 2010-12-02 01:01:37 +0000 |
commit | ae5fd63399d612d2bd80c7d55f2d85e207dd1e2e (patch) | |
tree | 93de4243f222f74e6341eb2bb4ae0eb01a8c412b | |
parent | 88a0e7e6ddcafc1b6514b64da98d386bfaa617dc (diff) | |
download | FreeBSD-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.c | 2 |
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: |