• Gerrit Renker's avatar
    dccp ccid-3: Fix a loss detection bug · b552c623
    Gerrit Renker authored
    This fixes a bug in the logic of the TFRC loss detection:
     * new_loss_indicated() should not be called while a loss is pending;
     * but the code allows this;
     * thus, for two subsequent gaps in the sequence space, when loss_count
       has not yet reached NDUPACK=3, the loss_count is falsely reduced to 1.
    
    To avoid further and similar problems, all loss handling and loss detection is
    now done inside tfrc_rx_hist_handle_loss(), using an appropriate routine to
    track new losses.
    
    Further changes:
    ----------------
     * added a reminder that no RX history operations should be performed when
       rx_handle_loss() has identified a (new) loss, since the function takes
       care of packet reordering during loss detection;
     * made tfrc_rx_hist_loss_pending() bool (thanks to an earlier suggestion
       by Arnaldo);		 
     * removed unused functions.
    Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    b552c623
packet_history.c 14.4 KB