opnsense-src/sys/amd64
Alexander V. Chernikov 84c7aaf0de netlink: 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.

This change targets amd64, the other architectures will follow soon.

Differential Revision: https://reviews.freebsd.org/D37783

(cherry picked from commit 692e19cf51)
2023-01-27 09:08:16 +00:00
..
acpica amd64 wakeup: rework trampoline page allocation 2021-09-20 03:47:21 +03:00
amd64 amd64: Fix a common typo in source code comments 2023-01-22 10:09:26 +01:00
cloudabi32 fork: Allow ABI to specify fork return values for child. 2022-06-17 22:33:28 +03:00
cloudabi64 fork: Allow ABI to specify fork return values for child. 2022-06-17 22:33:28 +03:00
conf netlink: add netlink to GENERIC@amd64 2023-01-27 09:08:16 +00:00
ia32 x86: Add a NT_X86_SEGBASES register set. 2022-05-13 09:45:19 -07:00
include vmm: Don't lock a vCPU for VM_PPTDEV_MSI[X]. 2023-01-26 14:07:24 -08:00
linux linux: populate sv_syscallnames in each sysentvec 2022-11-06 10:54:46 -04:00
linux32 linux32: binutils as requires %eflags instead of %flags for CFI. 2022-11-11 10:18:53 -08:00
pci pci_cfgreg.c: Use io port config access for early boot time. 2019-04-09 18:07:17 +00:00
sgx Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
vmm vmm: Free vCPUs when destroying them. 2023-01-26 14:07:38 -08:00
Makefile Bring the tags and links entries for amd64 up to date. 2021-10-07 16:01:46 -07:00