diff options
Diffstat (limited to 'sys/netinet/tcp_output.c')
| -rw-r--r-- | sys/netinet/tcp_output.c | 9 |
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; } } |
