From nobody Wed Oct 18 14:13:33 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4S9XrY448Rz4x50J; Wed, 18 Oct 2023 14:13:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4S9XrY2vHqz3Hnq; Wed, 18 Oct 2023 14:13:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1697638413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/u7JzptrmCW6PE/DtHQBRwAHi6lmh3oqDQgmVInhO0=; b=uRrOruFW/OGDi/dBU16dNLCNlwpFC0QhY9XJrBJjFkmI9jmPMtRjCMvC8ODt787PgvtC4m SrLs/JBgZY99b/6XU4NpKIB3XDW+Gkg2/aLUQMj+owAf/fP7dg9YA1ZdTx/T9oqXLdczQ4 /u/eJKoiPFps+IHIH6iAmlke8vjIEhqMTNWDWg3sDCujEQI1HoHM1E7zz2ivitC3k/Q3tR 5tC6sle8/rtESSUZGDjV9Ir8pW1lmYbXhG2MIM99n8r2HhQzFUMP7HglozlMUO9sYg9hey fNtppoCAZLStD3DpmwBdINuJ3h8P6I+WE6Qiu5dP5lGRlBwEXX7/kMfhtOtfQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1697638413; a=rsa-sha256; cv=none; b=K8AGBmSo4akPIWdQiQMhPJq8ULwoQ6kY/e9/G5nHkbu05hFOzheLCHSCOdb1KABu7sW/Fv HN91ABlvePUmqxaP46OxZBgvzfzsNzFeDzccBzi1vgLbqI9Ff/COTo5J7rSy9qZ3KyQbYL rCFNHXfFZ/d6WjZP5z8ui4kRgyKURk6iAa8rrNryijPvaA+FlTvoxOhgrjtHBMPGrZQFGd WBt6fGBrZQz+s9pAfYgTiVr+qQNCs0FBlgAgIYSCjcT5lvYs9+HjRajmCrNyj4j9srz9pk HWCdyVirWWiX7lvc/gzyeDFB1cQ7PxIyL72E4vmJgE5wMlN4j2M+mCHoFJB6dQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1697638413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/u7JzptrmCW6PE/DtHQBRwAHi6lmh3oqDQgmVInhO0=; b=PMeN3Nh8BpbIj1wzNHit0PTUbDniEZtHnjEki2CS5Dc+Z2agcCzH58nODJ2980wV2+ut/x nIcEOO88ZZutXZ7ZM/OXYnoWKjSh6PoqfHrO8b2eAaxBb/OCjUu602fDztUdLKaiFpY2kc C64kwA5s0Fui26FrcWEwDduuWd6RTDKcVs3q0uxIvqfk/NTdPHyQVQ77rykBn20Amnb2xK Uad8ua+hxrTAS/PcUCc41K56XfT89RRJ+zSpY9SMaMVtUNk6+oStjzIx3S8CCSfPYby4TY kbKCj0iwfjWIcoqr3xtWSMKt07IOkMMmLvXOFHiz5HiFfT4BsKr2hu+5iDJUaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4S9XrY1y4kz18Vy; Wed, 18 Oct 2023 14:13:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 39IEDXsf057487; Wed, 18 Oct 2023 14:13:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 39IEDXce057484; Wed, 18 Oct 2023 14:13:33 GMT (envelope-from git) Date: Wed, 18 Oct 2023 14:13:33 GMT Message-Id: <202310181413.39IEDXce057484@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 3a338c534154 - main - Add the BBR and RACK stacks to the LINT kernel. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3a338c534154164504005beb00a3c6feb03756cc Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=3a338c534154164504005beb00a3c6feb03756cc commit 3a338c534154164504005beb00a3c6feb03756cc Author: Dag-Erling Smørgrav AuthorDate: 2023-10-18 14:13:12 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-10-18 14:13:12 +0000 Add the BBR and RACK stacks to the LINT kernel. While here, drop the EXTRA_TCP_STACKS option, which serves no purpose and should never have been added. Instead, build bbr and rack as long as either or both of INET and INET6 is enabled. There is no risk to anyone who doesn't load one or both and then twiddle the relevant sysctls. Differential Revision: https://reviews.freebsd.org/D42088 --- share/man/man5/src.conf.5 | 2 -- sys/conf/NOTES | 4 +++- sys/conf/files | 7 +++++++ sys/conf/kern.opts.mk | 1 - sys/conf/kern.post.mk | 4 ---- sys/conf/options | 2 ++ sys/modules/tcp/Makefile | 7 ++----- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 9d26531e515b..bc94d5c62234 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -641,8 +641,6 @@ Avoid installing examples to .Pa /usr/share/examples/ . .It Va WITH_EXPERIMENTAL Include experimental features in the build. -.It Va WITH_EXTRA_TCP_STACKS -Build extra TCP stack modules. .It Va WITHOUT_FDT Do not build Flattened Device Tree support as part of the base system. This includes the device tree compiler (dtc) and libfdt support library. diff --git a/sys/conf/NOTES b/sys/conf/NOTES index a5ed60792a1f..b12d5def2d57 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -681,7 +681,6 @@ options TCP_OFFLOAD # TCP offload support. options TCP_RFC7413 # TCP Fast Open options TCPHPTS -makeoptions WITH_EXTRA_TCP_STACKS=1 # RACK and BBR TCP kernel modules # In order to enable IPSEC you MUST also add device crypto to # your kernel configuration @@ -693,6 +692,9 @@ options IPSEC #IP security (requires device crypto) options IPSEC_SUPPORT #options IPSEC_DEBUG #debug for IP security +# Alternative TCP stacks +options TCP_BBR +options TCP_RACK # TLS framing and encryption/decryption of data over TCP sockets. options KERN_TLS # TLS transmit and receive offload diff --git a/sys/conf/files b/sys/conf/files index 8c3bdca61905..c127ce7e7103 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -4361,6 +4361,13 @@ netinet/tcp_pcap.c optional inet tcppcap | inet6 tcppcap \ compile-with "${NORMAL_C} ${NO_WNONNULL}" netinet/tcp_reass.c optional inet | inet6 netinet/tcp_sack.c optional inet | inet6 +netinet/tcp_stacks/bbr.c optional inet tcp_bbr | inet6 tcp_bbr \ + compile-with "${NORMAL_C} -DMODNAME=tcp_bbr -DSTACKNAME=bbr" +netinet/tcp_stacks/rack.c optional inet tcp_bbr | inet6 tcp_bbr \ + compile-with "${NORMAL_C} -DMODNAME=tcp_rack -DSTACKNAME=rack" +netinet/tcp_stacks/rack_bbr_common.c optional inet tcp_bbr | inet tcp_rack | inet6 tcp_bbr | inet6 tcp_rack +netinet/tcp_stacks/sack_filter.c optional inet tcp_bbr | inet tcp_rack | inet6 tcp_bbr | inet6 tcp_rack +netinet/tcp_stacks/tailq_hash.c optional inet tcp_bbr | inet tcp_rack | inet6 tcp_bbr | inet6 tcp_rack netinet/tcp_stats.c optional stats inet | stats inet6 netinet/tcp_subr.c optional inet | inet6 netinet/tcp_syncache.c optional inet | inet6 diff --git a/sys/conf/kern.opts.mk b/sys/conf/kern.opts.mk index f908f761b21e..cc6f8a1d8755 100644 --- a/sys/conf/kern.opts.mk +++ b/sys/conf/kern.opts.mk @@ -56,7 +56,6 @@ __DEFAULT_YES_OPTIONS = \ __DEFAULT_NO_OPTIONS = \ BHYVE_SNAPSHOT \ - EXTRA_TCP_STACKS \ KERNEL_RETPOLINE \ RATELIMIT \ REPRODUCIBLE_BUILD \ diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index a4eb2e94a47b..bea29507a736 100644 --- a/sys/conf/kern.post.mk +++ b/sys/conf/kern.post.mk @@ -33,10 +33,6 @@ MKMODULESENV+= CONF_CFLAGS="${CONF_CFLAGS}" MKMODULESENV+= WITH_CTF="${WITH_CTF}" .endif -.if defined(WITH_EXTRA_TCP_STACKS) -MKMODULESENV+= WITH_EXTRA_TCP_STACKS="${WITH_EXTRA_TCP_STACKS}" -.endif - .if !empty(KCSAN_ENABLED) MKMODULESENV+= KCSAN_ENABLED="yes" .endif diff --git a/sys/conf/options b/sys/conf/options index 4e74c4ab3a70..d2f31272d189 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -231,6 +231,8 @@ SW_WATCHDOG opt_watchdog.h TCPHPTS opt_inet.h TCP_REQUEST_TRK opt_global.h TCP_ACCOUNTING opt_global.h +TCP_BBR opt_inet.h +TCP_RACK opt_inet.h # # TCP SaD Detection is an experimental Sack attack Detection (SaD) # algorithm that uses "normal" behaviour with SACK's to detect diff --git a/sys/modules/tcp/Makefile b/sys/modules/tcp/Makefile index 8f89977b5b69..364c0326c40d 100644 --- a/sys/modules/tcp/Makefile +++ b/sys/modules/tcp/Makefile @@ -8,13 +8,10 @@ SUBDIR= \ ${_tcp_rack} \ ${_tcpmd5} \ -.if ${MK_EXTRA_TCP_STACKS} != "no" || defined(ALL_MODULES) -_tcp_bbr= bbr -_tcp_rack= rack -.endif - .if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) +_tcp_bbr= bbr +_tcp_rack= rack .if ${KERN_OPTS:MIPSEC_SUPPORT} && !${KERN_OPTS:MTCP_SIGNATURE} _tcpmd5= tcpmd5 .endif