diff options
| author | JP Abgrall <jpa@google.com> | 2014-02-07 18:40:10 -0800 | 
|---|---|---|
| committer | JP Abgrall <jpa@google.com> | 2014-02-07 18:40:10 -0800 | 
| commit | 969ff3bbb38b6622800a1a4bd38404e3701193de (patch) | |
| tree | aa4dadf867bea6de598b98ceceabc6d6e40d3e29 /net/ipv4/tcp_output.c | |
| parent | 43fcab022e7eef42e0bbcc7b955e8de2ef1469a4 (diff) | |
| download | olio-linux-3.10-969ff3bbb38b6622800a1a4bd38404e3701193de.tar.xz olio-linux-3.10-969ff3bbb38b6622800a1a4bd38404e3701193de.zip  | |
tcp: add a sysctl to config the tcp_default_init_rwnd
The default initial rwnd is hardcoded to 10.
Now we allow it to be controlled via
  /proc/sys/net/ipv4/tcp_default_init_rwnd
which limits the values from 3 to 100
This is somewhat needed because ipv6 routes are
autoconfigured by the kernel.
See "An Argument for Increasing TCP's Initial Congestion Window"
in https://developers.google.com/speed/articles/tcp_initcwnd_paper.pdf
Change-Id: I386b2a9d62de0ebe05c1ebe1b4bd91b314af5c54
Signed-off-by: JP Abgrall <jpa@google.com>
Conflicts:
	net/ipv4/sysctl_net_ipv4.c
	net/ipv4/tcp_input.c
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index ec335fabd5c..084eac6a43b 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -231,14 +231,13 @@ void tcp_select_initial_window(int __space, __u32 mss,  	}  	/* Set initial window to a value enough for senders starting with -	 * initial congestion window of TCP_DEFAULT_INIT_RCVWND. Place +	 * initial congestion window of sysctl_tcp_default_init_rwnd. Place  	 * a limit on the initial window when mss is larger than 1460.  	 */  	if (mss > (1 << *rcv_wscale)) { -		int init_cwnd = TCP_DEFAULT_INIT_RCVWND; +		int init_cwnd = sysctl_tcp_default_init_rwnd;  		if (mss > 1460) -			init_cwnd = -			max_t(u32, (1460 * TCP_DEFAULT_INIT_RCVWND) / mss, 2); +			init_cwnd = max_t(u32, (1460 * init_cwnd) / mss, 2);  		/* when initializing use the value from init_rcv_wnd  		 * rather than the default from above  		 */  |