diff options
-rw-r--r-- | sys/netinet/tcp_subr.c | 4 | ||||
-rw-r--r-- | sys/netinet/tcp_timewait.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index fe8e4b5..aedd8b0 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1573,6 +1573,10 @@ tcp_mtudisc(struct inpcb *inp, int errno) tcpstat.tcps_mturesent++; tp->t_rtttime = 0; tp->snd_nxt = tp->snd_una; + tcp_free_sackholes(tp); + tp->snd_recover = tp->snd_max; + if (tp->sack_enable) + EXIT_FASTRECOVERY(tp); tcp_output(tp); return (inp); } diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c index fe8e4b5..aedd8b0 100644 --- a/sys/netinet/tcp_timewait.c +++ b/sys/netinet/tcp_timewait.c @@ -1573,6 +1573,10 @@ tcp_mtudisc(struct inpcb *inp, int errno) tcpstat.tcps_mturesent++; tp->t_rtttime = 0; tp->snd_nxt = tp->snd_una; + tcp_free_sackholes(tp); + tp->snd_recover = tp->snd_max; + if (tp->sack_enable) + EXIT_FASTRECOVERY(tp); tcp_output(tp); return (inp); } |