git: b1bcde8605fa - stable/13 - tcp_rack: Add a manual page
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Nov 2022 07:22:10 UTC
The branch stable/13 has been updated by gbe (doc committer): URL: https://cgit.FreeBSD.org/src/commit/?id=b1bcde8605fa96037c11cc54b5bf4d5b0a0e07ae commit b1bcde8605fa96037c11cc54b5bf4d5b0a0e07ae Author: Gordon Bergling <gbe@FreeBSD.org> AuthorDate: 2022-11-07 11:28:39 +0000 Commit: Gordon Bergling <gbe@FreeBSD.org> CommitDate: 2022-11-21 07:21:58 +0000 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 Differential Revision: https://reviews.freebsd.org/D37209 (cherry picked from commit bdbc05bea995d73465def1ab31bb3b2b37b37a93) --- share/man/man4/Makefile | 1 + share/man/man4/tcp.4 | 3 +- share/man/man4/tcp_bbr.4 | 5 +- share/man/man4/tcp_rack.4 | 159 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 165 insertions(+), 3 deletions(-) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index dccac2f7b24e..a1c6ade9bb69 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -557,6 +557,7 @@ MAN= aac.4 \ targ.4 \ tcp.4 \ tcp_bbr.4 \ + tcp_rack.4 \ tdfx.4 \ terasic_mtl.4 \ termios.4 \ diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index 3fe2753bf408..0584397a64d4 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 January 8, 2022 +.Dd November 7, 2022 .Dt TCP 4 .Os .Sh NAME @@ -957,6 +957,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 tcp_functions 9 .Rs 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 .