diff options
| author | Randall Stewart <rrs@FreeBSD.org> | 2019-07-14 16:05:47 +0000 |
|---|---|---|
| committer | Randall Stewart <rrs@FreeBSD.org> | 2019-07-14 16:05:47 +0000 |
| commit | e5926fd368f0f434ce46fb1e5de7ca24176cb504 (patch) | |
| tree | e67a00fe50a152db857e78364aad6937aa0e15ba /sys/netinet/tcp_output.c | |
| parent | 8a956abe12c6b7e1a76e849dd6323910da998da9 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/tcp_output.c')
| -rw-r--r-- | sys/netinet/tcp_output.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index d67e1b9bee334..f329703c3ffb0 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -1508,7 +1508,13 @@ timer: if (SEQ_GT(tp->snd_nxt + xlen, tp->snd_max)) tp->snd_max = tp->snd_nxt + xlen; } - + if ((error == 0) && + (TCPS_HAVEESTABLISHED(tp->t_state) && + (tp->t_flags & TF_SACK_PERMIT) && + tp->rcv_numsacks > 0)) { + /* Clean up any DSACK's sent */ + tcp_clean_dsack_blocks(tp); + } if (error) { /* Record the error. */ TCP_LOG_EVENT(tp, NULL, &so->so_rcv, &so->so_snd, TCP_LOG_OUT, |
