Add *if_nd to struct ifnet, call nd6_if{at,de}tach() directly
authorkn <kn@openbsd.org>
Wed, 23 Nov 2022 14:48:27 +0000 (14:48 +0000)
committerkn <kn@openbsd.org>
Wed, 23 Nov 2022 14:48:27 +0000 (14:48 +0000)
commitac40cb1679d5bdab31c9a4eb014fe9a6985092db
tree77cf7e17a19774767d0248fcf6d02f043df06dc9
parentf4fcb8cb02a98b59e36cf6288cccdd5bc13b016f
Add *if_nd to struct ifnet, call nd6_if{at,de}tach() directly

*if_afdata[] and struct domain's dom_if{at,de}tach() are only used with
IPv6 Neighbour Discovery in6_dom{at,de}tach(), which allocate/init and
free single struct nd_ifinfo.

Set up a new ND-specific *if_nd member directly to avoid yet another
layer of indirection and thus make the generic domain API obsolete.

The per-interface data is only accessed in nd6.c and nd6_nbr.c through
the ND_IFINFO() macro;  it is allocated and freed exactly once during
interface at/detach, so document it as [I]mmutable.

OK bluhm mvs claudio
sys/net/if.c
sys/net/if_var.h
sys/netinet6/in6.c
sys/netinet6/in6_proto.c
sys/netinet6/nd6.h