Netlink

Netlink
Stable release
6.11.6[1] Edit this on Wikidata / 1 November 2024; 1 day ago (1 November 2024)
Operating systemLinux
PlatformLinux kernel
TypeApplication programming interface
LicenseGNU General Public License
Websitewiki.linuxfoundation.org/networking/generic_netlink_howto

Netlink is a socket family used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes, in a way similar to the Unix domain sockets available on certain Unix-like operating systems, including its original incarnation as a Linux kernel interface, as well as in the form of a later implementation on FreeBSD.[2] Similarly to the Unix domain sockets, and unlike INET sockets, Netlink communication cannot traverse host boundaries. However, while the Unix domain sockets use the file system namespace, Netlink sockets are usually addressed by process identifiers (PIDs).[3]

Netlink is designed and used for transferring miscellaneous networking information between the kernel space and userspace processes. Networking utilities, such as the iproute2 family and the utilities used for configuring mac80211-based wireless drivers, use Netlink to communicate with the Linux kernel from userspace. Netlink provides a standard socket-based interface for userspace processes, and a kernel-side API for internal use by kernel modules. Originally, Netlink used the AF_NETLINKsocket family.

Netlink is designed to be a more flexible successor to ioctl; RFC 3549 describes the protocol in detail.

  1. ^ Greg Kroah-Hartman (1 November 2024). "Linux 6.11.6". Retrieved 1 November 2024.
  2. ^ "netlink: add netlink support".
  3. ^ "netlink(7) - Linux manual page". man7.org.