Enhance IPv6 autoconf startup.

Before this change we would only run rtsol on an interface which was
set to accept_rtadv and did not have rtsold enabled.  This change
removes the latter condition and always runs rtsol (rather than the
deferred rtsold) to reduce the delay until we send the first RS.

This change will also handle the accept_rtadv before dhcp hence
starting IPv6 auto-configuration before IPV4 DHCP.

This change is intended for FreeBSD 13 and later only and will not be MFCed.

Reviewed by:		hrs
Differential Revision:	https://reviews.freebsd.org/D19488
This commit is contained in:
Bjoern A. Zeeb 2019-03-13 17:00:15 +00:00
parent f6a10ccc53
commit 1b5be7204e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=345088

View File

@ -229,6 +229,11 @@ ifconfig_up()
${IFCONFIG_CMD} $1 up
fi
if ! noafif $1 && afexists inet6; then
ipv6_accept_rtadv_up $1
_cfg=0
fi
if dhcpif $1; then
if [ $_cfg -ne 0 ] ; then
${IFCONFIG_CMD} $1 up
@ -686,7 +691,6 @@ ipv6_up()
ifalias ${_if} inet6 alias && _ret=0
ipv6_prefix_hostid_addr_common ${_if} alias && _ret=0
ipv6_accept_rtadv_up ${_if} && _ret=0
return $_ret
}
@ -1198,8 +1202,8 @@ ipv6_accept_rtadv_up()
{
if ipv6_autoconfif $1; then
${IFCONFIG_CMD} $1 inet6 accept_rtadv up
if ! checkyesno rtsold_enable; then
rtsol ${rtsol_flags} $1
if [ -x /sbin/rtsol ]; then
/sbin/rtsol ${rtsol_flags} $1
fi
fi
}