conf/103428: devd(8): devd brings up network interfaces early and wrong

Rob Austein sra at
Wed Sep 20 07:40:46 PDT 2006

>Number:         103428
>Category:       conf
>Synopsis:       devd(8): devd brings up network interfaces early and wrong
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep 20 14:40:31 GMT 2006
>Originator:     Rob Austein
>Release:        6.1-STABLE
FreeBSD 6.1-STABLE FreeBSD 6.1-STABLE #2: Tue Sep 12 08:43:49 UTC 2006     sra at  i386

Initial problem was that a machine with static IP address and route
configuration was losing the 2002::/16 route associated with its stf0
interface.  Upon investigation, machine was accepting router advertisements,
which it should not have been since all interfaces were staticly configured.
Following this trail eventually led to pccard_ether, which is not only
bringing up interfaces before the /etc/rc.d/network_ipv6 script has had a
chance to run but is also (incorrectly) enabling net.inet6.ip6.accept_rtadv.

pccard_ether checks for interfaces that are already up, so my guess is that
this mess is an accidental side effect of somebody having re-ordered the
scripts in /etc/rc.d so that devd now comes up earlier than it once did
(I have not checked CVS to confirm this theory).  In any case, what it does
now is wrong. :)
Something like the following in /etc/rc.conf, on a network that sends IPv6
router advertisements:

ifconfig_foo0="inet netmask"
ipv6_ifconfig_foo0="2001:db8::2 prefixlen 64"

Workaround: disable devd. :)

Fix: reorder /etc/rc.d scripts or rewrite /etc/pccard_ether.

More information about the freebsd-bugs mailing list