18 Jul, 2007
1 commit
-
None of the existing TCP congestion controls use the rtt value pased
in the ca_ops->cong_avoid interface. Which is lucky because seq_rtt
could have been -1 when handling a duplicate ack.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
18 May, 2007
1 commit
-
Add more comments to describe our version of tcp_slow_start().
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
26 Apr, 2007
2 commits
-
Do some simple changes to make congestion control API faster/cleaner.
* use ktime_t rather than timeval
* merge rtt sampling into existing ack callback
this means one indirect call versus two per ack.
* use flags bits to store options/settingsSigned-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Signed-off-by: John Heffner
Signed-off-by: David S. Miller
24 Apr, 2007
1 commit
-
Change to defer congestion control initialization.
If setsockopt() was used to change TCP_CONGESTION before
connection is established, then protocols that use sequence numbers
to keep track of one RTT interval (vegas, illinois, ...) get confused.Change the init hook to be called after handshake.
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
18 Feb, 2007
1 commit
-
Correct mis-spellings of "algorithm", "appear", "consistent" and
(shame, shame) "kernel".Signed-off-by: Robert P. J. Day
Signed-off-by: Adrian Bunk
11 Feb, 2007
1 commit
-
Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller
03 Dec, 2006
3 commits
-
If user has permision to load modules, then autoload then attempt
autoload of TCP congestion module.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Allow normal users to only choose among a restricted set of congestion
control choices. The default is reno and what ever has been configured
as default. But the policy can be changed by administrator at any time.For example, to allow any choice:
cp /proc/sys/net/ipv4/tcp_available_congestion_control \
/proc/sys/net/ipv4/tcp_allowed_congestion_controlSigned-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Create /proc/sys/net/ipv4/tcp_available_congestion_control
that reflects currently available TCP choices.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
02 Nov, 2006
1 commit
-
The setting of the default congestion control was buried in
the sysctl code so it would not be done properly if SYSCTL was
not enabled.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
25 Sep, 2006
1 commit
-
Change how default TCP congestion control is chosen. Don't just use
last installed module, instead allow selection during configuration,
and make sure and use the default regardless of load order.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
30 Aug, 2006
1 commit
-
1) fix slow start after retransmit timeout
2) fix case of L=2*SMSS acked bytes comparisonSigned-off-by: Daikichi Osuga
Signed-off-by: David S. Miller
01 Jul, 2006
1 commit
-
Signed-off-by: Jörn Engel
Signed-off-by: Adrian Bunk
18 Jun, 2006
1 commit
-
Many of the TCP congestion methods all just use ssthresh
as the minimum congestion window on decrease. Rather than
duplicating the code, just have that be the default if that
handle in the ops structure is not set.Minor behaviour change to TCP compound. It probably wants
to use this (ssthresh) as lower bound, rather than ssthresh/2
because the latter causes undershoot on loss.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
29 Mar, 2006
1 commit
-
Signed-off-by: S P
Signed-off-by: David S. Miller
04 Jan, 2006
1 commit
-
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 casesOn x86_64:
text data bss dec hex filename
3594701 648348 567400 4810449 4966d1 vmlinux.orig
3593133 648580 567400 4809113 496199 vmlinuxOn sparc64:
text data bss dec hex filename
2538278 406152 530392 3474822 350586 vmlinux.ORIG
2536382 406384 530392 3473158 34ff06 vmlinuxSigned-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
11 Nov, 2005
3 commits
-
This is an updated version of the RFC3465 ABC patch originally
for Linux 2.6.11-rc4 by Yee-Ting Li. ABC is a way of counting
bytes ack'd rather than packets when updating congestion control.The orignal ABC described in the RFC applied to a Reno style
algorithm. For advanced congestion control there is little
change after leaving slow start.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Move all the code that does linear TCP slowstart to one
inline function to ease later patch to add ABC support.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
TCP peformance with TSO over networks with delay is awful.
On a 100Mbit link with 150ms delay, we get 4Mbits/sec with TSO and
50Mbits/sec without TSO.The problem is with TSO, we intentionally do not keep the maximum
number of packets in flight to fill the window, we hold out to until
we can send a MSS chunk. But, we also don't update the congestion window
unless we have filled, as per RFC2861.This patch replaces the check for the congestion window being full
with something smarter that accounts for TSO.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
30 Aug, 2005
1 commit
-
This changeset basically moves tcp_sk()->{ca_ops,ca_state,etc} to inet_csk(),
minimal renaming/moving done in this changeset to ease review.Most of it is just changes of struct tcp_sock * to struct sock * parameters.
With this we move to a state closer to two interesting goals:
1. Generalisation of net/ipv4/tcp_diag.c, becoming inet_diag.c, being used
for any INET transport protocol that has struct inet_hashinfo and are
derived from struct inet_connection_sock. Keeps the userspace API, that will
just not display DCCP sockets, while newer versions of tools can support
DCCP.2. INET generic transport pluggable Congestion Avoidance infrastructure, using
the current TCP CA infrastructure with DCCP.Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller
24 Jun, 2005
2 commits
-
Allow using setsockopt to set TCP congestion control to use on a per
socket basis.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Allow TCP to have multiple pluggable congestion control algorithms.
Algorithms are defined by a set of operations and can be built in
or modules. The legacy "new RENO" algorithm is used as a starting
point and fallback.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller