HomeFreeBSD

netlink: some refactoring of NETLINK_GENERIC layer

Description

netlink: some refactoring of NETLINK_GENERIC layer

  • Statically initialize control family/group. This removes extra startup

code and provides a strong guarantee that they reside at the 0 index of
the respective arrays. Before a genl_register_family() with a higher
SYSINIT order could try to hijack index 0.

  • Remove the family_id field completely. Now the family ID as well as

group ID are array indices and there is basically no place for a mistake.
Previous code had a bug where a KPI user could induce an ID mismatch.

  • Merge netlink_generic_kpi.c to netlink_generic.c. Both files are small

and now there is more dependency between the control family and the family
allocator. Ok'ed by melifaro@.

Reviewed by: melifaro
Differential Revision: https://reviews.freebsd.org/D48316

Details

Provenance
glebiusAuthored on Sat, Jan 11, 4:59 AM
Reviewer
melifaro
Differential Revision
D48316: netlink: some refactoring of NETLINK_GENERIC layer
Parents
rG26d1ad5a44e1: netlink: snl_create_genl_msg_request() may fail due to ENOMEM
Branches
Unknown
Tags
Unknown