| To: | "David S. Miller" <davem@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH] TCP BIC not binary searching correctly |
| From: | Stephen Hemminger <shemminger@xxxxxxxx> |
| Date: | Fri, 18 Mar 2005 14:05:47 -0800 |
| Cc: | "Marcelo W. Tosatti" <marcelo.tosatti@xxxxxxxxxxxxxxx>, netdev@xxxxxxxxxxx |
| In-reply-to: | <20050318135713.1171df83@xxxxxxxxxxxxxxxxx> |
| Organization: | Open Source Development Lab |
| References: | <20050318135713.1171df83@xxxxxxxxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
2.4 version of same fix as 2.6.11.
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 <shemminger@xxxxxxxx>
diff -Nru a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
--- a/net/ipv4/tcp_input.c 2005-03-18 14:03:44 -08:00
+++ b/net/ipv4/tcp_input.c 2005-03-18 14:03:44 -08:00
@@ -1642,7 +1642,10 @@
static void tcp_undo_cwr(struct tcp_opt *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;
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH] TCP BIC not binary searching correctly, Stephen Hemminger |
|---|---|
| Next by Date: | Re: Reproducible panics with tulip, Francois Romieu |
| Previous by Thread: | [PATCH] TCP BIC not binary searching correctly, Stephen Hemminger |
| Next by Thread: | Re: [PATCH] TCP BIC not binary searching correctly, David S. Miller |
| Indexes: | [Date] [Thread] [Top] [All Lists] |