Is Cisco 4012 "Airespace" WPA-PSK implementation faulty?

Holger Schurig hs4233 at mail.mn-solutions.de
Tue Jan 17 07:25:17 EST 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