aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorWeiping Pan <wpan@redhat.com>2014-04-18 00:27:46 -0400
committerDavid S. Miller <davem@davemloft.net>2014-04-20 18:18:56 -0400
commit86fd14ad1e8c4b8f5e9a7a27b26bdade91dd4bd0 (patch)
tree8f6dd795862f5b73f06c244c856d12ce0accc147 /net/ipv4/tcp_output.c
parent17d8ecb8ff791359c9d9a44bc766c3d4b87f37f7 (diff)
tcp: make tcp_cwnd_application_limited() static
Make tcp_cwnd_application_limited() static and move it from tcp_input.c to tcp_output.c Signed-off-by: Weiping Pan <wpan@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 025e25093984..29dde97c3c41 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1387,6 +1387,28 @@ unsigned int tcp_current_mss(struct sock *sk)
1387 return mss_now; 1387 return mss_now;
1388} 1388}
1389 1389
1390/* RFC2861, slow part. Adjust cwnd, after it was not full during one rto.
1391 * As additional protections, we do not touch cwnd in retransmission phases,
1392 * and if application hit its sndbuf limit recently.
1393 */
1394static void tcp_cwnd_application_limited(struct sock *sk)
1395{
1396 struct tcp_sock *tp = tcp_sk(sk);
1397
1398 if (inet_csk(sk)->icsk_ca_state == TCP_CA_Open &&
1399 sk->sk_socket && !test_bit(SOCK_NOSPACE, &sk->sk_socket->flags)) {
1400 /* Limited by application or receiver window. */
1401 u32 init_win = tcp_init_cwnd(tp, __sk_dst_get(sk));
1402 u32 win_used = max(tp->snd_cwnd_used, init_win);
1403 if (win_used < tp->snd_cwnd) {
1404 tp->snd_ssthresh = tcp_current_ssthresh(sk);
1405 tp->snd_cwnd = (tp->snd_cwnd + win_used) >> 1;
1406 }
1407 tp->snd_cwnd_used = 0;
1408 }
1409 tp->snd_cwnd_stamp = tcp_time_stamp;
1410}
1411
1390/* Congestion window validation. (RFC2861) */ 1412/* Congestion window validation. (RFC2861) */
1391static void tcp_cwnd_validate(struct sock *sk) 1413static void tcp_cwnd_validate(struct sock *sk)
1392{ 1414{