Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Jan 2023 15:05:00 +0000
From:      Jessica Clarke <jrtc27@freebsd.org>
To:        "Alexander V. Chernikov" <melifaro@FreeBSD.org>
Cc:        "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: e80699a809a0 - main - netlink: add NETLINK to GENERIC.
Message-ID:  <9C7C790F-68BD-4913-B554-6C72BE9174D5@freebsd.org>
In-Reply-To: <202301311425.30VEPYhj039848@gitrepo.freebsd.org>
References:  <202301311425.30VEPYhj039848@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 31 Jan 2023, at 14:25, Alexander V. Chernikov <melifaro@FreeBSD.org> =
wrote:
>=20
> The branch main has been updated by melifaro:
>=20
> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3De80699a809a079c4e673940544d6ddd9=
44e8d08e
>=20
> commit e80699a809a079c4e673940544d6ddd944e8d08e
> Author:     Alexander V. Chernikov <melifaro@FreeBSD.org>
> AuthorDate: 2023-01-31 14:22:11 +0000
> Commit:     Alexander V. Chernikov <melifaro@FreeBSD.org>
> CommitDate: 2023-01-31 14:22:11 +0000
>=20
>    netlink: add NETLINK to GENERIC.
>=20
>    This is a followup of 692e19cf5195 (add netlink to GENERIC@amd64).
>=20
>    Netlink is a communication protocol defined in RFC 3549. It is =
async,
>    TLV-based protocol, providing 1-1 and 1-many communications between =
kernel
>    and userland. Netlink is currently used in Linux kernel to modify, =
read and
>    subscribe for nearly all networking states. Interface state, =
addresses, routes,
>    firewall, rules, fibs, etc, are controlled via Netlink.
>=20
>    Netlink support was added in D36002. It has got a number of =
improvements and
>    first customers since then:
>    * net/bird2 got netlink support, enabling route multipath in =
FreeBSD
>    * netlink-based devd notifications are being worked on ( D37574 ).
>    * linux(4) fully supports and depends on Netlink
>=20
>    Enabling Netlink in GENERIC targets two goals.
>    The first one is to provide stability for the third-party userland =
applications,
>    so they can rely on the fact that netlink always exists since 14.0 =
and potentially 13.2.
>    Loadable module makes life of the app delepers harder. For example, =
`net/bird2` can be
>    either build with netlink or rtsock support, but not both.
>=20
>    The second goal is to enable gradual conversion of the base =
userland tools
>    to use netlink(4) interfaces. Converting tools like netstat =
(D36529), route,
>    ifconfig one-by-one simplifies testing and addressing the feedback.
>    Othewise, switching all base to use netlink at once may be too big =
of a leap.
>=20
>    MFC after:      1 week
>    Differential Revision: https://reviews.freebsd.org/D37783
> ---
> sys/arm/conf/std.armv7     | 1 +
> sys/arm64/conf/std.arm64   | 1 +
> sys/i386/conf/GENERIC      | 1 +
> sys/powerpc/conf/GENERIC64 | 1 +
> sys/riscv/conf/GENERIC     | 1 +
> 5 files changed, 5 insertions(+)

Why not 32-bit powerpc? And if this is to make it generally available
as a standard FreeBSD component, what about all the various non-GENERIC
kernels (that don=E2=80=99t inherit from one of the ones you=E2=80=99ve =
touched)?
Especially if base is going to start using it.

Jess

> diff --git a/sys/arm/conf/std.armv7 b/sys/arm/conf/std.armv7
> index 8ace5c01eeab..03cc0ae5a2b8 100644
> --- a/sys/arm/conf/std.armv7
> +++ b/sys/arm/conf/std.armv7
> @@ -11,6 +11,7 @@ options 	CC_CUBIC		# include CUBIC =
congestion control
> options 	TCP_HHOOK		# hhook(9) framework for TCP
> device		crypto			# core crypto support
> options 	IPSEC_SUPPORT		# Allow kldload of ipsec and =
tcpmd5
> +options		NETLINK			# netlink(4) support
> options 	SCTP_SUPPORT		# Allow kldload of SCTP
> options 	FFS			# Berkeley Fast Filesystem
> options 	SOFTUPDATES		# Enable FFS soft updates =
support
> diff --git a/sys/arm64/conf/std.arm64 b/sys/arm64/conf/std.arm64
> index 6480ca6530e4..1e664a3ba90c 100644
> --- a/sys/arm64/conf/std.arm64
> +++ b/sys/arm64/conf/std.arm64
> @@ -13,6 +13,7 @@ options 	INET			# =
InterNETworking
> options 	INET6			# IPv6 communications protocols
> options 	CC_CUBIC		# include CUBIC congestion =
control
> options 	IPSEC_SUPPORT		# Allow kldload of ipsec and =
tcpmd5
> +options		NETLINK			# netlink(4) support
> options 	ROUTE_MPATH		# Multipath routing support
> options 	FIB_ALGO		# Modular fib lookups
> options 	TCP_OFFLOAD		# TCP offload
> diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC
> index 235713851016..5d30f2877c1c 100644
> --- a/sys/i386/conf/GENERIC
> +++ b/sys/i386/conf/GENERIC
> @@ -32,6 +32,7 @@ options 	VIMAGE			# Subsystem =
virtualization, e.g. VNET
> options 	INET			# InterNETworking
> options 	INET6			# IPv6 communications protocols
> options 	IPSEC_SUPPORT		# Allow kldload of ipsec and =
tcpmd5
> +options		NETLINK			# netlink(4) support
> options		ROUTE_MPATH		# Multipath routing =
support
> options 	TCP_HHOOK		# hhook(9) framework for TCP
> options 	TCP_OFFLOAD		# TCP offload
> diff --git a/sys/powerpc/conf/GENERIC64 b/sys/powerpc/conf/GENERIC64
> index bfd0cf342d95..37a78446f07a 100644
> --- a/sys/powerpc/conf/GENERIC64
> +++ b/sys/powerpc/conf/GENERIC64
> @@ -42,6 +42,7 @@ options 	VIMAGE			# Subsystem =
virtualization, e.g. VNET
> options 	INET			# InterNETworking
> options 	INET6			# IPv6 communications protocols
> options 	IPSEC_SUPPORT		# Allow kldload of ipsec and =
tcpmd5
> +options		NETLINK			# netlink(4) support
> options		ROUTE_MPATH		# Multipath routing =
support
> options 	TCP_OFFLOAD		# TCP offload
> options 	TCP_BLACKBOX		# Enhanced TCP event logging
> diff --git a/sys/riscv/conf/GENERIC b/sys/riscv/conf/GENERIC
> index 2e35a49825d4..69c36511da80 100644
> --- a/sys/riscv/conf/GENERIC
> +++ b/sys/riscv/conf/GENERIC
> @@ -31,6 +31,7 @@ options 	INET			# =
InterNETworking
> options 	INET6			# IPv6 communications protocols
> options 	TCP_HHOOK		# hhook(9) framework for TCP
> options 	IPSEC_SUPPORT		# Allow kldload of ipsec and =
tcpmd5
> +options		NETLINK			# netlink(4) support
> options		ROUTE_MPATH		# Multipath routing =
support
> options 	TCP_OFFLOAD		# TCP offload
> options 	TCP_BLACKBOX		# Enhanced TCP event logging




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9C7C790F-68BD-4913-B554-6C72BE9174D5>