* Re: Regulatory Framework & rt2x00.
2008-10-02 20:20 Regulatory Framework & rt2x00 Gertjan van Wingerde
@ 2008-10-02 19:33 ` Luis R. Rodriguez
2008-10-03 20:20 ` Gertjan van Wingerde
2008-10-03 8:05 ` Johannes Berg
1 sibling, 1 reply; 10+ messages in thread
From: Luis R. Rodriguez @ 2008-10-02 19:33 UTC (permalink / raw)
To: Gertjan van Wingerde; +Cc: mcgrof@gmail.com, linux-wireless@vger.kernel.org
On Thu, Oct 02, 2008 at 01:20:23PM -0700, Gertjan van Wingerde wrote:
> Hi Luis,
>
> I'm working on making rt2x00 use the regulatory framework to report its
> EEPROM region settings to mac80211,
Excellent! Glad to see someone pick this work up for Ralink!
> and I have stumbled upon an issue
> that I don't really know how to solve with the current regulatory
> framework code.
>
> The problem I'm facing is that many of the Ralink devices have 2 region
> settings in their EEPROM, one for 802.11a networks, and one for
> 802.11[bgn] networks. So far I have only seen devices where these two
> settings contain the same region indication, but I don't know whether
> this is the case for all devices.
Actually as per the documenation I have the EEPROM *should not* be
relied on for proper regulatory compliance on some Ralink devices.
The windows registry is used so for these I'd recommend to rely on
db.txt and help enhance it further. Not sure if the documentation
for *all* devices says this though so we'll have to find out.
I'll send you the documentation I have in private.
Anyway Atheros devices also use a per band EEPROM value, I don't follow
the issue (should you really want to follow the EEPROM, please check the
documentation I will send you).
> At this point in time I use the regulatory_hint function at driver
> start-up time to communicate the region setting that matches the
> configured band, but that would (probably) not hold up when the user
> reconfigures the mode.
It does if you really want it to by using the reg_notifier() callback
you can register. We plan on eventually using this on ath9k for example
to respect the EEPROM values to come up with the intersection of the
regulatory domain the user set and what the EEPROM has. I had sent
an intersection patch a while ago under RFC for 802.11d. The
intersection routine is not yet merged.
> So, at this point in time I have the following questions:
> 1. How would I be able to communicate both these settings to the
> regulatory framework?
I think I answered them, please let me know if you need further
information.
> 2. Should I re-use regulator_hint whenever the configured band changes?
Nope, never.
> 3. Would a driver supplied region override a user configured setting
> (via iw/crda)?
Only if a callback is provided, reg_notifier() or if you register
*always* only the channels in that regulatory domain. I wouldn't
recommend this last strategy, but instead to use the first. The nice
thing with the first approach is you get to eventually support
world roaming then. You accomplish this by *not* allowing new regulatory
changes if the initiator was REGDOM_SET_BY_USER but consider them
to be applicable if your device has the
dot11MultiDomainCapabilityEnabled flag enabled, which by the 802.11
standard should be assumed to false *and* if the initiator was
REGDOM_SET_BY_COUNTRY_IE, which indicates the new regulatory_hint()
came from processing a 802.11d country IE; heck you can even check
the alpha2 here and decide if you device is world-roaming capable
in this country too. In fact to world roam since the IEEE-802.11
Country IE is crap (it really lacks a lot of information to really
be regulatory compliant IMO) we will need to do the intersection
of the built regulatory domain from the recieved Country IE and
what we have in our db.txt -- our db.txt has other information
such as DFS flags (note if your stack supports DFS for all modes
then DFS flags are useless as you are compliant to DFS always) and
max channel bandwidth limitations. If you want to be even more
conservative you can then take the intersection of this new intersected
regulatory domain and what you define based on your intelligence on
your EEPROM. What you end up is perhaps the most compliant regulatory
solution for world roaming available :)
> I would appreciate your help in solving this issue.
I hope this helps,
Luis
^ permalink raw reply [flat|nested] 10+ messages in thread
* Regulatory Framework & rt2x00.
@ 2008-10-02 20:20 Gertjan van Wingerde
2008-10-02 19:33 ` Luis R. Rodriguez
2008-10-03 8:05 ` Johannes Berg
0 siblings, 2 replies; 10+ messages in thread
From: Gertjan van Wingerde @ 2008-10-02 20:20 UTC (permalink / raw)
To: mcgrof; +Cc: linux-wireless
Hi Luis,
I'm working on making rt2x00 use the regulatory framework to report its
EEPROM region settings to mac80211, and I have stumbled upon an issue
that I don't really know how to solve with the current regulatory
framework code.
The problem I'm facing is that many of the Ralink devices have 2 region
settings in their EEPROM, one for 802.11a networks, and one for
802.11[bgn] networks. So far I have only seen devices where these two
settings contain the same region indication, but I don't know whether
this is the case for all devices.
At this point in time I use the regulatory_hint function at driver
start-up time to communicate the region setting that matches the
configured band, but that would (probably) not hold up when the user
reconfigures the mode.
So, at this point in time I have the following questions:
1. How would I be able to communicate both these settings to the
regulatory framework?
2. Should I re-use regulator_hint whenever the configured band changes?
3. Would a driver supplied region override a user configured setting
(via iw/crda)?
I would appreciate your help in solving this issue.
---
Gertjan van Wingerde
rt2x00 project developer
http://rt2x00.serialmonkey.com/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-02 20:20 Regulatory Framework & rt2x00 Gertjan van Wingerde
2008-10-02 19:33 ` Luis R. Rodriguez
@ 2008-10-03 8:05 ` Johannes Berg
2008-10-03 18:18 ` Ivo van Doorn
1 sibling, 1 reply; 10+ messages in thread
From: Johannes Berg @ 2008-10-03 8:05 UTC (permalink / raw)
To: Gertjan van Wingerde; +Cc: mcgrof, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1112 bytes --]
On Thu, 2008-10-02 at 22:20 +0200, Gertjan van Wingerde wrote:
> The problem I'm facing is that many of the Ralink devices have 2 region
> settings in their EEPROM, one for 802.11a networks, and one for
> 802.11[bgn] networks. So far I have only seen devices where these two
> settings contain the same region indication, but I don't know whether
> this is the case for all devices.
>
> At this point in time I use the regulatory_hint function at driver
> start-up time to communicate the region setting that matches the
> configured band, but that would (probably) not hold up when the user
> reconfigures the mode.
I think you basically have two choices depending on whether you have a
country code in the eeprom or not.
If you have a country code, I suggest you just use either one.
As far as I know, though, you don't have country codes. So if there's a
valid code in the EEPROM you probably should use the regdomain struct
hint rather than the alpha2 hint and build a regdomain that contains
both 2.4 and 5 GHz channels based on the two region values you have.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-03 20:02 ` Gertjan van Wingerde
@ 2008-10-03 13:14 ` Luis R. Rodriguez
0 siblings, 0 replies; 10+ messages in thread
From: Luis R. Rodriguez @ 2008-10-03 13:14 UTC (permalink / raw)
To: Gertjan van Wingerde
Cc: Ivo van Doorn, Johannes Berg, mcgrof@gmail.com,
linux-wireless@vger.kernel.org
On Fri, Oct 03, 2008 at 01:02:04PM -0700, Gertjan van Wingerde wrote:
> Ivo van Doorn wrote:
> > Hi,
> >
> >
> >>> The problem I'm facing is that many of the Ralink devices have 2 region
> >>> settings in their EEPROM, one for 802.11a networks, and one for
> >>> 802.11[bgn] networks. So far I have only seen devices where these two
> >>> settings contain the same region indication, but I don't know whether
> >>> this is the case for all devices.
> >>>
> >>> At this point in time I use the regulatory_hint function at driver
> >>> start-up time to communicate the region setting that matches the
> >>> configured band, but that would (probably) not hold up when the user
> >>> reconfigures the mode.
> >>>
> >> I think you basically have two choices depending on whether you have a
> >> country code in the eeprom or not.
> >>
> >> If you have a country code, I suggest you just use either one.
> >>
> >> As far as I know, though, you don't have country codes. So if there's a
> >> valid code in the EEPROM you probably should use the regdomain struct
> >> hint rather than the alpha2 hint and build a regdomain that contains
> >> both 2.4 and 5 GHz channels based on the two region values you have.
> >>
> >
> > For rt61pci and rt73usb you should do as Johannes suggested by using the
> > regdomain struct. For rt2500pci and rt2500usb it sounds much easier to
> > take the country code from the EEPROM since those devices only contain
> > a single regdom value.
>
> Hmm, but building the regdomain struct would mean detailed region
> knowledge inside the driver. This is something I was trying to prevent,
> as all that knowledge has been moved to user-space with crda.
>
> Luis, any other suggestions?
Proper regulatory implementation does require vendor involvement. I'd take it
up with Ralink to figure this out. In the meantime I'd suggest to just
let the user pick the alpha2 or to simply regulatory_hint() to a country
in which the devices are mostly sold on.
Remember -- RT61 EEPROM docs indicate you shouldn't rely on the EEPROM so its
pointless. I suspect its the same with the other devices but since
we do not have docs we cannot be sure.
Luis
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-03 20:20 ` Gertjan van Wingerde
@ 2008-10-03 14:32 ` Luis R. Rodriguez
2008-10-03 22:19 ` Gertjan van Wingerde
0 siblings, 1 reply; 10+ messages in thread
From: Luis R. Rodriguez @ 2008-10-03 14:32 UTC (permalink / raw)
To: Gertjan van Wingerde
Cc: Luis Rodriguez, mcgrof@gmail.com, linux-wireless@vger.kernel.org
On Fri, Oct 03, 2008 at 01:20:08PM -0700, Gertjan van Wingerde wrote:
> My tests on the Ralink devices I have show that indeed the PCI devices
> do not contain a region indication in EEPROM. However, all the USB
> devices I have do contain such an indication (or one indication per band).
Even if they have one if the docs say to ignore it then I'd ignore it.
> Do you have any sample code available on how the Atheros devices
> interact with the regulatory framework with their EEPROM values?
Nope, not yet, rigth now we register the channels based on our EEPROM,
and the user sets the regulatory domain to enhance regulatory domain
enforcement. Later once we want to allow world roaming and support
parsing Country IEs we will take on registering all our supported
channels and then use the reg_notifier() to review the data passed
for the alpha2.
> OK. I guess that depends on what model we want to have with Linux. For
> me, the user should always have the possibility to override the HW
> settings on region, as he might have taken the HW he bought in one
> region of the world to another.
This should only be possible if the devices were designed to world roam.
Remember that world roaming is part of the IEEE-802.11 specs, and by
default devices should be assumed to not be capable of it.
For example iwl3945 or iwlagn driveres are not capable of world roaming
because as of right now these devices are not designed to allow the
driver to *add* new channels.
Also keep in mind vendors tend to want to respect the EEPROM
map of the regulatory domain. This is to deal with two issues:
1. Rogue APs sending sending a strange channels for an alpha2 through
a Country IE
2. Vendor's customers tend to like to stick sometimes to frequency
ranges which may be old in terms of regulatory rules because
although the device is capable of other frequencies the customer
may not have tested the device or certified it under the other
channels even adding a new channel may be seen as a feature.
So it really depends. The answer to these questions *are* really
vendor dependant and I what I would *highly* recommend is to take
a conservative approach unless you have the vendor's blessing
to do things differently, even if the vendor is not being
cooeperative. Keep in mind though that doing this requires
developer effort though so I can see why we won't have all drivers
using regulatory_hint() and a reg_notifier() for example. But
developers are forthcoming to write this then great -- if you
don't get vendor support to enhance this then its really up us
to decide what is best.
> So, as far as I am concerned the EEPROM
> information is just an initial setting, which may be overridden later.
It depends on the vendor and their policies. For ath9k for example
this is not true -- the regulatory infrastructure allows the driver
to use your EEPROM map in case vendors wish to think their map
is the better source of knowledge.
> So, at the moment, I'm not interested in using the notifier.
It requires quite some work so I can understand why you may not
be inclined to use it, but if you do get vendor support I'd
be nice for you to reconsider. Up to you though of course, as
you are doing the work :)
> I'm not entirely sure yet. The basic question I have is that if I have a
> device with has in EEPROM a region setting of US for the 5GHz band and
> EU for the 2GHz band, what do I pass to the regulatory_hint function?
Think about this for a second -- does this make any sense? I don't see
how. Perhaps this is why its not recommended you rely on it. In the end,
you won't know unless you ask the vendor.
Luis
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-03 22:19 ` Gertjan van Wingerde
@ 2008-10-03 15:45 ` Luis R. Rodriguez
0 siblings, 0 replies; 10+ messages in thread
From: Luis R. Rodriguez @ 2008-10-03 15:45 UTC (permalink / raw)
To: Gertjan van Wingerde
Cc: Luis Rodriguez, mcgrof@gmail.com, linux-wireless@vger.kernel.org
On Fri, Oct 03, 2008 at 03:19:59PM -0700, Gertjan van Wingerde wrote:
> Luis R. Rodriguez wrote:
> >
> > This should only be possible if the devices were designed to world roam.
> > Remember that world roaming is part of the IEEE-802.11 specs, and by
> > default devices should be assumed to not be capable of it.
> >
> > For example iwl3945 or iwlagn driveres are not capable of world roaming
> > because as of right now these devices are not designed to allow the
> > driver to *add* new channels.
> >
> > Also keep in mind vendors tend to want to respect the EEPROM
> > map of the regulatory domain. This is to deal with two issues:
> >
> > 1. Rogue APs sending sending a strange channels for an alpha2 through
> > a Country IE
> >
> > 2. Vendor's customers tend to like to stick sometimes to frequency
> > ranges which may be old in terms of regulatory rules because
> > although the device is capable of other frequencies the customer
> > may not have tested the device or certified it under the other
> > channels even adding a new channel may be seen as a feature.
> >
> > So it really depends. The answer to these questions *are* really
> > vendor dependant and I what I would *highly* recommend is to take
> > a conservative approach unless you have the vendor's blessing
> > to do things differently, even if the vendor is not being
> > cooeperative. Keep in mind though that doing this requires
> > developer effort though so I can see why we won't have all drivers
> > using regulatory_hint() and a reg_notifier() for example. But
> > developers are forthcoming to write this then great -- if you
> > don't get vendor support to enhance this then its really up us
> > to decide what is best.
> >
>
> Hmm, interesting. I would have assumed that in this era whether people
> are traveling round the world that vendors would create some more robust
> HW that is capable of coping with that. For instance, for my real-life
> job I do travel round the world a lot, and I'm using the built-in (as
> well as the Ralink PC-card I have) basically everywhere.
Well due to the "regulatory boogeyman", as Sam likes to call it,
companies which do not have solid regulatory infrastructure tend to
like to simply not world roam or simply not deal with this in FOSS.
Fortunately now we have a pretty beefy regulatory infrastructure though
so this can change now. Keep in mind that you *shouldn't* run into
problems unless you hit channels on band edges which are usually the
ones that may get removed, like channels 12 and 13 on the 2 GHZ band,
for example.
> >> I'm not entirely sure yet. The basic question I have is that if I have a
> >> device with has in EEPROM a region setting of US for the 5GHz band and
> >> EU for the 2GHz band, what do I pass to the regulatory_hint function?
> >>
> >
> > Think about this for a second -- does this make any sense? I don't see
> > how. Perhaps this is why its not recommended you rely on it. In the end,
> > you won't know unless you ask the vendor.
> >
>
> Yep, that's exactly the issue I had with this. It doesn't make sense to
> me to have multiple (potentially) different region codes programmed in
> EEPROM.
Right, well I mean, it could make sense if although its "US" for 2 GHz
and "EU" for 5 GHz that this is not really an EEPROM country code but
more rather an EEPROM code for the collection of channels on each band.
In regulatory world these are called SKUs [1]. So If you start thinking
of it in terms of SKUs you then then to find what the SKU means and
simply just use that to only register those channels. This would be a
very conservative approach but it limits your devices to not be
able to world roam later. If instead you use a reg_notifier() to
review the regulatory changes and if the initiator is the user
(REGDOM_SET_BY_USER) you can then override any changes by crda as your
driver may claim to know better. That was the whole point of
reg_notifier() -- in case you want to say you know better in case of a
user override. This can then let you world roam later if the initiator
is REGDOM_SET_BY_COUNTRY_IE and you want to be more flexible there.
As you can see this requires quite a bit of work and knowledge of the
device's regulatory information and the original intentions behind the
design of the device. This is why its difficult to simply assume
you can build it on your own without vendor involvement and why I was
recommending a more conservative approach.
> Note that the example I gave is a real-life example. The EEPROM
> of my rt73usb device contain exactly these EEPROM settings for the
> region information :-(
Heh yeah, if you think in terms of SKUs it makes a little more sense, I
hope.
[1] http://en.wikipedia.org/wiki/Stock-keeping_unit
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-03 8:05 ` Johannes Berg
@ 2008-10-03 18:18 ` Ivo van Doorn
2008-10-03 20:02 ` Gertjan van Wingerde
0 siblings, 1 reply; 10+ messages in thread
From: Ivo van Doorn @ 2008-10-03 18:18 UTC (permalink / raw)
To: Gertjan van Wingerde; +Cc: Johannes Berg, mcgrof, linux-wireless
Hi,
> > The problem I'm facing is that many of the Ralink devices have 2 region
> > settings in their EEPROM, one for 802.11a networks, and one for
> > 802.11[bgn] networks. So far I have only seen devices where these two
> > settings contain the same region indication, but I don't know whether
> > this is the case for all devices.
> >
> > At this point in time I use the regulatory_hint function at driver
> > start-up time to communicate the region setting that matches the
> > configured band, but that would (probably) not hold up when the user
> > reconfigures the mode.
>
> I think you basically have two choices depending on whether you have a
> country code in the eeprom or not.
>
> If you have a country code, I suggest you just use either one.
>
> As far as I know, though, you don't have country codes. So if there's a
> valid code in the EEPROM you probably should use the regdomain struct
> hint rather than the alpha2 hint and build a regdomain that contains
> both 2.4 and 5 GHz channels based on the two region values you have.
For rt61pci and rt73usb you should do as Johannes suggested by using the
regdomain struct. For rt2500pci and rt2500usb it sounds much easier to
take the country code from the EEPROM since those devices only contain
a single regdom value.
Ivo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-03 18:18 ` Ivo van Doorn
@ 2008-10-03 20:02 ` Gertjan van Wingerde
2008-10-03 13:14 ` Luis R. Rodriguez
0 siblings, 1 reply; 10+ messages in thread
From: Gertjan van Wingerde @ 2008-10-03 20:02 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Johannes Berg, mcgrof, linux-wireless
Ivo van Doorn wrote:
> Hi,
>
>
>>> The problem I'm facing is that many of the Ralink devices have 2 region
>>> settings in their EEPROM, one for 802.11a networks, and one for
>>> 802.11[bgn] networks. So far I have only seen devices where these two
>>> settings contain the same region indication, but I don't know whether
>>> this is the case for all devices.
>>>
>>> At this point in time I use the regulatory_hint function at driver
>>> start-up time to communicate the region setting that matches the
>>> configured band, but that would (probably) not hold up when the user
>>> reconfigures the mode.
>>>
>> I think you basically have two choices depending on whether you have a
>> country code in the eeprom or not.
>>
>> If you have a country code, I suggest you just use either one.
>>
>> As far as I know, though, you don't have country codes. So if there's a
>> valid code in the EEPROM you probably should use the regdomain struct
>> hint rather than the alpha2 hint and build a regdomain that contains
>> both 2.4 and 5 GHz channels based on the two region values you have.
>>
>
> For rt61pci and rt73usb you should do as Johannes suggested by using the
> regdomain struct. For rt2500pci and rt2500usb it sounds much easier to
> take the country code from the EEPROM since those devices only contain
> a single regdom value.
Hmm, but building the regdomain struct would mean detailed region
knowledge inside the driver. This is something I was trying to prevent,
as all that knowledge has been moved to user-space with crda.
Luis, any other suggestions?
---
Gertjan.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-02 19:33 ` Luis R. Rodriguez
@ 2008-10-03 20:20 ` Gertjan van Wingerde
2008-10-03 14:32 ` Luis R. Rodriguez
0 siblings, 1 reply; 10+ messages in thread
From: Gertjan van Wingerde @ 2008-10-03 20:20 UTC (permalink / raw)
To: Luis R. Rodriguez; +Cc: mcgrof@gmail.com, linux-wireless@vger.kernel.org
Luis R. Rodriguez wrote:
> On Thu, Oct 02, 2008 at 01:20:23PM -0700, Gertjan van Wingerde wrote:
>
>> Hi Luis,
>>
>> I'm working on making rt2x00 use the regulatory framework to report its
>> EEPROM region settings to mac80211,
>>
>
> Excellent! Glad to see someone pick this work up for Ralink!
>
>
>> and I have stumbled upon an issue
>> that I don't really know how to solve with the current regulatory
>> framework code.
>>
>> The problem I'm facing is that many of the Ralink devices have 2 region
>> settings in their EEPROM, one for 802.11a networks, and one for
>> 802.11[bgn] networks. So far I have only seen devices where these two
>> settings contain the same region indication, but I don't know whether
>> this is the case for all devices.
>>
>
> Actually as per the documenation I have the EEPROM *should not* be
> relied on for proper regulatory compliance on some Ralink devices.
> The windows registry is used so for these I'd recommend to rely on
> db.txt and help enhance it further. Not sure if the documentation
> for *all* devices says this though so we'll have to find out.
>
> I'll send you the documentation I have in private.
>
> Anyway Atheros devices also use a per band EEPROM value, I don't follow
> the issue (should you really want to follow the EEPROM, please check the
> documentation I will send you).
>
My tests on the Ralink devices I have show that indeed the PCI devices
do not contain a region indication in EEPROM. However, all the USB
devices I have do contain such an indication (or one indication per band).
Do you have any sample code available on how the Atheros devices
interact with the regulatory framework with their EEPROM values?
>
>> At this point in time I use the regulatory_hint function at driver
>> start-up time to communicate the region setting that matches the
>> configured band, but that would (probably) not hold up when the user
>> reconfigures the mode.
>>
>
> It does if you really want it to by using the reg_notifier() callback
> you can register. We plan on eventually using this on ath9k for example
> to respect the EEPROM values to come up with the intersection of the
> regulatory domain the user set and what the EEPROM has. I had sent
> an intersection patch a while ago under RFC for 802.11d. The
> intersection routine is not yet merged.
>
OK. I guess that depends on what model we want to have with Linux. For
me, the user should always have the possibility to override the HW
settings on region, as he might have taken the HW he bought in one
region of the world to another. So, as far as I am concerned the EEPROM
information is just an initial setting, which may be overridden later.
So, at the moment, I'm not interested in using the notifier.
>
>> So, at this point in time I have the following questions:
>> 1. How would I be able to communicate both these settings to the
>> regulatory framework?
>>
>
> I think I answered them, please let me know if you need further
> information.
>
I'm not entirely sure yet. The basic question I have is that if I have a
device with has in EEPROM a region setting of US for the 5GHz band and
EU for the 2GHz band, what do I pass to the regulatory_hint function?
>
>> 2. Should I re-use regulator_hint whenever the configured band changes?
>>
>
> Nope, never.
>
>
>> 3. Would a driver supplied region override a user configured setting
>> (via iw/crda)?
>>
>
> Only if a callback is provided, reg_notifier() or if you register
> *always* only the channels in that regulatory domain. I wouldn't
> recommend this last strategy, but instead to use the first. The nice
> thing with the first approach is you get to eventually support
> world roaming then. You accomplish this by *not* allowing new regulatory
> changes if the initiator was REGDOM_SET_BY_USER but consider them
> to be applicable if your device has the
> dot11MultiDomainCapabilityEnabled flag enabled, which by the 802.11
> standard should be assumed to false *and* if the initiator was
> REGDOM_SET_BY_COUNTRY_IE, which indicates the new regulatory_hint()
> came from processing a 802.11d country IE; heck you can even check
> the alpha2 here and decide if you device is world-roaming capable
> in this country too. In fact to world roam since the IEEE-802.11
> Country IE is crap (it really lacks a lot of information to really
> be regulatory compliant IMO) we will need to do the intersection
> of the built regulatory domain from the recieved Country IE and
> what we have in our db.txt -- our db.txt has other information
> such as DFS flags (note if your stack supports DFS for all modes
> then DFS flags are useless as you are compliant to DFS always) and
> max channel bandwidth limitations. If you want to be even more
> conservative you can then take the intersection of this new intersected
> regulatory domain and what you define based on your intelligence on
> your EEPROM. What you end up is perhaps the most compliant regulatory
> solution for world roaming available :)
>
>
>> I would appreciate your help in solving this issue.
>>
>
> I hope this helps,
>
> Luis
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regulatory Framework & rt2x00.
2008-10-03 14:32 ` Luis R. Rodriguez
@ 2008-10-03 22:19 ` Gertjan van Wingerde
2008-10-03 15:45 ` Luis R. Rodriguez
0 siblings, 1 reply; 10+ messages in thread
From: Gertjan van Wingerde @ 2008-10-03 22:19 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: Luis Rodriguez, mcgrof@gmail.com, linux-wireless@vger.kernel.org
Luis R. Rodriguez wrote:
> On Fri, Oct 03, 2008 at 01:20:08PM -0700, Gertjan van Wingerde wrote:
>
>> My tests on the Ralink devices I have show that indeed the PCI devices
>> do not contain a region indication in EEPROM. However, all the USB
>> devices I have do contain such an indication (or one indication per band).
>>
>
> Even if they have one if the docs say to ignore it then I'd ignore it.
>
Unfortunately we don't have the EEPROM docs for the other chipsets (most
notably USB-chipsets). I've asked Ralink whether they can share these
with us.
I'll also study the Ralink provided driver in more detail. Maybe it
gives some hints on how that driver uses the EEPROM information.
>
>> OK. I guess that depends on what model we want to have with Linux. For
>> me, the user should always have the possibility to override the HW
>> settings on region, as he might have taken the HW he bought in one
>> region of the world to another.
>>
>
> This should only be possible if the devices were designed to world roam.
> Remember that world roaming is part of the IEEE-802.11 specs, and by
> default devices should be assumed to not be capable of it.
>
> For example iwl3945 or iwlagn driveres are not capable of world roaming
> because as of right now these devices are not designed to allow the
> driver to *add* new channels.
>
> Also keep in mind vendors tend to want to respect the EEPROM
> map of the regulatory domain. This is to deal with two issues:
>
> 1. Rogue APs sending sending a strange channels for an alpha2 through
> a Country IE
>
> 2. Vendor's customers tend to like to stick sometimes to frequency
> ranges which may be old in terms of regulatory rules because
> although the device is capable of other frequencies the customer
> may not have tested the device or certified it under the other
> channels even adding a new channel may be seen as a feature.
>
> So it really depends. The answer to these questions *are* really
> vendor dependant and I what I would *highly* recommend is to take
> a conservative approach unless you have the vendor's blessing
> to do things differently, even if the vendor is not being
> cooeperative. Keep in mind though that doing this requires
> developer effort though so I can see why we won't have all drivers
> using regulatory_hint() and a reg_notifier() for example. But
> developers are forthcoming to write this then great -- if you
> don't get vendor support to enhance this then its really up us
> to decide what is best.
>
Hmm, interesting. I would have assumed that in this era whether people
are traveling round the world that vendors would create some more robust
HW that is capable of coping with that. For instance, for my real-life
job I do travel round the world a lot, and I'm using the built-in (as
well as the Ralink PC-card I have) basically everywhere.
>
>> I'm not entirely sure yet. The basic question I have is that if I have a
>> device with has in EEPROM a region setting of US for the 5GHz band and
>> EU for the 2GHz band, what do I pass to the regulatory_hint function?
>>
>
> Think about this for a second -- does this make any sense? I don't see
> how. Perhaps this is why its not recommended you rely on it. In the end,
> you won't know unless you ask the vendor.
>
Yep, that's exactly the issue I had with this. It doesn't make sense to
me to have multiple (potentially) different region codes programmed in
EEPROM. Note that the example I gave is a real-life example. The EEPROM
of my rt73usb device contain exactly these EEPROM settings for the
region information :-(
---
Gertjan.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2008-10-03 22:45 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-02 20:20 Regulatory Framework & rt2x00 Gertjan van Wingerde
2008-10-02 19:33 ` Luis R. Rodriguez
2008-10-03 20:20 ` Gertjan van Wingerde
2008-10-03 14:32 ` Luis R. Rodriguez
2008-10-03 22:19 ` Gertjan van Wingerde
2008-10-03 15:45 ` Luis R. Rodriguez
2008-10-03 8:05 ` Johannes Berg
2008-10-03 18:18 ` Ivo van Doorn
2008-10-03 20:02 ` Gertjan van Wingerde
2008-10-03 13:14 ` Luis R. Rodriguez
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).