ChangeSet 1.2199.8.31, 2005/03/22 19:05:52-08:00, [EMAIL PROTECTED]
[TCP]: BIC not binary searching correctly
While redoing BIC for the split up version, I discovered that the
existing
2.6.11 code doesn't really do binary search. It ends up being just a
slightly
modified version of Reno. See attached graphs to see the effect over
simulated
1mbit environment.
The problem is that BIC is supposed to reset the cwnd to the last loss
value
rather than ssthresh when loss is detected. The correct code (from the
BIC
TCP code for Web100) is in this patch.
Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
tcp_input.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletion(-)
diff -Nru a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
--- a/net/ipv4/tcp_input.c 2005-03-26 17:16:47 -08:00
+++ b/net/ipv4/tcp_input.c 2005-03-26 17:16:47 -08:00
@@ -1654,7 +1654,10 @@
static void tcp_undo_cwr(struct tcp_sock *tp, int undo)
{
if (tp->prior_ssthresh) {
- tp->snd_cwnd = max(tp->snd_cwnd, tp->snd_ssthresh<<1);
+ if (tcp_is_bic(tp))
+ tp->snd_cwnd = max(tp->snd_cwnd,
tp->bictcp.last_max_cwnd);
+ else
+ tp->snd_cwnd = max(tp->snd_cwnd, tp->snd_ssthresh<<1);
if (undo && tp->prior_ssthresh > tp->snd_ssthresh) {
tp->snd_ssthresh = tp->prior_ssthresh;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html