Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Feb 2023 16:11:27 GMT
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 6058f6cc48f5 - stable/13 - netlink: add NETLINK to GENERIC.
Message-ID:  <202302091611.319GBRev005512@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by melifaro:

URL: https://cgit.FreeBSD.org/src/commit/?id=6058f6cc48f5ec02476bf46693673bd71291a5c0

commit 6058f6cc48f5ec02476bf46693673bd71291a5c0
Author:     Alexander V. Chernikov <melifaro@FreeBSD.org>
AuthorDate: 2023-01-31 14:22:11 +0000
Commit:     Alexander V. Chernikov <melifaro@FreeBSD.org>
CommitDate: 2023-02-09 15:52:09 +0000

    netlink: add NETLINK to GENERIC.
    
    This is a followup of 692e19cf5195 (add netlink to GENERIC@amd64).
    
    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.
    
    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
    
    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.
    
    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.
    
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D37783
    
    (cherry picked from commit e80699a809a079c4e673940544d6ddd944e8d08e)
---
 sys/arm/conf/std.armv7     | 1 +
 sys/arm64/conf/GENERIC     | 1 +
 sys/i386/conf/GENERIC      | 1 +
 sys/powerpc/conf/GENERIC64 | 1 +
 sys/riscv/conf/GENERIC     | 1 +
 5 files changed, 5 insertions(+)

diff --git a/sys/arm/conf/std.armv7 b/sys/arm/conf/std.armv7
index dbe863d9da92..7cc4adb5bef2 100644
--- a/sys/arm/conf/std.armv7
+++ b/sys/arm/conf/std.armv7
@@ -11,6 +11,7 @@ options 	INET6			# IPv6 communications protocols
 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/GENERIC b/sys/arm64/conf/GENERIC
index f8842d672c0e..9f7a67e2079a 100644
--- a/sys/arm64/conf/GENERIC
+++ b/sys/arm64/conf/GENERIC
@@ -31,6 +31,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		FIB_ALGO		# Modular fib lookups
 options 	TCP_OFFLOAD		# TCP offload
diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC
index 0bac5ba4c846..921b099ecf17 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 1e7fd9759874..73d6ce5d4576 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 7d158269cde0..9c97e40f1db2 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?202302091611.319GBRev005512>