tech-kern archive

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

IEEE80211_IOC_MLME ioctl failure




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.

Back in ieee80211_ioctl_setmlme(), the NULL-check is true
and returns EINVALID.
This is what wpa_supplicant is seeing.


I don't know why ni->ni_esslen is 0 at all.

Christoph



Home | Main Index | Thread Index | Old Index