The reordering detection must work also when FRTO has not been used at all which was the original intention of mine, just the expression of the idea was flawed.
Signed-off-by: Ilpo Järvinen <[EMAIL PROTECTED]> --- Applies on the top of tcp-2.6 branch as you would probably have guessed. diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index bb3f234..f6ba07f 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -1240,7 +1240,7 @@ tcp_sacktag_write_queue(struct sock *sk, tp->left_out = tp->sacked_out + tp->lost_out; if ((reord < tp->fackets_out) && icsk->icsk_ca_state != TCP_CA_Loss && - (tp->frto_highmark && after(tp->snd_una, tp->frto_highmark))) + (!tp->frto_highmark || after(tp->snd_una, tp->frto_highmark))) tcp_update_reordering(sk, ((tp->fackets_out + 1) - reord), 0); #if FASTRETRANS_DEBUG > 0 -- 1.4.2