• Angelo P. Castellani's avatar
    [TCP]: reno sacked_out count fix · 8872d8e1
    Angelo P. Castellani authored
    From: "Angelo P. Castellani" <angelo.castellani+lkml@gmail.com>
    
    Using NewReno, if a sk_buff is timed out and is accounted as lost_out,
    it should also be removed from the sacked_out.
    
    This is necessary because recovery using NewReno fast retransmit could
    take up to a lot RTTs and the sk_buff RTO can expire without actually
    being really lost.
    
    left_out = sacked_out + lost_out
    in_flight = packets_out - left_out + retrans_out
    
    Using NewReno without this patch, on very large network losses,
    left_out becames bigger than packets_out + retrans_out (!!).
    
    For this reason unsigned integer in_flight overflows to 2^32 - something.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8872d8e1
tcp_input.c 129 KB