]> git.puffer.fish Git - mirror/frr.git/commit
zebra: Add function to resolve Generic Netlink family
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Thu, 3 Nov 2022 15:16:23 +0000 (16:16 +0100)
committerCarmine Scarpitta <cscarpit@cisco.com>
Thu, 14 Dec 2023 13:56:44 +0000 (14:56 +0100)
commit959267f7c201a84b90cc00ac2b7a0c0b3490c8b6
treeedb6f39085e9feefc85ff1d70fcf59b4629eb87c
parente14d1dcdbc7c35481760d721b68fa6bcdcd8bf69
zebra: Add function to resolve Generic Netlink family

Generic Netlink is an extension of Netlink meant for kernel-user space
communications. It supports the dynamic allocation of communication
channels. Kernel and user space applications register their services
with a Generic Netlink controller. The Generic Netlink controller is
responsible for assigning a unique channel number with each service.
Clients who want to use a service query the controller to see if
the service exists and to determine the correct channel number. The
channel number is used to access the requested service.

This commit adds the base functionality to get the channel number
assigned to a specific service. More precisely, this commit adds a
function `genl_resolve_family()` that takes the service name (called
family in the Generic Netlink terminology) as an input parameter and
queries the Generic Netlink controller to get the channel number
assigned with the requested service.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
zebra/ge_netlink.c [new file with mode: 0644]
zebra/ge_netlink.h [new file with mode: 0644]
zebra/kernel_netlink.c
zebra/subdir.am