aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon Bergling <gbe@FreeBSD.org>2022-11-07 11:28:39 +0000
committerGordon Bergling <gbe@FreeBSD.org>2022-11-07 11:28:39 +0000
commitbdbc05bea995d73465def1ab31bb3b2b37b37a93 (patch)
tree277dffca593bab52bb4f8af50f82a89448e6ee27
parent160959df492b883d25532c6933a97e6d0554d48c (diff)
downloadsrc-bdbc05bea995d73465def1ab31bb3b2b37b37a93.tar.gz
src-bdbc05bea995d73465def1ab31bb3b2b37b37a93.zip
tcp_rack: Add a manual page
- add a manual page for tcp_rack(4) - link it in the tcp(4) and tcp_bbr(4) man pages - hook it up to build in the Makefile Reviewed by: pauamma MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D37209
-rw-r--r--share/man/man4/Makefile1
-rw-r--r--share/man/man4/tcp.43
-rw-r--r--share/man/man4/tcp_bbr.45
-rw-r--r--share/man/man4/tcp_rack.4159
4 files changed, 165 insertions, 3 deletions
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index 413ac035003d..8be70670f6cb 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -546,6 +546,7 @@ MAN= aac.4 \
targ.4 \
tcp.4 \
tcp_bbr.4 \
+ tcp_rack.4 \
tdfx.4 \
termios.4 \
textdump.4 \
diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4
index 1fca883a7d15..dea7da9054d0 100644
--- a/share/man/man4/tcp.4
+++ b/share/man/man4/tcp.4
@@ -34,7 +34,7 @@
.\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd October 7, 2022
+.Dd November 7, 2022
.Dt TCP 4
.Os
.Sh NAME
@@ -1054,6 +1054,7 @@ when trying to use a TCP function block that is not available;
.Xr siftr 4 ,
.Xr syncache 4 ,
.Xr tcp_bbr 4 ,
+.Xr tcp_rack 4 ,
.Xr setkey 8 ,
.Xr sysctl 8 ,
.Xr tcp_functions 9
diff --git a/share/man/man4/tcp_bbr.4 b/share/man/man4/tcp_bbr.4
index 604e205820fb..48281ad0164f 100644
--- a/share/man/man4/tcp_bbr.4
+++ b/share/man/man4/tcp_bbr.4
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2020, Gordon Bergling
+.\" Copyright (c) 2020, Gordon Bergling <gbe@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 24, 2020
+.Dd November 7, 2022
.Dt TCP_BBR 4
.Os
.Sh NAME
@@ -129,6 +129,7 @@ Minimum RTO in ms.
.Xr h_ertt 4 ,
.Xr mod_cc 4 ,
.Xr tcp 4 ,
+.Xr tcp_rack 4 ,
.Xr mod_cc 9
.Rs
.%A "Neal Cardwell"
diff --git a/share/man/man4/tcp_rack.4 b/share/man/man4/tcp_rack.4
new file mode 100644
index 000000000000..ce424ae73045
--- /dev/null
+++ b/share/man/man4/tcp_rack.4
@@ -0,0 +1,159 @@
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2022, Gordon Bergling <gbe@FreeBSD.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd November 7, 2022
+.Dt TCP_RACK 4
+.Os
+.Sh NAME
+.Nm tcp_rack
+.Nd TCP RACK-TLP Loss Detection Algorithm for TCP
+.Sh SYNOPSIS
+To use this TCP stack, place the following line in the
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "options TCPHPTS"
+.Ed
+.Pp
+To load the TCP stack as a module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+tcp_rack_load="YES"
+.Ed
+.Pp
+To enable the TCP stack, place the following line in the
+.Xr sysctl.conf 5 :
+.Bd -literal -offset indent
+net.inet.tcp.functions_default=rack
+.Ed
+.Sh DESCRIPTION
+RACK-TLP uses per-segment transmit timestamps and selective
+acknowledgments (SACKs) and has two parts.
+Recent Acknowledgment (RACK) starts fast recovery quickly
+using time-based inferences derived from acknowledgment (ACK)
+feedback, and Tail Loss Probe (TLP) leverages RACK
+and sends a probe packet to trigger ACK feedback to avoid
+retransmission timeout (RTO) events.
+.Pp
+Compared to the widely used duplicate acknowledgment (DupAck)
+threshold approach, RACK-TLP detects losses more efficiently
+when there are application-limited flights of data, lost
+retransmissions, or data packet reordering events.
+.Pp
+It is intended to be an alternative to the
+DupAck threshold approach.
+.Sh MIB Variables
+The algorithm exposes the following scopes in the
+.Va net.inet.tcp.rack
+branch of the
+.Xr sysctl 3
+MIB:
+.Bl -tag -width indent
+.It Va net.inet.tcp.rack.misc
+Misc related controls
+.It Va net.inet.tcp.rack.features
+Feature controls
+.It Va net.inet.tcp.rack.measure
+Measure related controls
+.It Va net.inet.tcp.rack.timers
+Timer related controls
+.It Va net.inet.tcp.rack.tlp
+TLP and Rack related Controls
+.It Va net.inet.tcp.rack.timely
+Rack Timely RTT Controls
+.It Va net.inet.tcp.rack.hdwr_pacing
+Pacing related Controls
+.It Va net.inet.tcp.rack.pacing
+Pacing related Controls
+.It Va net.inet.tcp.rack.tp
+Rack tracepoint facility
+.It Va net.inet.tcp.rack.probertt
+ProbeRTT related Controls
+.It Va net.inet.tcp.rack.stats
+Rack Counters
+.It Va net.inet.tcp.rack.sack_attack
+Rack Sack Attack Counters and Controls
+.El
+.Pp
+Besides the variables within the above scopes the following
+variables are also exposed in the
+.Va net.inet.tcp.rack
+branch:
+.Bl -tag -width indent
+.It Va net.inet.tcp.rack.clear
+Clear counters
+.It Va net.inet.tcp.rack.opts
+RACK Option Stats
+.It Va net.inet.tcp.rack.outsize
+MSS send sizes
+.It Va net.inet.tcp.rack.req_measure_cnt
+If doing dynamic pacing, how many measurements
+must be in before we start pacing?
+.It Va net.inet.tcp.rack.use_pacing
+If set we use pacing, if clear we use only the original burst mitigation
+.It Va net.inet.tcp.rack.rate_sample_method
+What method should we use for rate sampling 0=high, 1=low
+.El
+.Sh SEE ALSO
+.Xr cc_chd 4 ,
+.Xr cc_cubic 4 ,
+.Xr cc_hd 4 ,
+.Xr cc_htcp 4 ,
+.Xr cc_newreno 4 ,
+.Xr cc_vegas 4 ,
+.Xr h_ertt 4 ,
+.Xr mod_cc 4 ,
+.Xr tcp 4 ,
+.Xr tcp_bbr 4 ,
+.Xr mod_cc 9
+.Rs
+.%A "Neal Cardwell"
+.%A "Yuchung Cheng"
+.%A "Nandita Dukkipat"
+.%A "Priyaranjan Jha"
+.%T "The RACK-TLP Loss Detection Algorithm for TCP"
+.%O "RFC 8985"
+.%D "February 2021"
+.Re
+.Rs
+.%A "Ahmed M. Abdelmoniem"
+.%A "Brahim Bensaou"
+.%T "T-RACKs: A Faster Recovery Mechanism for TCP in Data Center Networks"
+.%O "https://arxiv.org/pdf/2102.07477.pdf"
+.%D "February 2021"
+.Re
+.Sh HISTORY
+The
+.Nm
+congestion control module first appeared in
+.Fx 13.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+congestion control module was written by
+.An Randall Stewart Aq Mt rrs@FreeBSD.org
+and sponsored by Netflix, Inc.
+This manual page was written by
+.An Gordon Bergling Aq Mt gbe@FreeBSD.org .