Re: git: 3a338c534154 - main - Add the BBR and RACK stacks to the LINT kernel.
- In reply to: Dag-Erling Smørgrav : "git: 3a338c534154 - main - Add the BBR and RACK stacks to the LINT kernel."
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 18 Oct 2023 14:44:07 UTC
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 <des@FreeBSD.org>
> AuthorDate: 2023-10-18 14:13:12 +0000
> Commit: Dag-Erling Smørgrav <des@FreeBSD.org>
> 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