[RFQ] net80211 regulatory changes: what I'd like to see before
adrian.chadd at gmail.com
Mon Aug 8 09:49:39 UTC 2011
I've been knee-deep in the net80211 regulatory code (among other
things) and after doing some regulatory DFS related work, there's a
couple of short-comings I'd like to try and fix before 9.0-RELEASE is
Firstly, the current way that regulatory domains in net80211 are setup
is very Atheros-specific. Specifically, the notion of "SKU" as the
regulatory domain. net80211 knows about a small subset of SKU values
which mostly map to what the Atheros driver/HAL code uses to figure
out the regulatory domain. But it makes it impossible to extend the
regulatory domain database (regdomain.xml) to encompass the different
regulatory domains that exist for different countries. For example, if
I wanted to add an Australia specific regulatory domain (which would
include information different to the "ROW" (rest-of-world) regulatory
domain it currently defaults to using), I'd have to teach net80211
about a new SKU (call it "APAC".) But since the Atheros HAL doesn't
have an Australia specific SKU value, I'd have to choose a value which
Since the regdomain.xml database is indexed by the SKU value, I can't
have more than one regulatory domain with the same SKU. Since
net80211/atheros rejects SKUs it doesn't know about, I'd have to add
each new (fake) SKU to both in order to get things working.
What I'd like to do is modify the regdomain.xml database, net80211 and
ifconfig to use the ISOCC (ISO country code) numeric value as the
primary key. This means an ABI change, as the primary key won't be an
SKU any longer, but keep the SKU as a field so people using atheros
devices can see what's going on.
Once that's done, I/others can then spend the next few months slowly
adding updated entries to regdomain.xml that reflect what each of the
current country regulatory requirements are.
The second change would be brought in with the first change. I'd like
to add another field to regdomain.xml which includes what the radar
requirements are - specifically for now, whether it's FCC, Japan,
ETSI. The atheros driver seems to support combinations of the above
when using one of the world regulatory domains (FCC and ETSI together)
so it likely should be some more flags.
I can knock up some public code in the next few days to submit for review.
More information about the freebsd-wireless