tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: IEEE80211_IOC_MLME ioctl failure



On 03/04/11 09:21, Christoph Egger wrote:
On 21.02.11 18:44, David Young wrote:
On Mon, Feb 21, 2011 at 05:55:28PM +0100, Christoph Egger wrote:

Hi!

I configured my wlan with wpa_supplicant.

When I do
wpa_supplicant -dd -i ath0 -c /etc/wpa_supplicant/wpa_supplicant.conf

I get this output:

[...]
State: SCANNING ->  ASSOCIATING
wpa_driver_bsd_associate: ssid 'wireless' wpa ie len 22 pairwise 3
group 3 key mgmt 0
wpa_driver_bsd_set_drop_unencrypted: enabled=1
wpa_driver_bsd_associate: set PRIVACY 1
ioctl[SIOC80211, op=21, val=0, arg_len=42]: Invalid argument
Association request to the driver failed
Setting authentication timeout: 5 sec 0 usec

The code path of the ioctl is this:

In ieee80211_ioctl_setmlme(), mlme.im_op has the value
IEEE80211_MLME_ASSOC.
Then it calls ieee80211_find_node_with_ssid() with
mlme.im_macaddr being zero, mlme.im_ssid_len is 8
and mlme.im_ssid is "wireless".

In ieee80211_find_node_with_ssid() it runs the loop in the if-block.
The MATCH_SSID() check runs only once.

ni->ni_esslen has the value 0. So the 'break' never hits.

Then ieee80211_find_node_whith_ssid() returns NULL.

It sounds to me like the node never was or is no longer in the scan
table.  Maybe nodes in the scan table are discarded more quickly than
wpa_supplicant decides which network to join?

Any ideas how to fix this?

I can reproduce this with any wlan network with

  ap_scan=2

in the wpa supplicant config file.
wpa_supplicant works without this line and get connected.

Christoph


Home | Main Index | Thread Index | Old Index