Document struct nd_ifinfo protection, remove obsolete .initialized member
authorkn <kn@openbsd.org>
Mon, 28 Nov 2022 19:13:36 +0000 (19:13 +0000)
committerkn <kn@openbsd.org>
Mon, 28 Nov 2022 19:13:36 +0000 (19:13 +0000)
commit43abdd5301c1b1c40fa9d082267a2c2fd7a6f9fa
tree98141d9e8b68457d7ca61b5540d4438198693d44
parentb0d9b32f74d4daf8e23333216a18dcabbc956189
Document struct nd_ifinfo protection, remove obsolete .initialized member

All access to struct ifnet's member *if_nd is read-only, with the one
write exception being nd6_slowtimo() updating ND information.

IPv6 Neighbour Discovery information is fully protected by the net lock.
---
nd6_ifattach() allocates and unconditionally initialises struct ifnet's
*if_nd member, so early in if_attachsetup() that there is no way to query
unitialised Neighour Unreachable Detection bits.

Only SIOCGIFINFO_IN6 through ndp(8) used the .initialized member:
Added/set since 2002 sys/netinet6/nd6.c r1.42
    attach nd_ifinfo structure to if_afdata.
    split IPv6 MTU (advertised by RA) from real link MTU.
    sync with kame

Read      since 2002 usr.sbin/ndp/ndp.c r1.16
    use new SIOCGIFINFO_IN6.  random other cleanups.  sync w/kame.

Obsolete  since 2017 sys/netinet6/nd6.c r1.217
                     usr.sbin/ndp/ndp.c r1.85
    Remove knob and always do neighbor unreachable detection.

Feedback OK bluhm
sys/netinet6/nd6.c
sys/netinet6/nd6.h
usr.sbin/ndp/ndp.c