Understanding GENERIC_NETLINK interface

The number of netlink families are 32. The netlink families which are presently available as of Kernel 6.13.2 are provided in the article here (Netlink Protocol Families). The number of protocol families were seen to be limited and needed a mechanism that would allow different independently defined Netlink families to be defined. To address this requirement of independent generic families with their own set of communication channels, NETLINK_GENERIC was added as a protocol family member. The other members of the NETLINK protocol families were termed as classic Netlink families.

Generic Netlink overcomes the limitations of classic Netlink’s static ID allocation by providing a mechanism for dynamic registration of new communication channels, referred to as “families”. This is managed through a central Generic Netlink controller (nlctrl ) . User space programs utilize the libnl that provides various APIs to communicate with the kernel space using generic netlink. The below diagram shows the generic netlink sub-system.

FIG: Generic NETLINK sub-system. nl80211 Wi-Fi system also uses generic netlink to communicate with Wi-Fi drivers

Inter-process communication using pipes in Linux user space

Leave a Reply

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