1. 13 Jul, 2008 3 commits
    • 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
    • Gerrit Renker's avatar
      dccp: Upgrade NDP count from 3 to 6 bytes · 5b5d0e70
      Gerrit Renker authored
      RFC 4340, 7.7 specifies up to 6 bytes for the NDP Count option, whereas the code
      is currently limited to up to 3 bytes. This seems to be a relict of an earlier 
      draft version and is brought up to date by the patch.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      5b5d0e70
    • Gerrit Renker's avatar
      dccp ccid-3: Fix error in loss detection · 2013c7e3
      Gerrit Renker authored
      The TFRC loss detection code used the wrong loss condition (RFC 4340, 7.7.1):
       * the difference between sequence numbers s1 and s2 instead of 
       * the number of packets missing between s1 and s2 (one less than the distance).
      
      Since this condition appears in many places of the code, it has been put into a
      separate function, dccp_loss_free().
      
      Further changes:
      ----------------
       * tidied up incorrect typing (it was using `int' for u64/s64 types);
       * optimised conditional statements for common case of non-reordered packets;
       * rewrote comments/documentation to match the changes.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      2013c7e3
  2. 09 Jul, 2008 19 commits
  3. 08 Jul, 2008 18 commits