diff options
| author | Stephen Hemminger <shemminger@osdl.org> | 2006-01-03 16:03:49 -0800 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2006-01-03 16:03:49 -0800 | 
| commit | 40efc6fa179f440a008333ea98f701bc35a1f97f (patch) | |
| tree | ef087df36868362c0238a0aa4373532622e49068 /net/ipv4/tcp_cong.c | |
| parent | 3c19065a1e2c862becc576bc65e54f2bc1cbffe6 (diff) | |
| download | olio-linux-3.10-40efc6fa179f440a008333ea98f701bc35a1f97f.tar.xz olio-linux-3.10-40efc6fa179f440a008333ea98f701bc35a1f97f.zip  | |
[TCP]: less inline's
TCP inline usage cleanup:
 * get rid of inline in several places
 * replace __inline__ with inline where possible
 * move functions used in one file out of tcp.h
 * let compiler decide on used once cases
On x86_64: 
   text	   data	    bss	    dec	    hex	filename
3594701	 648348	 567400	4810449	 4966d1	vmlinux.orig
3593133	 648580	 567400	4809113	 496199	vmlinux
On sparc64:
   text	   data	    bss	    dec	    hex	filename
2538278	 406152	 530392	3474822	 350586	vmlinux.ORIG
2536382	 406384	 530392	3473158	 34ff06	vmlinux
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_cong.c')
| -rw-r--r-- | net/ipv4/tcp_cong.c | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/net/ipv4/tcp_cong.c b/net/ipv4/tcp_cong.c index c7cc62c8dc1..e688c687d62 100644 --- a/net/ipv4/tcp_cong.c +++ b/net/ipv4/tcp_cong.c @@ -174,6 +174,34 @@ int tcp_set_congestion_control(struct sock *sk, const char *name)  	return err;  } + +/* + * Linear increase during slow start + */ +void tcp_slow_start(struct tcp_sock *tp) +{ +	if (sysctl_tcp_abc) { +		/* RFC3465: Slow Start +		 * TCP sender SHOULD increase cwnd by the number of +		 * previously unacknowledged bytes ACKed by each incoming +		 * acknowledgment, provided the increase is not more than L +		 */ +		if (tp->bytes_acked < tp->mss_cache) +			return; + +		/* We MAY increase by 2 if discovered delayed ack */ +		if (sysctl_tcp_abc > 1 && tp->bytes_acked > 2*tp->mss_cache) { +			if (tp->snd_cwnd < tp->snd_cwnd_clamp) +				tp->snd_cwnd++; +		} +	} +	tp->bytes_acked = 0; + +	if (tp->snd_cwnd < tp->snd_cwnd_clamp) +		tp->snd_cwnd++; +} +EXPORT_SYMBOL_GPL(tcp_slow_start); +  /*   * TCP Reno congestion control   * This is special case used for fallback as well.  |