[DCCP] ccid3: Finer-grained resolution of sending rates
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Sun, 10 Dec 2006 02:02:12 +0000 (00:02 -0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 11 Dec 2006 22:34:42 +0000 (14:34 -0800)
commit1a21e49a8d60f588c1276f765198b14d5688a778
tree4b8770be71047437f30da694649719948977b189
parent179ebc9f92da88e15ea86d7d27308c92712d8ee9
[DCCP] ccid3: Finer-grained resolution of sending rates

This patch
 * resolves a bug where packets smaller than 32/64 bytes resulted in sending rates of 0
 * supports all sending rates from 1/64 bytes/second up to 4Gbyte/second
 * simplifies the present overflow problems in calculations

Current sending rate X and the cached value X_recv of the receiver-estimated
sending rate are both scaled by 64 (2^6) in order to
 * cope with low sending rates (minimally 1 byte/second)
 * allow upgrading to use a packets-per-second implementation of CCID 3
 * avoid calculation errors due to integer arithmetic cut-off

The patch implements a revised strategy from
http://www.mail-archive.com/dccp@vger.kernel.org/msg01040.html

The only difference with regard to that strategy is that t_ipi is already
used in the calculation of the nofeedback timeout, which saves one division.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
include/linux/tfrc.h
net/dccp/ccids/ccid3.c
net/dccp/ccids/ccid3.h