diff options
| author | Paul Saab <ps@FreeBSD.org> | 2005-05-11 21:37:42 +0000 |
|---|---|---|
| committer | Paul Saab <ps@FreeBSD.org> | 2005-05-11 21:37:42 +0000 |
| commit | 0077b0163f21fa85f245daee1711c63deb9e8770 (patch) | |
| tree | 136eaa5e8df38eb44a216776b146e7f2be9d17d5 /sys/netinet/tcp_input.c | |
| parent | e85d3fc3c8a1aa64d2b83b32c8b24affa02067ba (diff) | |
Notes
Diffstat (limited to 'sys/netinet/tcp_input.c')
| -rw-r--r-- | sys/netinet/tcp_input.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 93e45e189e9d..c3b562f61793 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1843,7 +1843,6 @@ trimthenstep6: if (tp->sack_enable && IN_FASTRECOVERY(tp)) { int data_in_pipe; - int sacked, lost_not_rexmitted; /* * Compute the amount of data in flight first. @@ -1851,9 +1850,8 @@ trimthenstep6: * we have less than 1/2 the original window's * worth of data in flight. */ - sacked = tcp_sacked_bytes(tp, &lost_not_rexmitted); - data_in_pipe = (tp->snd_nxt - tp->snd_una) - - (sacked + lost_not_rexmitted); + data_in_pipe = (tp->snd_nxt - tp->rcv_lastsack) + + tp->sackhint.sack_bytes_rexmit; if (data_in_pipe < tp->snd_ssthresh) { tp->snd_cwnd += tp->t_maxseg; if (tp->snd_cwnd > tp->snd_ssthresh) @@ -1896,6 +1894,9 @@ trimthenstep6: callout_stop(tp->tt_rexmt); tp->t_rtttime = 0; if (tp->sack_enable) { + KASSERT(tp->sackhint. + sack_bytes_rexmit == 0, + ("sackhint rexmit == 0")); tcpstat.tcps_sack_recovery_episode++; tp->sack_newdata = tp->snd_nxt; tp->snd_cwnd = tp->t_maxseg; |
