2011-07-26 15:55:16

by Alexander Simon

[permalink] [raw]
Subject: mac80211: ibss.c, missing regdom check?

Hey,

while developing my IBSS HT mode, I think found a missing check:

When we want to join an IBSS, we first fire a scan. When a network is
found, then we join it.
This happens in ieee80211_sta_find_ibss when we call
ieee80211_sta_join_ibss.

But in both functions there is no check if we are allowed to do IBSS on
that channel.
Is this intended?
I could join an existing network on channel 8 with a modified crda
having the NO-IBSS flag on all 2.4GHz channels.

Alex



2011-08-08 13:03:29

by Johannes Berg

[permalink] [raw]
Subject: Re: mac80211: ibss.c, missing regdom check?

On Tue, 2011-07-26 at 17:55 +0200, Alexander Simon wrote:

> When we want to join an IBSS, we first fire a scan. When a network is
> found, then we join it.
> This happens in ieee80211_sta_find_ibss when we call
> ieee80211_sta_join_ibss.
>
> But in both functions there is no check if we are allowed to do IBSS on
> that channel.
> Is this intended?
> I could join an existing network on channel 8 with a modified crda
> having the NO-IBSS flag on all 2.4GHz channels.

Sounds like there ought to be a check -- but what do we do in that case?
Just create the network elsewhere and hope the other one merges? Luis?

johannes


2011-08-10 00:01:43

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: mac80211: ibss.c, missing regdom check?

On Mon, Aug 8, 2011 at 6:03 AM, Johannes Berg <[email protected]> wrote:
> On Tue, 2011-07-26 at 17:55 +0200, Alexander Simon wrote:
>
>> When we want to join an IBSS, we first fire a scan. When a network is
>> found, then we join it.
>> This happens in ieee80211_sta_find_ibss when we call
>> ieee80211_sta_join_ibss.
>>
>> But in both functions there is no check if we are allowed to do IBSS on
>> that channel.
>> Is this intended?
>> I could join an existing network on channel 8 with a modified crda
>> having the NO-IBSS flag on all 2.4GHz channels.
>
> Sounds like there ought to be a check -- but what do we do in that case?
> Just create the network elsewhere and hope the other one merges? Luis?

Indeed, additionally based on the htcaps we must also ensure that we
follow the exisitng regulatory rules. A base example is provided
through ieee80211_enable_ht(). A similar check will be implemented to
start Mesh for example. This must also ensure that when you set the
channel type with iw, say, iw dev wlan0 set freq 2412 HT20 that you
switch to using only HT20 and not HT40. If you do not set HT20 or HT40
then you should not use HT on an IBSS.

Let me know if you are up to try the changes otherwise I can work on them.

Luis