aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Oppermann <andre@FreeBSD.org>2004-08-03 13:54:11 +0000
committerAndre Oppermann <andre@FreeBSD.org>2004-08-03 13:54:11 +0000
commit24a098ea9b6cc393ae05494777b8b8ffb5d2fd65 (patch)
treed2ae0fcd9dd70b9c3590ae31546991a64a1933ba
parent9bafcc1adbbe5d592a208e943823d9989b183c00 (diff)
downloadsrc-24a098ea9b6cc393ae05494777b8b8ffb5d2fd65.tar.gz
src-24a098ea9b6cc393ae05494777b8b8ffb5d2fd65.zip
o Move the inflight sysctls to their own sub-tree under net.inet.tcp to be
more consistent with the other sysctls around it.
Notes
Notes: svn path=/head/; revision=133072
-rw-r--r--share/man/man4/tcp.418
-rw-r--r--sys/netinet/tcp_subr.c14
-rw-r--r--sys/netinet/tcp_timewait.c14
3 files changed, 27 insertions, 19 deletions
diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4
index b033e287efa3..d9adfebf0e22 100644
--- a/share/man/man4/tcp.4
+++ b/share/man/man4/tcp.4
@@ -382,7 +382,7 @@ code.
For this reason, we use 200ms of slop and a near-0
minimum, which gives us an effective minimum of 200ms (similar to
.Tn Linux ) .
-.It Va inflight_enable
+.It Va inflight.enable
Enable
.Tn TCP
bandwidth-delay product limiting.
@@ -406,20 +406,20 @@ Note that bandwidth-delay product limiting only effects
the transmit side of a
.Tn TCP
connection.
-.It Va inflight_debug
+.It Va inflight.debug
Enable debugging for the bandwidth-delay product algorithm.
This may
default to on (1), so if you enable the algorithm,
you should probably also
disable debugging by setting this variable to 0.
-.It Va inflight_min
+.It Va inflight.min
This puts a lower bound on the bandwidth-delay product window, in bytes.
A value of 1024 is typically used for debugging.
6000-16000 is more typical in a production installation.
Setting this value too low may result in
slow ramp-up times for bursty connections.
Setting this value too high effectively disables the algorithm.
-.It Va inflight_max
+.It Va inflight.max
This puts an upper bound on the bandwidth-delay product window, in bytes.
This value should not generally be modified, but may be used to set a
global per-connection limit on queued data, potentially allowing you to
@@ -427,7 +427,7 @@ intentionally set a less than optimum limit, to smooth data flow over a
network while still being able to specify huge internal
.Tn TCP
buffers.
-.It Va inflight_stab
+.It Va inflight.stab
The bandwidth-delay product algorithm requires a slightly larger window
than it otherwise calculates for stability.
This parameter determines the extra window in maximal packets / 10.
@@ -438,17 +438,17 @@ come across a situation with very slow links where the
time
reduction of the default inflight code is not sufficient.
If this case occurs, you should first try reducing
-.Va inflight_min
+.Va inflight.min
and, if that does not
work, reduce both
-.Va inflight_min
+.Va inflight.min
and
-.Va inflight_stab ,
+.Va inflight.stab ,
trying values of
15, 10, or 5 for the latter.
Never use a value less than 5.
Reducing
-.Va inflight_stab
+.Va inflight.stab
can lead to upwards of a 20% underutilization of the link
as well as reducing the algorithm's ability to adapt to changing
situations and should only be done as a last resort.
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index 2064df6e6b65..1e23552ec2a7 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -183,23 +183,27 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, isn_reseed_interval, CTLFLAG_RW,
* 1024 exists only for debugging. A good production default would be
* something like 6100.
*/
+SYSCTL_NODE(_net_inet_tcp, OID_AUTO, inflight, CTLFLAG_RW, 0,
+ "TCP inflight data limiting");
+
static int tcp_inflight_enable = 1;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_enable, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, enable, CTLFLAG_RW,
&tcp_inflight_enable, 0, "Enable automatic TCP inflight data limiting");
static int tcp_inflight_debug = 0;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_debug, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, debug, CTLFLAG_RW,
&tcp_inflight_debug, 0, "Debug TCP inflight calculations");
static int tcp_inflight_min = 6144;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_min, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, min, CTLFLAG_RW,
&tcp_inflight_min, 0, "Lower-bound for TCP inflight window");
static int tcp_inflight_max = TCP_MAXWIN << TCP_MAX_WINSHIFT;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_max, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, max, CTLFLAG_RW,
&tcp_inflight_max, 0, "Upper-bound for TCP inflight window");
+
static int tcp_inflight_stab = 20;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_stab, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, stab, CTLFLAG_RW,
&tcp_inflight_stab, 0, "Inflight Algorithm Stabilization 20 = 2 packets");
SYSCTL_NODE(_net_inet_tcp, OID_AUTO, sack, CTLFLAG_RW, 0, "TCP SACK");
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
index 2064df6e6b65..1e23552ec2a7 100644
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -183,23 +183,27 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, isn_reseed_interval, CTLFLAG_RW,
* 1024 exists only for debugging. A good production default would be
* something like 6100.
*/
+SYSCTL_NODE(_net_inet_tcp, OID_AUTO, inflight, CTLFLAG_RW, 0,
+ "TCP inflight data limiting");
+
static int tcp_inflight_enable = 1;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_enable, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, enable, CTLFLAG_RW,
&tcp_inflight_enable, 0, "Enable automatic TCP inflight data limiting");
static int tcp_inflight_debug = 0;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_debug, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, debug, CTLFLAG_RW,
&tcp_inflight_debug, 0, "Debug TCP inflight calculations");
static int tcp_inflight_min = 6144;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_min, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, min, CTLFLAG_RW,
&tcp_inflight_min, 0, "Lower-bound for TCP inflight window");
static int tcp_inflight_max = TCP_MAXWIN << TCP_MAX_WINSHIFT;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_max, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, max, CTLFLAG_RW,
&tcp_inflight_max, 0, "Upper-bound for TCP inflight window");
+
static int tcp_inflight_stab = 20;
-SYSCTL_INT(_net_inet_tcp, OID_AUTO, inflight_stab, CTLFLAG_RW,
+SYSCTL_INT(_net_inet_tcp_inflight, OID_AUTO, stab, CTLFLAG_RW,
&tcp_inflight_stab, 0, "Inflight Algorithm Stabilization 20 = 2 packets");
SYSCTL_NODE(_net_inet_tcp, OID_AUTO, sack, CTLFLAG_RW, 0, "TCP SACK");