From eballetbo at gmail.com  Wed Mar  5 05:30:35 2014
From: eballetbo at gmail.com (Enric Balletbo Serra)
Date: Wed, 5 Mar 2014 11:30:35 +0100
Subject: WEP is not working on libertas drivers.
Message-ID: <CAFqH_52V8JPROp_cmJHsVEu4s+s20vbkWgL2xykDoJAAScWmVw@mail.gmail.com>

Hi all,

Due a customer requirement I need to configure and ad-hoc network with
wep encryption. This worked fine with a very old kernel (2.6.35) but
now that we need to update the kernel seems this
functionality is totally broken. I found some old messages[1] related
to this without response.

As I'm totally a newbie with this I would like to know if there is a
hard reason why this is still not working or the only reason is
because nobody spent time on this. In that case will be easy implement
this (some indication?)

Any help will be appreciated,

   Enric

[1] http://lists.infradead.org/pipermail/libertas-dev/2011-September/003691.html


From dcbw at redhat.com  Wed Mar  5 14:39:40 2014
From: dcbw at redhat.com (Dan Williams)
Date: Wed, 05 Mar 2014 13:39:40 -0600
Subject: WEP is not working on libertas drivers.
In-Reply-To: <CAFqH_52V8JPROp_cmJHsVEu4s+s20vbkWgL2xykDoJAAScWmVw@mail.gmail.com>
References: <CAFqH_52V8JPROp_cmJHsVEu4s+s20vbkWgL2xykDoJAAScWmVw@mail.gmail.com>
Message-ID: <1394048380.2278.9.camel@dcbw.local>

On Wed, 2014-03-05 at 11:30 +0100, Enric Balletbo Serra wrote:
> Hi all,
> 
> Due a customer requirement I need to configure and ad-hoc network with
> wep encryption. This worked fine with a very old kernel (2.6.35) but
> now that we need to update the kernel seems this
> functionality is totally broken. I found some old messages[1] related
> to this without response.
> 
> As I'm totally a newbie with this I would like to know if there is a
> hard reason why this is still not working or the only reason is
> because nobody spent time on this. In that case will be easy implement
> this (some indication?)

This appears to be due to the conversion from the WEXT to cfg80211 a
long time back.  I can confirm that it's broken.

There's a nice comment in ibss.c::lbs_ibss_start_new():

/* TODO: mix in WLAN_CAPABILITY_PRIVACY */

which pretty much means it isn't there.  If you wanted to fix this, what
you'd do is you'd look at priv->wdev->connect_keys, and if that was !
NULL, you'd run through each of the 6 keys and if at least one key was
valid, you'd then set the PRIVACY bit in the beacon.  Then later after
the join was successful, the kernel already calls the functions for
uploading the keys to the driver
(net/wireless/util.c::cfg80211_upload_connect_keys()).

That's if you're *starting* a new adhoc network, which often you need to
do.  Joining an existing adhoc network (if you can see one in scan
results) should already work, unless libertas really really does want
the keys to be set before the join happens.  If that's the case, then
that would be a different fix.

Dan



From johannes at sipsolutions.net  Wed Mar  5 14:50:34 2014
From: johannes at sipsolutions.net (Johannes Berg)
Date: Wed, 05 Mar 2014 20:50:34 +0100
Subject: WEP is not working on libertas drivers.
In-Reply-To: <1394048380.2278.9.camel@dcbw.local>
 (sfid-20140305_203822_760823_413635B2)
References: <CAFqH_52V8JPROp_cmJHsVEu4s+s20vbkWgL2xykDoJAAScWmVw@mail.gmail.com>
 <1394048380.2278.9.camel@dcbw.local> (sfid-20140305_203822_760823_413635B2)
Message-ID: <1394049034.6583.0.camel@jlt4.sipsolutions.net>

On Wed, 2014-03-05 at 13:39 -0600, Dan Williams wrote:

> which pretty much means it isn't there.  If you wanted to fix this, what
> you'd do is you'd look at priv->wdev->connect_keys, and if that was !
> NULL, you'd run through each of the 6 keys and if at least one key was
> valid, you'd then set the PRIVACY bit in the beacon.  Then later after
> the join was successful, the kernel already calls the functions for
> uploading the keys to the driver
> (net/wireless/util.c::cfg80211_upload_connect_keys()).

Small correction - you want to look at cfg80211_ibss_params->privacy,
not the connect_keys.

johannes



