Search Linux Wireless

Re: mac80211 does not support WPA when used with wext

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

 



Dan Williams wrote:
> On Sat, 2007-03-31 at 12:00 +0200, Johannes Berg wrote:
>> On Sat, 2007-03-31 at 11:36 +0200, dragoran wrote:
>>> Hello
>>> While testing the iwlwifi driver I noticed that the mac80211 does 
>>> provide a wext interface but does not support wpa with it.
>> You must have done something wrong, it works well.
> 
> Nope!  This time it's really mac80211 :)
> 
> Take a look at ieee80211_sta_scan_result() in mac80211/ieee80211_sta.c.
> Note that it returns custom events for the WPA & RSN IEs.  That's just
> wrong.  We should be using already-defined events.
> 
> [ Hopefully in cfg80211 we'll have a very easy way to extend the defined
> tag-list for attributes returned from scan results.  If you look at what
> various drivers have custom-defined for the CUSTOM tag, we weren't very
> aggressive about standardizing custom tags into IWEV* events. ]
> 
> I'm not sure where the heck these bits of mac80211 came from; both
> hostap and ieee80211 do it right (also airo, libertas, and prism54,
> though I'm to blame for those).  Plus, it's a net loss of code to do it
> with IWEVGENIE, and no additional kzalloc that can fail!  Bonus+2!
> 
> hostap:
> -------------
> 	if (bss && bss->wpa_ie_len > 0 && bss->wpa_ie_len <= MAX_WPA_IE_LEN) {
> 		memset(&iwe, 0, sizeof(iwe));
> 		iwe.cmd = IWEVGENIE;
> 		iwe.u.data.length = bss->wpa_ie_len;
> 		current_ev = iwe_stream_add_point(
> 			current_ev, end_buf, &iwe, bss->wpa_ie);
> 	}
> 
> 	if (bss && bss->rsn_ie_len > 0 && bss->rsn_ie_len <= MAX_WPA_IE_LEN) {
> 		memset(&iwe, 0, sizeof(iwe));
> 		iwe.cmd = IWEVGENIE;
> 		iwe.u.data.length = bss->rsn_ie_len;
> 		current_ev = iwe_stream_add_point(
> 			current_ev, end_buf, &iwe, bss->rsn_ie);
> 	}
> 
> ieee80211:
> -------------
> 
> 	memset(&iwe, 0, sizeof(iwe));
> 	if (network->wpa_ie_len) {
> 		char buf[MAX_WPA_IE_LEN];
> 		memcpy(buf, network->wpa_ie, network->wpa_ie_len);
> 		iwe.cmd = IWEVGENIE;
> 		iwe.u.data.length = network->wpa_ie_len;
> 		start = iwe_stream_add_point(start, stop, &iwe, buf);
> 	}
> 
> 	memset(&iwe, 0, sizeof(iwe));
> 	if (network->rsn_ie_len) {
> 		char buf[MAX_WPA_IE_LEN];
> 		memcpy(buf, network->rsn_ie, network->rsn_ie_len);
> 		iwe.cmd = IWEVGENIE;
> 		iwe.u.data.length = network->rsn_ie_len;
> 		start = iwe_stream_add_point(start, stop, &iwe, buf);
> 	}
> 
> <rant>
> 
> I don't quite get why mac80211/d80211 was so behind in wireless
> extensions support.  Didn't Jouni and Devicescape basically _write_
> WE-18/19 WPA support?  Did d80211 just not get the love that
> wpa_supplicant and the other drivers got when they were updated to WE-18
> and later?
> 
> </rant>
> 
> I can whip something up that _looks_ right but hasn't been compile
> tested if somebody else can test it.
> 

I can test it. ATM, I cannot get NM to connect, which prevents any testing of mac80211.

Larry
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux