• Gerrit Renker's avatar
    dccp ccid-3: Fix "t_ipi explosion" bug · 825de27d
    Gerrit Renker authored
    The identification of this bug is thanks to Cheng Wei and Tomasz
    Grobelny.
    
    To avoid divide-by-zero, the implementation previously ignored RTTs
    smaller than 4 microseconds when performing integer division RTT/4.
    
    When the RTT reached a value less than 4 microseconds (as observed on
    loopback), this prevented the Window Counter CCVal value from
    advancing. As a result, the receiver stopped sending feedback. This in
    turn caused non-ending expiries of the nofeedback timer at the sender,
    so that the sending rate was progressively reduced until reaching the
    minimum of one packet per 64 seconds.
    
    The patch fixes this bug by handling integer division more
    intelligently. Due to consistent use of dccp_sample_rtt(),
    divide-by-zero-RTT is avoided.
    Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    825de27d
ccid3.c 28.9 KB