Subject: Re: [PATCH] Add sysctl to set the advertised TCP initial receive window.

From: Eric Dumazet <[email-masked]>
Date: Wed, 09 Dec 2009 21:33:16 +0100

Le 09/12/2009 21:13, [email-masked] a écrit :
> Add a sysctl, tcp_init_rcv_wnd, to set the TCP initial receive window
> size advertised by passive and active TCP connections.
> The current Linux TCP implementation limits the advertised TCP initial
> receive window to the one prescribed by slow start. For short lived
> TCP connections used for transaction type of traffic (i.e. http
> requests), bounding the advertised TCP initial receive window results
> in increased latency to complete the transaction. There exists
> environments where strict adherence to using the TCP initial receive
> window used by slow start is un-necessary.
> The tcp_init_rcv_wnd sysctl allows increasing the TCP initial receive
> window for all TCP connections or on a per TCP connection, allowing
> for some of the TCP connection to advertise larger TCP receive window
> than the ones bounded by slow start. Support for setting initial
> congestion window is already supported in the stack but the feature 
> is useless without the ability to set a larger initial receive window.
> 
> Signed-off-by: Laurent Chavey <[email-masked]>

> index f1813bc..7567edd 100644
> --- a/net/ipv4/tcp.c
> +++ b/net/ipv4/tcp.c
> @@ -2248,6 +2248,11 @@ static int do_tcp_setsockopt(struct sock *sk, int level,
>  		break;
>  #endif
>  
> +	case TCP_INIT_RCV_WND:
> +		val = min_t(int, val, TCP_INIT_RCV_WND_MAX);
> +		tp->rx_opt.init_rcv_wnd = val;
> +		break;
> +

If user pass val = -1, you end with init_rcv_wnd = 255

Is it what you want ?

Probably not :)

Minor nit , your subject should be : [PATCH] tcp: Add sysctl to blablabla