Subject: Re: Problem authenticating using WPA with bcm43xx-softmac

From: Larry Finger <[email-masked]>
Date: Sun, 11 Jun 2006 20:11:31 -0500

Johannes Berg wrote:
> On Fri, 2006-06-09 at 10:31 -0500, Larry Finger wrote:
> 
>> Do you mean a special dump, or is the kernel debug output and wpa_supplicant debug output sufficient?
> 
> I was thinking of packet dumps but earlier you said you couldn't create
> any so I'm out of ideas for now.

I was finally able to get my second laptop running with bcm43xx so I could get packet dumps. When I 
analyzed them, the Association Response packet contained the following information:

"Association denied due to requesting station not supporting short preamble operation (0x0013)"

I think this is a bug in the code on my WRT54G V5 and I will report it to Linksys; however, in the 
meantime, I am able to connect using the following _ugly_ hack to softmac_assoc_req and 
softmac_reassoc_req:

diff --git a/net/ieee80211/softmac/ieee80211softmac_io.c b/net/ieee80211/softmac/ieee80211softmac_io.c
index cc6cd56..a1d0c10 100644
--- a/net/ieee80211/softmac/ieee80211softmac_io.c
+++ b/net/ieee80211/softmac/ieee80211softmac_io.c
@@ -199,6 +199,8 @@ ieee80211softmac_assoc_req(struct ieee80
         (*pkt)->capability |= mac->ieee->short_slot ?
                         cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME) : 0;
          */
+       /* add short preamble operation capability */
+       (*pkt)->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_PREAMBLE);
         (*pkt)->capability |= mac->ieee->sec.level ? cpu_to_le16(WLAN_CAPABILITY_PRIVACY) : 0;
         /* Fill in Listen Interval (?) */
         (*pkt)->listen_interval = cpu_to_le16(10);
@@ -247,6 +249,8 @@ ieee80211softmac_reassoc_req(struct ieee
         (*pkt)->capability |= mac->ieee->short_slot ?
                         cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME) : 0;
          */
+       /* add short preamble operation capability */
+       (*pkt)->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_PREAMBLE);
         (*pkt)->capability |= mac->ieee->sec.level ?
                         cpu_to_le16(WLAN_CAPABILITY_PRIVACY) : 0;

I expect that softmac should be listening to the driver as to whether this capability is available; 
however, I'm now up and running once again.

Larry