]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: use PRR to reduce cwin in CWR state
authorYuchung Cheng <ycheng@google.com>
Sun, 2 Sep 2012 17:38:04 +0000 (17:38 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Sep 2012 18:34:02 +0000 (14:34 -0400)
commitdb524ac24a671cbbd4ba82410f94b1c35d833eba
treeaba9dc4a825ac3c454d9058f0bec0829f2b6df69
parentdf3ba5b76646c0a1ede96e3fbcfd8ad16382a7dd
tcp: use PRR to reduce cwin in CWR state

Use proportional rate reduction (PRR) algorithm to reduce cwnd in CWR state,
in addition to Recovery state. Retire the current rate-halving in CWR.
When losses are detected via ACKs in CWR state, the sender enters Recovery
state but the cwnd reduction continues and does not restart.

Rename and refactor cwnd reduction functions since both CWR and Recovery
use the same algorithm:
tcp_init_cwnd_reduction() is new and initiates reduction state variables.
tcp_cwnd_reduction() is previously tcp_update_cwnd_in_recovery().
tcp_ends_cwnd_reduction() is previously  tcp_complete_cwr().

The rate halving functions and logic such as tcp_cwnd_down(), tcp_min_cwnd(),
and the cwnd moderation inside tcp_enter_cwr() are removed. The unused
parameter, flag, in tcp_cwnd_reduction() is also removed.

Signed-off-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c