• I
    [TCP]: Reduce sacked_out with reno when purging write_queue · 1b6d427b
    Ilpo Järvinen 提交于
    Previously TCP had a transitional state during which reno
    counted segments that are already below the current window into
    sacked_out, which is now prevented. In addition, re-try now
    the unconditional S+L skb catching.
    
    This approach conservatively calls just remove_sack and leaves
    reset_sack() calls alone. The best solution to the whole problem
    would be to first calculate the new sacked_out fully (this patch
    does not move reno_sack_reset calls from original sites and thus
    does not implement this). However, that would require very
    invasive change to fastretrans_alert (perhaps even slicing it to
    two halves). Alternatively, all callers of tcp_packets_in_flight
    (i.e., users that depend on sacked_out) should be postponed
    until the new sacked_out has been calculated but it isn't any
    simpler alternative.
    Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    1b6d427b
tcp_input.c 142.4 KB