Subject: Re: Controlling TCP window size

From: John Heffner <[email-masked]>
Date: Tue, 16 May 2006 14:28:23 -0400

Andy Furniss wrote:
> 
> I've been doing some testing of my new wan connection and noticed that 
> when I specify a window with ip route it still changes after a while.

Looks like this is occurring in net/ipv4/tcp_input.c:tcp_rcv_space_adjust().

The problem really is that the window_clamp variable is overloaded. 
It's used as a kind of cache for rcvbuf -> window conversion, but also 
as a user-settable bound in window size.  On examination, it looks like 
this is also broken (in that window size won't increase) if a user does 
a setsockopt(SO_RCVBUF).  Can we make window_clamp a true clamp?  Then 
we can get rid of the hack of raising it in tcp_rcv_space_adjust().  I 
can cook up a patch if interested.

   -John