Hi tech-net@ and tech-kern@, Currently implementation, some interfaces e.g. bridge(4), vlan(4), and lagg(4) insert their functions in if_link_state_change_process() to get change of the link state of related interface. The functions are used together with macros (e.g. "#if NVLAN > 0") so these do not work well when an interface is running as a kernel module. To solve this problem, I would like to add a hook point in the if_link_state_change_process() and make the interfaces use it. And ether_ifdetach() has the same issue, I am also going to fix it in the same way.
I put the patch on the following: - https://www.netbsd.org/~yamaguchi/linkstate-ifdetach.patch - https://github.com/s-ymgch228/netbsd-src_offficial/pull/2 Summary of the patch: - added functions to use hook list implemented in kern_hook.c - added hook list heads to struct ifnet and struct ethercom and functions to establish and disestablish a callback - used the added functions in bridge(4), vlan(4), lagg(4), and carp(4) - There are changes not related directly to this about ixg(4), ixv(4), and lagg(4) - Those are refactoring or bug fixes. I would like to get your feedback because I think that it impacts various components. Thanks, -- yamaguchi
