summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_output.c
diff options
context:
space:
mode:
authorPaul Saab <ps@FreeBSD.org>2005-05-11 21:37:42 +0000
committerPaul Saab <ps@FreeBSD.org>2005-05-11 21:37:42 +0000
commit0077b0163f21fa85f245daee1711c63deb9e8770 (patch)
tree136eaa5e8df38eb44a216776b146e7f2be9d17d5 /sys/netinet/tcp_output.c
parente85d3fc3c8a1aa64d2b83b32c8b24affa02067ba (diff)
Notes
Diffstat (limited to 'sys/netinet/tcp_output.c')
-rw-r--r--sys/netinet/tcp_output.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index c6ce9e28536e..783a00f002ff 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -863,6 +863,7 @@ send:
} else {
th->th_seq = htonl(p->rxmit);
p->rxmit += len;
+ tp->sackhint.sack_bytes_rexmit += len;
}
th->th_ack = htonl(tp->rcv_nxt);
if (optlen) {
@@ -1091,9 +1092,13 @@ timer:
* the TF_SENTFIN flag handles that case.
*/
if ((flags & TH_SYN) == 0) {
- if (sack_rxmit)
+ if (sack_rxmit) {
p->rxmit -= len;
- else
+ tp->sackhint.sack_bytes_rexmit -= len;
+ KASSERT(tp->sackhint.sack_bytes_rexmit
+ >= 0,
+ ("sackhint bytes rtx >= 0"));
+ } else
tp->snd_nxt -= len;
}
}