Search Linux Wireless

Re: regulatory domain settings overwritten

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Julian

Thank you for the quick reply and the link

on 27.11.2012 10:55, Julian Calaby wrote:
> Hi Erich,
> 
...


> 
> It's not being completely overridden and it is working as designed.
> 
> Firstly, the default country code for all Atheros chips is the USA.
> This is most likely because that's where the company is based.
> 
> Secondly, your choice, China, is not being overridden. As the card is
> saying that it's configured for the USA, and you're saying that it's
> in China, the regulatory framework is using the intersection of the US
> and Chinese rules to govern it's output, thereby ensuring that the
> operation of the card complies with all the information it has about
> it's location.
> 
> This has been explained in more detail in this thread:
> 
> http://www.spinics.net/lists/linux-wireless/msg92420.html
> 
> If you want to have the complete set of frequencies as specified by
> the Chinese rules, you will need to obtain a card which has been
> configured for Chinese operation.

Actually the country code CH should stand for Switzerland and I am
surprised a default for the US should be hard coded into the driver

        regdmn = ath_regd_get_eepromRD(reg);
        reg->country_code = ath_regd_get_default_country(regdmn);

        if (reg->country_code == CTRY_DEFAULT &&
            regdmn == CTRY_DEFAULT) {
                printk(KERN_DEBUG "ath: EEPROM indicates default "
                       "country code should be used\n");
                reg->country_code = CTRY_UNITED_STATES;
        }

        if (reg->country_code == CTRY_DEFAULT) {
                country = NULL;
        } else {
                printk(KERN_DEBUG "ath: doing EEPROM country->regdmn "
                       "map search\n");
                country = ath_regd_find_country(reg->country_code);
                if (country == NULL) {
                        printk(KERN_DEBUG
                                "ath: no valid country maps found for "
                                "country code: 0x%0x\n",
                                reg->country_code);
                        return -EINVAL;
                } else {
                        regdmn = country->regDmnEnum;
                        printk(KERN_DEBUG "ath: country maps to "
                               "regdmn code: 0x%0x\n",
                               regdmn);
                }
        }

Anyway, I am located in Switzerland and I saw similar threads from a few
people on the net. Today's mobile society demands that equipment can be
reconfigured freely to accommodate the local regulatory limits. This can
be achieved at will with an open card, which just gets crippled by the
hard coded limits set here.

So under the worst thinkable circumstances this code won't work for my
environment as, for example, the intersection of the world regdomain and
the US regdomain would AFAIK cut away channels 12 and 13, which are
perfectly legal at my domicile and are used by some AP's.

I could (and will probably have to) recompile the driver using another
regdomain file, but this is not really satisfactory either. IMHO the
regdomain should be chosen as seen fit and not imposed by hard coded
limits in the driver.

Thanks

Erich

Attachment: smime.p7s
Description: S/MIME Kryptografische Unterschrift


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux