Fix tcp_hybla zero congestion window growth with small rho and large cwnd
Subsystems (3)
PATCH 1/1 Fix tcp_hybla zero congestion window growth with small rho and large cwnd
(Sorry for repost, but I've got no reply.)
Because of rounding, in certain conditions, i.e. when in congestion avoidance state rho is smaller than 1/128 of the current cwnd, TCP Hybla congestion control starves and the cwnd is kept constant forever.
This patch forces an increment by one segment after #snd_cwnd calls without increments(newreno behavior).
Please apply.
Signed-off-by Daniele Lacamera <[email protected]>
net/ipv4/tcp_hybla.c +6 -1
@@ -150,7 +150,12 @@ ca->snd_cwnd_cents -=128 ; tp->snd_cwnd_cnt =0 ; } - +/* check when cwnd has not been incremented for a while */ +if (increment ==0 && odd ==0 && tp->snd_cwnd_cnt >= tp->snd_cwnd) + { + tp->snd_cwnd++; + tp->snd_cwnd_cnt =0 ; + }/* clamp down slowstart cwnd to ssthresh value. */ if (is_slowstart) tp->snd_cwnd =min (tp->snd_cwnd, tp->snd_ssthresh);
David Miller
maintainerFrom: Daniele Lacamera <[email protected]>
Date: Mon, 06 Oct 2008 19:26:37 +0200
Quoted 1 line
(Sorry for repost, but I've got no reply.)
Getting no reply for a few days doesn't mean anything.
Stephen and I have been away in Europe for more than a week.