Page MenuHomeFreeBSD

netlink: add interface notification on link status / flags change.
ClosedPublic

Authored by melifaro on Dec 3 2022, 5:11 PM.
Tags
None
Referenced Files
F166578757: D37597.id.diff
Fri, Aug 14, 4:45 PM
F166472493: D37597.id113981.diff
Thu, Aug 13, 6:41 PM
Unknown Object (File)
Thu, Aug 13, 4:07 PM
Unknown Object (File)
Thu, Aug 13, 3:20 PM
Unknown Object (File)
Thu, Aug 13, 5:59 AM
Unknown Object (File)
Wed, Aug 12, 2:34 PM
Unknown Object (File)
Wed, Aug 12, 5:59 AM
Unknown Object (File)
Wed, Aug 12, 12:00 AM
Subscribers

Details

Summary

Add more interface change notifications to netlink:

  1. Add link-state change notifications by subscribing to ifnet_link_event. In the Linux netlink model, link state is reported in 2 places: first is the IFLA_OPERSTATE, which stores state per RFC2863. The second is an IFF_LOWER_UP interface flag. As many applications rely on the latter, reserve 1 bit from if_flags, named as IFF_NETLINK_1. This flag is mapped to IFF_LOWER_UP in the netlink headers. This is done to avoid making applications think this flag is actually supported / presented in non-netlink outputs.
  2. Add flag change notifications, by hooking into rt_ifmsg(). In the netlink model, notification should include the bitmask for the change flags. Update rt_ifmsg() to include such bitmask

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 48605
Build 45491: arc lint + arc unit