summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_output.c
diff options
context:
space:
mode:
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;
}
}