2007-06-04 12:03:58

by Joerg

[permalink] [raw]
Subject: AW: Drivers that do not honor regulatory restrictions

Johannes Berg wrote:
> No, that would've been the driver, the firmware has nothing to do with
> the radio frequency at all.
>
> johannes

Actually it was mac80211. In ieee80211_ioctl.c the allowed frequencies for Japan are defined this way:

1574 static const struct ieee80211_channel_range ieee80211_mkk_channels[] = {
1575 { 2412, 2472, 20, 6 } /* IEEE 802.11b/g, channels 1..13 */,
1576 { 5170, 5240, 20, 6 } /* IEEE 802.11a, channels 34..48 */,
1577 { 5260, 5320, 20, 6 } /* IEEE 802.11a, channels 52..64 */,
1578 { 0 }
1579 };

This prevents channel 14 from being used. Changing line 1575 to

1575 { 2412, 2484, 20, 6 } /* IEEE 802.11b/g, channels 1..13 */,

did the trick.

BTW: ieee80211_ioctl_set_regulatory_domain changes conf->regulatory_domain, but this seems not to change the selected frequency table (that one is selected solely based on the module parameter "ieee80211_regdom". Why are there two places to store the regdomain (that seem to be used from different places)?

--
Regards

Joerg







__________________________________ Yahoo! Clever - Der einfachste Weg, Fragen zu stellen und Wissenswertes mit Anderen zu teilen. http://www.yahoo.de/clever



2007-06-04 20:30:05

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: AW: Drivers that do not honor regulatory restrictions

On 6/4/07, Holger Schurig <[email protected]> wrote:
> > 1575 { 2412, 2484, 20, 6 } /* IEEE 802.11b/g, channels
> > 1..13 */,
> >
> > did the trick.
>
> Not sure if that is the right place .... but if you change the
> frequency, you should also change the comment:
>
> /* IEEE 802.11b/g, channels 1..14 */
>
> would be better.

Regulatory domain code for mac80211 and in general for all Linux
wireless needs some work so expect to see this behavior to change. For
now drivers do their own work. Although mac80211 does some regulatory
work it is pretty basic and minimal.

Luis

2007-06-04 12:06:35

by Johannes Berg

[permalink] [raw]
Subject: Re: AW: Drivers that do not honor regulatory restrictions

On Mon, 2007-06-04 at 05:03 -0700, Joerg Pommnitz wrote:

> Actually it was mac80211.
[...]

Oh, ok.

> BTW: ieee80211_ioctl_set_regulatory_domain changes
> conf->regulatory_domain, but this seems not to change the selected
> frequency table (that one is selected solely based on the module
> parameter "ieee80211_regdom". Why are there two places to store the
> regdomain (that seem to be used from different places)?

Honestly, I have no clue. I've never even tried to understand the
regulatory domain code in mac80211.

johannes


Attachments:
signature.asc (190.00 B)
This is a digitally signed message part

2007-06-04 12:28:31

by Holger Schurig

[permalink] [raw]
Subject: Re: AW: Drivers that do not honor regulatory restrictions

> 1575 { 2412, 2484, 20, 6 } /* IEEE 802.11b/g, channels
> 1..13 */,
>
> did the trick.

Not sure if that is the right place .... but if you change the
frequency, you should also change the comment:

/* IEEE 802.11b/g, channels 1..14 */

would be better.