linux/net/dccp/ccids
Gerrit Renker 825de27d9e dccp ccid-3: Fix "t_ipi explosion" bug
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: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-05-27 06:33:54 -07:00
..
lib [TFRC]: Remove previous loss intervals implementation 2008-01-28 14:57:20 -08:00
Kconfig [TFRC]: Provide central source file and debug facility 2008-01-28 14:56:39 -08:00
Makefile [DCCP] CCID2: Initial CCID2 (TCP-Like) implementation 2006-03-20 17:41:47 -08:00
ccid2.c dccp: ccid2.c, ccid3.c use clamp(), clamp_t() 2008-05-02 16:44:07 -07:00
ccid2.h [CCID2]: Remove redundant ack-counting variable 2008-01-28 14:55:00 -08:00
ccid3.c dccp ccid-3: Fix "t_ipi explosion" bug 2008-05-27 06:33:54 -07:00
ccid3.h [CCID3]: Use a function to update p_inv, and p is never used 2008-01-28 14:58:21 -08:00