dccp ccid-3: Fix a loss detection bug
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Sun, 13 Jul 2008 10:51:40 +0000 (11:51 +0100)
committerGerrit Renker <gerrit@erg.abdn.ac.uk>
Sun, 13 Jul 2008 10:51:40 +0000 (11:51 +0100)
commitb552c6231f19d50165bbf59e8b34d3f713ab5c01
tree7ef572ce7356789e3152120a5b9b8621954e02af
parent5b5d0e704880addfd979c262e6441f126708539c
dccp ccid-3: Fix a loss detection bug

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: Gerrit Renker <gerrit@erg.abdn.ac.uk>
net/dccp/ccids/ccid3.c
net/dccp/ccids/lib/packet_history.c
net/dccp/ccids/lib/packet_history.h