o Move the inflight sysctls to their own sub-tree under net.inet.tcp to be

more consistent with the other sysctls around it.
This commit is contained in:
Andre Oppermann 2004-08-03 13:54:11 +00:00
parent 9bafcc1adb
commit 24a098ea9b
3 changed files with 27 additions and 19 deletions

View File

@ -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.

View File

@ -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");

View File

@ -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");