Netlink Protocol Families

The Netlink protocol family has many protocol families. Some of them have been deprecated and some are presently as of the date of this article present in the Linux Kernel. The list provides the reader in knowing the different protocol families available (I do not claim to know what each of them does individually myself 🙂 )The protocol families are tabulated below.

Netlink Protocol Family Description
NETLINK_ROUTE Receives routing and link updates and may be used to modify routing tables
NETLINK_W1 Messages from 1-wire subsystem (Linux 2.6.13 to 2.16.17). Refer below link for 1-wire subsystem

 

https://www.kernel.org/doc/html/latest/w1/index.html

NETLINK_USERSOCK Reserved for user-mode socket protocols. Note: Possibly a place holder and does not seem to be used
NETLINK_FIREWALL (up to and including Linux 3.4) Transport IPv4 packets from netfilter to user space.  Used by ip_queue kernel module. After a long period of being declared obsolete (in favor of the more advanced nfnetlink_queue feature), NETLINK_FIREWALL was removed in Linux 3.5.
NETLINK_SOCK_DIAG (since Linux 3.3) Query information about sockets of various protocol families from the kernel (see sock_diag(7)).
NETLINK_INET_DIAG (since Linux 2.6.14) An obsolete synonym for NETLINK_SOCK_DIAG.
NETLINK_NFLOG (up to and including Linux 3.16) Netfilter/iptables ULOG.
NETLINK_XFRM provides an interface to manage the IPsec security association and security policy databases – mostly used by key-manager daemons using the Internet Key Exchange protocol. (From Wikipedia)
NETLINK_SELINUX SELinux notifications- refer wikipedia page – Wikipedia -SELinux
NETLINK_AUDIT provides an interface to the audit subsystem found in Linux kernel versions 2.6.6 and later.
NETLINK_FIB_LOOKUP (since Linux 2.6.13) Access to FIB lookup from user space
NETLINK_CONNECTOR (since Linux 2.6.14) Kernel connector.  See Documentation/driver-api/connector.rst (or /Documentation/connector/connector.*  in kernel 5.2 and earlier) in the Linux kernel source tree for further information.
NETLINK_NETFILTER (since Linux 2.6.14) Netfilter subsystem.
NETLINK_SCSITRANSPORT (since Linux 2.6.19) SCSI Transports.
NETLINK_RDMA (since Linux 3.0) Infiniband RDMA.
NETLINK_IP6_FW (up to and including Linux 3.4) Transport IPv6 packets from netfilter to user space.  Used by ip6_queue kernel module.
NETLINK_DNRTMSG DECnet routing messages.
NETLINK_KOBJECT_UEVENT (since Linux 2.6.10) Kernel messages to user space.
NETLINK_GENERIC (since Linux 2.6.15) Generic netlink family for simplified netlink usage.
NETLINK_CRYPTO (since Linux 3.2) Netlink interface to request information about ciphers registered with the kernel crypto API as well as allow configuration of the kernel crypto API.

Inter-process communication using pipes in Linux user space

Comments

  1. Pingback: Netlink Message Macros | Hitch Hiker's Guide to Learning

Leave a Reply

Your email address will not be published. Required fields are marked *