Commit:     52c63f1e86ebb18ef4b710b5b647e552a041e5ca
Parent:     aa8b6a7ad147dfbaaf10368ff15df9418b670d8b
Author:     Ilpo Järvinen <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 21 23:06:52 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Apr 25 22:23:09 2007 -0700

    [TCP]: Don't enter to fast recovery while using FRTO
    Because TCP is not in Loss state during FRTO recovery, fast
    recovery could be triggered by accident. Non-SACK FRTO is more
    robust than not yet included SACK-enhanced version (that can
    receiver high number of duplicate ACKs with SACK blocks during
    FRTO), at least with unidirectional transfers, but under
    extraordinary patterns fast recovery can be incorrectly
    triggered, e.g., Data loss+ACK losses => cumulative ACK with
    enough SACK blocks to meet sacked_out >= dupthresh condition).
    Signed-off-by: Ilpo Järvinen <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
 net/ipv4/tcp_input.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 924b2e6..7213740 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1547,6 +1547,10 @@ static int tcp_time_to_recover(struct sock *sk, struct 
tcp_sock *tp)
        __u32 packets_out;
+       /* Do not perform any recovery during FRTO algorithm */
+       if (tp->frto_counter)
+               return 0;
        /* Trick#1: The loss is proven. */
        if (tp->lost_out)
                return 1;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to