Page MenuHomeFreeBSD

netlink: some refactoring of NETLINK_GENERIC layer
ClosedPublic

Authored by glebius on Jan 3 2025, 10:35 PM.
Tags
None
Referenced Files
F149531732: D48316.id148757.diff
Wed, Mar 25, 1:46 AM
Unknown Object (File)
Tue, Mar 24, 2:14 PM
Unknown Object (File)
Tue, Mar 24, 3:38 AM
Unknown Object (File)
Sun, Mar 22, 7:00 PM
Unknown Object (File)
Thu, Mar 19, 7:50 PM
Unknown Object (File)
Wed, Mar 18, 8:22 PM
Unknown Object (File)
Tue, Mar 17, 3:39 AM
Unknown Object (File)
Sun, Mar 15, 11:39 PM
Subscribers

Details

Summary
  • 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@.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 61498
Build 58382: arc lint + arc unit