On 10/18/23 11:13, Dag-Erling Smørgrav wrote:
The branch main has been updated by des:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3a338c534154164504005beb00a3c6feb03756cc

commit 3a338c534154164504005beb00a3c6feb03756cc
Author:     Dag-Erling Smørgrav <[email protected]>
AuthorDate: 2023-10-18 14:13:12 +0000
Commit:     Dag-Erling Smørgrav <[email protected]>
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(-)

Hi,

There is a leftover description file, tools/build/options/WITH_EXTRA_TCP_STACKS.

Mitchell


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

Reply via email to