Change Veno to properly handle stretch ACKs in additive
increase mode by passing in the count of ACKed packets
to tcp_cong_avoid_ai().
Signed-off-by: Pengcheng Yang <yangpc@wangsu.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
if (tcp_in_slow_start(tp)) {
/* Slow start. */
- tcp_slow_start(tp, acked);
- goto done;
+ acked = tcp_slow_start(tp, acked);
+ if (!acked)
+ goto done;
}
/* Congestion avoidance. */
/* In the "non-congestive state", increase cwnd
* every rtt.
*/
- tcp_cong_avoid_ai(tp, tp->snd_cwnd, 1);
+ tcp_cong_avoid_ai(tp, tp->snd_cwnd, acked);
} else {
/* In the "congestive state", increase cwnd
* every other rtt.
veno->inc = 1;
tp->snd_cwnd_cnt = 0;
} else
- tp->snd_cwnd_cnt++;
+ tp->snd_cwnd_cnt += acked;
}
done:
if (tp->snd_cwnd < 2)