• Thomas Graf's avatar
    [NETLINK]: Generic netlink family · 482a8524
    Thomas Graf authored
    The generic netlink family builds on top of netlink and provides
    simplifies access for the less demanding netlink users. It solves
    the problem of protocol numbers running out by introducing a so
    called controller taking care of id management and name resolving.
    
    Generic netlink modules register themself after filling out their
    id card (struct genl_family), after successful registration the
    modules are able to register callbacks to command numbers by
    filling out a struct genl_ops and calling genl_register_op(). The
    registered callbacks are invoked with attributes parsed making
    life of simple modules a lot easier.
    
    Although generic netlink modules can request static identifiers,
    it is recommended to use GENL_ID_GENERATE and to let the controller
    assign a unique identifier to the module. Userspace applications
    will then ask the controller and lookup the idenfier by the module
    name.
    
    Due to the current multicast implementation of netlink, the number
    of generic netlink modules is restricted to 1024 to avoid wasting
    memory for the per socket multiacst subscription bitmask.
    Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    482a8524
genetlink.c 12 KB