Is Cisco 4012 "Airespace" WPA-PSK implementation faulty?
Holger Schurig
hs4233
Tue Jan 17 04:25:17 PST 2006
I tracked this problem down and fixed the weird behavior in my Agere driver
for the networking card.
Basically, the driver was sending a wireless event CFG_CUR_ASSOC_REQ_INFO and
another CFG_CURRENT_BSSID event when the firmware sent the driver the
equivalent of a "Link Status: Link Status : Connected" messgae. This is done
with the wl_wext_event_ap() function.
Now I added another call of this function into the handler for the firmware
message equivalent of "Link Status : Access Point Change"
Now my roaming duration went down from about 8 Seconds to 2 Seconds. Before,
wpa_supplicant got WPA-Keys that it did not expect, because his internal
statemachine wasn't in the right state for this. In the Cisco1200 case, this
wasn't that noticably, because the Cisco1200 send 3 WPA-Keys in quite a short
time (about 200ms), which wpa_supplicant all discarded because of a wrong
replay counter. The Cisco 4012 however re-sent the WPA-Keys after a whopping
1.5 second delay, which produced a long timeout.
Now a "Wireless event: cmd=0x8c02" comes before the first WPA-Key,
wpa_supplicant resets it's state-machine and accepts and processes the keys.
And now I can roam from one Cisco 4012 AP to the next in 0.46s (before 8s).
And roaming from one Cisco 1200 to the next takes now only 0.19s (before
2.5s).
--- linux.orig/drivers/net/wireless/wlags49/wl_main.c
+++ linux/drivers/net/wireless/wlags49/wl_main.c
@@ -4101,6 +4101,7 @@
case 3:
DBG_TRACE( DbgInfo, "Link Status : Access Point Change\n" );
+ wl_wext_event_ap( lp->dev );
break;
case 4:
More information about the Hostap
mailing list