rc.d/netif: Don't DAD if lo0 is the only IPv6 IF

The code in rc.d/netif waiting for IPv6 Duplicate Address Detection if
any network interfaces support IPv6.  Unfortunately, since lo0 *always*
has IPv6 enabled, this means unconditionally sleeping, even on systems
which have no external IPv6 interfaces.

Since we presume that there is little risk of a duplicate address being
assigned on lo0, amend the test to wait only if there is an interface
*other than lo0* which supports IPv6.

Reviewed by:	bz
Differential Revision:	https://reviews.freebsd.org/D40141
This commit is contained in:
Colin Percival 2023-05-17 20:17:24 -07:00
parent 0f62290e7f
commit dc5361ea16

View file

@ -215,7 +215,7 @@ netif_common()
esac
if ${_func} ${ifn} $2; then
_ok="${_ok} ${ifn}"
if ipv6if ${ifn}; then
if ipv6if ${ifn} && [ "${ifn}" != "lo0" ]; then
_dadwait=1
fi
else