]> 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)
commit31410e6e0b18b5dbeef5a9f2a8a0f3400ca8595b
treeaba9dc4a825ac3c454d9058f0bec0829f2b6df69
parent46d6638130795667bdcab244e9fcc91d47260dc5
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