Re: 6-STABLE, ath, wpa_supplicant/dhcp and suspend/resume problem.

Brooks Davis <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
On Sat, Dec 10, 2005 at 10:33:23AM -0800, Sam Leffler wrote:
> George Hartzell wrote:
> >I have an IBM T42p (2379-DYU) with an atheros based mini-pci card,
> >running 6-STABLE cvsup'ed yesterday morning.
> >
> >I have wpa_supplicant configured for my WEP based 11g network, and
> >have this line in my /etc/rc.conf:
> >
> >  ifconfig_ath0="DHCP WPA NOAUTO"
> >
> >I start the interface via /etc/rc./netif start ath0 when I want to use
> >it.
> >
> >When I suspend the laptop, the wireless link doesn't work on resume.
> >The little icon in my gnome panel has a red disk/white line across the
> >transmit/receive graphics, but the signal strength indicators are a
> >3-high pile of diamonds (same as when it's working).  I'm not sure
> >where the panel-thingy is getting its information.
> >
> >I can resurrect the interface w/ /etc/rc.d/netif restart ath0.
> >
> >When I run wpa_supplicant by hand with some debugging flags, I see the
> >following:
> >
> >   (satchel)[8:59am]~>>sudo /usr/sbin/wpa_supplicant -d -d -K -q -i ath0 
> >   -c /etc/wpa_supplicant.conf
> >   Initializing interface 'ath0' conf '/etc/wpa_supplicant.conf' driver 
> >   'default'
> >   Configuration file '/etc/wpa_supplicant.conf' -> 
> >   '/etc/wpa_supplicant.conf'
> >   Reading configuration file '/etc/wpa_supplicant.conf'
> >   ctrl_interface='/var/run/wpa_supplicant'
> >   ctrl_interface_group=0
> >   eapol_version=1
> >   ap_scan=1
> >   fast_reauth=1
> >   Priority group 5
> >      id=0 ssid='air-palomarin'
> >   Initializing interface (2) 'ath0'
> >   Own MAC address: 00:05:4e:4a:70:e3
> >   wpa_driver_bsd_set_wpa: enabled=1
> >   wpa_driver_bsd_set_wpa_internal: wpa=3 privacy=1
> >   wpa_driver_bsd_del_key: keyidx=0
> >   wpa_driver_bsd_del_key: keyidx=1
> >   wpa_driver_bsd_del_key: keyidx=2
> >   wpa_driver_bsd_del_key: keyidx=3
> >   wpa_driver_bsd_set_countermeasures: enabled=0
> >   wpa_driver_bsd_set_drop_unencrypted: enabled=1
> >   Setting scan request: 0 sec 100000 usec
> >   Starting AP scan (broadcast SSID)
> >   Received 0 bytes of scan results (1 BSSes)
> >   Scan results: 1
> >   Selecting BSS from priority group 5
> >   0: 00:13:10:9f:28:3a ssid='air-palomarin' wpa_ie_len=0 rsn_ie_len=0
> >      skip - no WPA/RSN IE
> >      selected non-WPA AP 00:13:10:9f:28:3a ssid='air-palomarin'
> >   Trying to associate with 00:13:10:9f:28:3a (SSID='air-palomarin' 
> >   freq=2452 MHz)
> >   Cancelling scan request
> >   Automatic auth_alg selection: 0x1
> >   No keys have been configured - skip key clearing
> >   wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff key_idx=0 
> >   set_tx=1 seq_len=0 key_len=5
> >   wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff key_idx=1 
> >   set_tx=0 seq_len=0 key_len=5
> >   wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff key_idx=2 
> >   set_tx=0 seq_len=0 key_len=13
> >   wpa_driver_bsd_set_drop_unencrypted: enabled=1
> >   wpa_driver_bsd_associate: ssid 'air-palomarin' wpa ie len 0 pairwise 1 
> >   group 1 key mgmt 2
> >   wpa_driver_bsd_associate: set PRIVACY 1
> >   Setting authentication timeout: 5 sec 0 usec
> >   Association event - clear replay counter
> >   Associated to a new BSS: BSSID=00:13:10:9f:28:3a
> >   Associated with 00:13:10:9f:28:3a
> >   Cancelling authentication timeout
> >***SUSPENDED/RESUMED HERE***   
> >   Setting scan request: 0 sec 100000 usec
> >   Added BSSID 00:13:10:9f:28:3a into blacklist
> >   Disconnect event - remove keys
> >   Starting AP scan (broadcast SSID)
> >
> >And the interface isn't working.  Killing and restarting
> >wpa_supplicant brings it back.
> >
> >I also have an older apm based sony Z505 w/ an ath0 pc-card that
> >suspends and resumes w/out any manual intervention.
> >
> >What can I do to make the IBM work w/out manual intervention?
> 
> I have a t42 and atheros card and it works fine w/o the NOAUTO setting 
> and WPA (not WEP).   If removing NOAUTO fixes things then maybe some 
> fixup is required in the rc.resume script.  I'd have expected devd to be 
> notified on resume to bring the interface back up but since you've got 
> NOAUTO set perhaps that's disabling it from happening.

I think there are two things going one.  First, NOAUTO means that on
resume the card doesn't come up because the system can't tell resume
from anything else.  Second, wpa_supplicant doesn't get killed like it
should during suspend (probably due to races) and it doesn't in my
experience deal well with card state changing underneath it.  I suspect
the eventual answer is that we'll need to and suspend and resume code
to /etc/rc.d/netif so we can record the state of interfaces at suspend
and restore them at resume.  That's a fairly tricky problem to solve
completely because users can do silly things like spending, swaping
cards, and resuming.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFDmyWgXY6L6fI4GtQRAlxRAKDRFjoK5TKTJikNL8Yl/BKfABr5tACg5PFR
cUaTSUp3e20asZs/PJLmjNM=
=B4JA
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.