pub trait GenlFamily {
    // Required methods
    fn family_name() -> &'static str;
    fn command(&self) -> u8;
    fn version(&self) -> u8;

    // Provided method
    fn family_id(&self) -> u16 { ... }
Expand description

Provide the definition for generic netlink family

Family payload type should implement this trait to provide necessary informations in order to build the packet headers (nlmsghdr and genlmsghdr).

If you are looking for an example implementation, you can refer to the crate::ctrl module.

Required Methods§


fn family_name() -> &'static str

Return the unique family name registered in the kernel

Let the resolver lookup the dynamically assigned ID


fn command(&self) -> u8

Return the command type of the current message


fn version(&self) -> u8

Indicate the protocol version

Provided Methods§


fn family_id(&self) -> u16

Return the assigned family ID


The implementation of generic family should assign the ID to GENL_ID_GENERATE (0x0). So the controller can dynamically assign the family ID.

Regarding to the reason above, you should not have to implement the function unless the family uses static ID.

Object Safety§

This trait is not object safe.