tcp: add gone_in note for net.inet.tcp.sack.revised for fbsd16

Depricate the support for the old RFC3517 behavior of SACK loss
recovery, and simplfy the code to always adhere to RFC6675.

Reviewed By: tuexen, cc, #transport
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D52383
This commit is contained in:
Richard Scheffenegger
2025-09-05 00:23:14 +02:00
parent 641f525a87
commit 3aa0a0aaa2
2 changed files with 25 additions and 6 deletions
+6 -4
View File
@@ -31,7 +31,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd June 27, 2025
.Dd September 5, 2025
.Dt TCP 4
.Os
.Sh NAME
@@ -940,9 +940,6 @@ maximum segment size.
This helps throughput in general, but
particularly affects short transfers and high-bandwidth large
propagation-delay connections.
.It Va rfc6675_pipe
Deprecated and superseded by
.Va sack.revised
.It Va sack.enable
Enable support for RFC 2018, TCP Selective Acknowledgment option,
which allows the receiver to inform the sender about all successfully
@@ -974,6 +971,11 @@ recovery, the trailing segment is immediately resent, rather than waiting
for a Retransmission timeout.
Finally, SACK loss recovery is also engaged, once two segments plus one byte are
SACKed - even if no traditional duplicate ACKs were observed.
.Va sack.revised
is deprecated and will be removed in
.Fx 16 .
.Va sack.enable
will always follow RFC6675.
.It Va sendbuf_auto
Enable automatic send buffer sizing.
.It Va sendbuf_auto_lowat
+19 -2
View File
@@ -128,8 +128,25 @@ SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, enable, CTLFLAG_VNET | CTLFLAG_RW,
"Enable/Disable TCP SACK support");
VNET_DEFINE(int, tcp_do_newsack) = 1;
SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, revised, CTLFLAG_VNET | CTLFLAG_RW,
&VNET_NAME(tcp_do_newsack), 0,
static int
sysctl_net_inet_tcp_sack_revised(SYSCTL_HANDLER_ARGS)
{
int error;
int new;
new = V_tcp_do_newsack;
error = sysctl_handle_int(oidp, &new, 0, req);
if (error == 0 && req->newptr) {
V_tcp_do_newsack = new;
gone_in(16, "net.inet.tcp.sack.revised will be deprecated."
" net.inet.tcp.sack.enable will always follow RFC6675 SACK.\n");
}
return (error);
}
SYSCTL_PROC(_net_inet_tcp_sack, OID_AUTO, revised, CTLFLAG_VNET | CTLFLAG_RW | CTLTYPE_INT,
&VNET_NAME(tcp_do_newsack), 0, sysctl_net_inet_tcp_sack_revised, "CU",
"Use revised SACK loss recovery per RFC 6675");
VNET_DEFINE(int, tcp_do_lrd) = 1;