Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Mar 2023 11:55:35 +0000
From:      Alexander Chernikov <melifaro@freebsd.org>
To:        Jessica Clarke <jrtc27@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:  <AC47C23F-1EE0-48A1-BAF7-DC942A80BAD8@freebsd.org>
In-Reply-To: <9C7C790F-68BD-4913-B554-6C72BE9174D5@freebsd.org>
References:  <202301311425.30VEPYhj039848@gitrepo.freebsd.org> <9C7C790F-68BD-4913-B554-6C72BE9174D5@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Jessica,

I=E2=80=99d like to apologise for the belated reply.

> On 31 Jan 2023, at 15:05, Jessica Clarke <jrtc27@freebsd.org> wrote:
>=20
> 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(+)
>=20
> Why not 32-bit powerpc? And if this is to make it generally available
The goal at the time was to get wider testing & feedback, joined with =
having code suitable for merging to 13.2.
> 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.
You=E2=80=99re absolutely right, I=E2=80=99ve raised =
https://reviews.freebsd.org/D39047 to make Netlink a standard kernel =
component.
>=20
> Jess
>=20
>> 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
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AC47C23F-1EE0-48A1-BAF7-DC942A80BAD8>