Skip to content
  • Ilpo Järvinen's avatar
    [TCP]: Bidir flow must not disregard SACK blocks for lost marking · b8ed601c
    Ilpo Järvinen authored
    
    
    It's possible that new SACK blocks that should trigger new LOST
    markings arrive with new data (which previously made is_dupack
    false). In addition, I think this fixes a case where we get
    a cumulative ACK with enough SACK blocks to trigger the fast
    recovery (is_dupack would be false there too).
    
    I'm not completely pleased with this solution because readability
    of the code is somewhat questionable as 'is_dupack' in SACK case
    is no longer about dupacks only but would mean something like
    'lost_marker_work_todo' too... But because of Eifel stuff done
    in CA_Recovery, the FLAG_DATA_SACKED check cannot be placed to
    the if statement which seems attractive solution. Nevertheless,
    I didn't like adding another variable just for that either... :-)
    
    Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b8ed601c