Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Sep 2005 21:52:55 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        brooks@one-eyed-alien.net
Cc:        current@freebsd.org
Subject:   Re: [brooks@FreeBSD.ORG: [src] cvs commit: src/etc pccard_ether]
Message-ID:  <20050928.215255.89131771.imp@bsdimp.com>
In-Reply-To: <20050928235033.GA13616@odin.ac.hmc.edu>
References:  <20050928200243.GA16219@odin.ac.hmc.edu> <20050928.171417.74728660.imp@bsdimp.com> <20050928235033.GA13616@odin.ac.hmc.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20050928235033.GA13616@odin.ac.hmc.edu>
            Brooks Davis <brooks@one-eyed-alien.net> writes:
: On Wed, Sep 28, 2005 at 05:14:17PM -0600, Warner Losh wrote:
: > > I've just committed the following change to /etc/pccard_ether.  I think
: > > it's the right solution, but I'm concerned it may cause problems with
: > > drivers that incorrectly frob the IFF_UP flag themselves.  If so it may
: > > be nessicary to revert this change temporarily or at least not MFC it.
: > 
: > This change converts the "I already have an address" check to be a
: > "I'm up" which are two different things.  dhclient leaves the
: > interface up when it exits, even if it can't get an address.  I think
: > that might cause a lot of problems for people.  I originally had this
: > test in pccard_ether, but changed it to checking for netmask because
: > roving from network to network didn't work without it on my laptop
: > with multiple network interfaces.
: 
: I don't think dhclient's behavior will have any effect in the normal
: case. "pccard_ether <ifn> start" is only called on attach.  It is not
: involved in any with the link state transitions caused by roving since
: those should not happen until after attach.  The one POLA violation I
: can see is that you probably can't manually run pccard_ether's start
: mode twice without performing a stop first.

notify 0 {
	match "system"		"IFNET";
	match "type"		"LINK_UP";
	media-type		"802.11";
	action "/etc/rc.d/dhclient start $subsystem";
};

was the case I was worried about, but I think that since it calls
dhclient directly, we should be OK.

The original check was supposed to be there as a short-circuit.  We
called pccard_ether for *ALL* devices in the system when devd
started.  We didn't want it to do anything if the link had already
been configured earlier in the boot process.  Hence the check for a
netmask.  There were many scripts around that put wireless devices
(esp ndis) into the 'up' state before calling pccard_ether so that it
would associate with the AP.  It would then be in the 'UP' state, but
have no address.

Eg, you've broken:

	ifconfig ndis0 ssid fred up
	/etc/pccard_ether ndis0 start

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050928.215255.89131771.imp>