conf/103428: devd(8): devd brings up network interfaces early
and wrong
Brooks Davis
brooks at one-eyed-alien.net
Wed Sep 20 12:40:27 PDT 2006
The following reply was made to PR conf/103428; it has been noted by GNATS.
From: Brooks Davis <brooks at one-eyed-alien.net>
To: Rob Austein <sra at hactrn.net>
Cc: freebsd-gnats-submit at freebsd.org
Subject: Re: conf/103428: devd(8): devd brings up network interfaces early and wrong
Date: Wed, 20 Sep 2006 14:38:47 -0500
I'm a bit confused by this one. It's true devd now starts earlier and
could start before network_ipv6, but it starts after netif and you
have an IPv4 address configured so it should be up by the time devd
starts up. One possible issue is that the current check is bypased if
grep isn't available (say if /usr is an nfs mount). If that's the case
for you, the following patch may fix things.
The other thing I can think of is that there's a delay in the interface
transitioning to the UP state. If that's the case I'm not sure what
the answer is. We might need to use something else to de-bounce
the interface configuration. It might be worth a try to modify
etc/rc.d/devd to run after network_ipv6.
-- Brooks
Index: pccard_ether
===================================================================
RCS file: /home/ncvs/src/etc/pccard_ether,v
retrieving revision 1.50
diff -u -p -r1.50 pccard_ether
--- pccard_ether 18 Aug 2006 13:19:45 -0000 1.50
+++ pccard_ether 20 Sep 2006 19:34:13 -0000
@@ -69,11 +69,13 @@ pccard_ether_start()
{
ifexists $ifn || exit 1
- if [ -z "$rc_force" -a -x /usr/bin/grep ]; then
- if ifconfig $ifn | grep -s '[<,]UP[,>]' > /dev/null 2>&1; then
- # Interface is already up, so ignore it.
- exit 0
- fi
+ if [ -z "$rc_force" ]; then
+ for uif in `ifconfig -ul`; do
+ if [ "${uif}" = "${ifn}" ]; then
+ # Interface is already up, so ignore it.
+ exit 0
+ fi
+ done
fi
/etc/rc.d/netif start $ifn
More information about the freebsd-bugs
mailing list