diff options
author | Ian McDonald <ian.mcdonald@jandi.co.nz> | 2006-08-26 23:40:50 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-08-26 23:40:50 -0700 |
commit | 66a377c5041e1e399633153c8b500d457281e7c1 (patch) | |
tree | 9fa32d0504bf0a58181edb77940e0709f3f954a5 /net/dccp/ccids/lib/loss_interval.h | |
parent | 3a13813e6effcfad5910d47b15b724621b50b878 (diff) | |
download | linux-66a377c5041e1e399633153c8b500d457281e7c1.tar.gz linux-66a377c5041e1e399633153c8b500d457281e7c1.tar.bz2 linux-66a377c5041e1e399633153c8b500d457281e7c1.zip |
[DCCP]: Fix CCID3
This fixes CCID3 to give much closer performance to RFC4342.
CCID3 is meant to alter sending rate based on RTT and loss.
The performance was verified against:
http://wand.net.nz/~perry/max_download.php
For example I tested with netem and had the following parameters:
Delayed Acks 1, MSS 256 bytes, RTT 105 ms, packet loss 5%.
This gives a theoretical speed of 71.9 Kbits/s. I measured across three
runs with this patch set and got 70.1 Kbits/s. Without this patchset the
average was 232 Kbits/s which means Linux can't be used for CCID3 research
properly.
I also tested with netem turned off so box just acting as router with 1.2
msec RTT. The performance with this is the same with or without the patch
at around 30 Mbit/s.
Signed off by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ccids/lib/loss_interval.h')
-rw-r--r-- | net/dccp/ccids/lib/loss_interval.h | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/dccp/ccids/lib/loss_interval.h b/net/dccp/ccids/lib/loss_interval.h index dcb370a53f57..0ae85f0340b2 100644 --- a/net/dccp/ccids/lib/loss_interval.h +++ b/net/dccp/ccids/lib/loss_interval.h @@ -52,9 +52,6 @@ extern void dccp_li_hist_purge(struct dccp_li_hist *hist, extern u32 dccp_li_hist_calc_i_mean(struct list_head *list); -extern struct dccp_li_hist_entry * - dccp_li_hist_interval_new(struct dccp_li_hist *hist, - struct list_head *list, - const u64 seq_loss, - const u8 win_loss); +extern int dccp_li_hist_interval_new(struct dccp_li_hist *hist, + struct list_head *list, const u64 seq_loss, const u8 win_loss); #endif /* _DCCP_LI_HIST_ */ |