diff options
author | 2000-02-21 21:42:13 +0000 | |
---|---|---|
committer | 2000-02-21 21:42:13 +0000 | |
commit | 6977aa136bdd127bdf17acfa8fb2abc315257fce (patch) | |
tree | 6b9606872ddb6c4abef47f48a02ce1dccf465a9e /sys/netinet/tcp_input.c | |
parent | move fpproc into the cpuinfo structure. (diff) | |
download | wireguard-openbsd-6977aa136bdd127bdf17acfa8fb2abc315257fce.tar.xz wireguard-openbsd-6977aa136bdd127bdf17acfa8fb2abc315257fce.zip |
TCP SACK fixes via Tom Henderson (tomh@cs.berkeley.edu):
- tcp_sack_adjust() was completely rewritten, since it was erroneously
referencing receiver side sequence numbers and comparing with sender
side sequence numbers (thanks to Arun Desai (adesai@cisco.com) who
discovered the problem)
- in tcp_output(), moved assignment of sendalot=0 to the piece of code
immediately following the search for sack-eligible retransmissions
(bug identified by Arun Desai).
- tcp_input() was not clearing t_dupacks if fewer than three dupacks arrived
between acks of new data. (bug identified by Gaurav Banga (gaurav@netapp.com))
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r-- | sys/netinet/tcp_input.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 5b28a0fd020..d84f9583b87 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_input.c,v 1.56 1999/12/21 17:49:28 provos Exp $ */ +/* $OpenBSD: tcp_input.c,v 1.57 2000/02/21 21:42:13 provos Exp $ */ /* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */ /* @@ -1672,6 +1672,8 @@ trimthenstep6: tp->t_dupacks = 0; } } + if (tp->t_dupacks < tcprexmtthresh) + tp->t_dupacks = 0; #else /* else no TCP_SACK */ if (tp->t_dupacks >= tcprexmtthresh && tp->snd_cwnd > tp->snd_ssthresh) |