Subject: Re: TCP Pacing

From: Stephen Hemminger <[email-masked]>
Date: Wed, 13 Sep 2006 12:41:52 +0900

On Tue, 12 Sep 2006 19:58:21 +0200
Daniele Lacamera <[email-masked]> wrote:

> Hello,
> 
> Please let me insist once again on the importance of adding a TCP Pacing 
> mechanism in our TCP, as many people are including this algorithm in 
> their congestion control proposals. Recent researches have found out 
> that it really can help improving performance in different scenarios, 
> like satellites and long-delay high-speed channels (>100ms RTT, Gbit). 
> Hybla module itself is cripple without this feature in its natural 
> scenario. 
> 
> The following patch is totally non-invasive: it has a config option and 
> a sysctl switch, both turned off by default. When the config option is 
> enabled, it adds only 6B to the tcp_sock.

Yes, but tcp_sock is already greater than 1024 on 64 bit, and needs
a diet.

> 
> Signed-off by: Daniele Lacamera <[email-masked]>

Pacing in itself isn't a bad idea, but:
  * Code needs to follow standard whitespace rules
 	- blanks around operators		
	- blank after keyword
	- Avoid (needless) paraenthesis
Bad:
       if( (state==TCP_CA_Recovery) &&(tp->snd_cwnd <
tp->snd_ssthresh))
		window=(tp->snd_ssthresh)<<3;
Good:
	if (state == TCP_CA_Recovery && tp->snd_cwnd < tp->snd_ssthresh)
		window = tp->snd_ssthresh << 3;

  * Since it is most useful over long delay links, maybe it should
    be a route parameter.