tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[RFC]Adding hooks in if_link_state_change and ether_ifdetach



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


Home | Main Index | Thread Index | Old Index