linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Williams <dcbw@redhat.com>
To: Michael Wu <flamingice@sourmilk.net>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	dragoran <drago01@gmail.com>,
	linux-wireless@vger.kernel.org,
	John Linville <linville@redhat.com>, Jiri Benc <jbenc@suse.cz>
Subject: Re: mac80211 does not support WPA when used with wext
Date: Sat, 31 Mar 2007 20:55:40 -0400	[thread overview]
Message-ID: <1175388940.10282.7.camel@localhost.localdomain> (raw)
In-Reply-To: <200703311503.53445.flamingice@sourmilk.net>

On Sat, 2007-03-31 at 15:03 -0400, Michael Wu wrote:
> On Saturday 31 March 2007 13:48, 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.
> >
> What does that have to do with WPA not working? wpa_supplicant works fine with 
> the custom events on my system. Also works fine with the standard events 
> which the following patch makes mac80211 use.

wpa_supplicant works fine with it because it parses the custom events.

NetworkManager will not parse custom events by design, in the same way
that it will not allow WPA to be used on a card unless the driver
explicitly advertises WPA support, and requires the use of the
wpa_supplicant WEXT driver.  I'm not going to spend my time implementing
stuff 3 different ways; we need to standardize this stuff and stick with
it.

Draw a line in the sand and all that.  Sure, it's made some people's
lives harder, but NetworkManager was the reason madwifi added WE-19
support, for example.

Patch looks good though; thanks!  One thing I just thought of, which no
drivers probably do.  Should mac80211 check that there's enough space
left in the WE stream to actually add the IE?  There are usually checks
to ensure that there's enough space to add the next whole BSS, but I
don't know if we do checks to during the addition of each BSS.  Maybe
I'm wrong and this isn't an issue.

Dan

> --
> 
> mac80211: use IWEVGENIE
> 
> From: Michael Wu <flamingice@sourmilk.net>
> 
> Use IWEVGENIE which was defined in WE-18.
> 
> Signed-off-by: Michael Wu <flamingice@sourmilk.net>
> ---
> 
>  net/mac80211/ieee80211_sta.c |   40 ++++++++++------------------------------
>  1 files changed, 10 insertions(+), 30 deletions(-)
> 
> diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
> index 087f176..a227c38 100644
> --- a/net/mac80211/ieee80211_sta.c
> +++ b/net/mac80211/ieee80211_sta.c
> @@ -2839,39 +2839,19 @@ ieee80211_sta_scan_result(struct net_device *dev,
>  	current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, "");
>  
>  	if (bss && bss->wpa_ie) {
> -		char *buf, *p;
> -		int i;
> -		buf = kmalloc(30 + bss->wpa_ie_len * 2, GFP_ATOMIC);
> -		if (buf) {
> -			p = buf;
> -			p += sprintf(p, "wpa_ie=");
> -			for (i = 0; i < bss->wpa_ie_len; i++)
> -				p+= sprintf(p, "%02x", bss->wpa_ie[i]);
> -			memset(&iwe, 0, sizeof(iwe));
> -			iwe.cmd = IWEVCUSTOM;
> -			iwe.u.data.length = strlen(buf);
> -			current_ev = iwe_stream_add_point(current_ev, end_buf,
> -							  &iwe, buf);
> -			kfree(buf);
> -		}
> +		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) {
> -		char *buf, *p;
> -		int i;
> -		buf = kmalloc(30 + bss->rsn_ie_len * 2, GFP_ATOMIC);
> -		if (buf) {
> -			p = buf;
> -			p += sprintf(p, "rsn_ie=");
> -			for (i = 0; i < bss->rsn_ie_len; i++)
> -				p+= sprintf(p, "%02x", bss->rsn_ie[i]);
> -			memset(&iwe, 0, sizeof(iwe));
> -			iwe.cmd = IWEVCUSTOM;
> -			iwe.u.data.length = strlen(buf);
> -			current_ev = iwe_stream_add_point(current_ev, end_buf,
> -							  &iwe, buf);
> -			kfree(buf);
> -		}
> +		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);
>  	}
>  
>  	if (bss) {


  parent reply	other threads:[~2007-04-01  0:52 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-31  9:36 mac80211 does not support WPA when used with wext dragoran
2007-03-31 10:00 ` Johannes Berg
2007-03-31 10:11   ` dragoran
2007-03-31 11:19   ` dragoran
2007-03-31 16:37     ` Michael Buesch
2007-03-31 16:39       ` Michael Buesch
2007-03-31 17:57       ` Dan Williams
2007-03-31 17:48   ` Dan Williams
2007-03-31 17:59     ` Jouni Malinen
2007-03-31 18:09     ` Larry Finger
2007-03-31 19:03     ` Michael Wu
     [not found]       ` <f6ca9fed0703311256m1b14ec35p836a62de532dd804@mail.gmail.com>
2007-03-31 21:00         ` Michael Wu
2007-04-01  0:50           ` Dan Williams
2007-04-02  3:50             ` WPA does not connect to bcm43xx-mac80211 when using NetworkManager Larry Finger
2007-04-02  4:12               ` Dan Williams
2007-04-03 14:26                 ` Larry Finger
2007-04-02  5:26               ` Michael Wu
2007-04-01  8:18           ` mac80211 does not support WPA when used with wext Johannes Berg
     [not found]           ` <f6ca9fed0704081445u5536e596m4ca4caeb44f7f87@mail.gmail.com>
2007-04-08 21:54             ` Michael Wu
     [not found]               ` <f6ca9fed0704081527j641a4ecat44151e107cab7342@mail.gmail.com>
2007-04-10  7:13                 ` dragoran
2007-04-10 12:25                   ` Dan Williams
2007-04-10 14:34                     ` dragoran dragoran
2007-04-10 14:39                   ` Larry Finger
2007-04-10 14:44                     ` dragoran dragoran
2007-04-01  0:55       ` Dan Williams [this message]
2007-04-01  1:21         ` Michael Wu
2007-04-01  4:51           ` Dan Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1175388940.10282.7.camel@localhost.localdomain \
    --to=dcbw@redhat.com \
    --cc=drago01@gmail.com \
    --cc=flamingice@sourmilk.net \
    --cc=jbenc@suse.cz \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).