linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Regulatory simulator - regulatory revamp work
@ 2011-08-24 23:11 Luis R. Rodriguez
  2011-09-28 15:45 ` Regulatory revamp status Zefir Kurtisi
  0 siblings, 1 reply; 11+ messages in thread
From: Luis R. Rodriguez @ 2011-08-24 23:11 UTC (permalink / raw)
  To: linux-wireless
  Cc: Adrian Chadd, Kevin Hayes, Arun Venkataraman, Prem Kumar,
	Matt Smith, David Quan

Note: this is a public e-mail

As I mentioned at the Linux wireless summit we want to revamp the
regulatory code on Linux to take into consideration some new features
and to make the code a bit easier to follow and manage, and most
importantly do unit tests outside of the kernel through a userspace
testbed which can prove validity of the data and all possible states
we can run into. This can also help other OSes which may want to
cherry pick the code into their own solutions and hopefully create
more traction on embracing and working together towards a more unified
regulatory database.

I've dumped some initial code here:

git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/regsim.git

The first goal is to start embracing the formal definition of a
regulatory domain and rules that a frequency should match to by
Johannes a while ago:

     0) for all 1 <= k < n : MAX_k <= MIN_{k+1}

     1) each rule in the regdomain covers the frequency range (MIN_1, MAX_1]

     2) given C = union (over all k = 1 .. n) of (MIN_k, MAX_k] it must be
       true that (CENTER - BW/2, CENTER + BW/2) is a subset of C

     3) it must be true for all 1 <= k <= n:
           if CENTER in (MIN_k, MAX_k] : BW <= BW_k

     4) This is easier to formulate algorithmically:
       USE_FLAGS = 0
       for k = 1 .. n
           if (CENTER - BW/2, CENTER + BW/2) intersects (MIN_k, MAX_k]:
               USE_FLAGS |= FLAGS_k

This intends on addressing regulatory domains which may have
overlapping rules or TPC rules for different bandwidths -- all of
which do not exist today as far as I'm concerned but certainly do
limit our architecture as it is today. I intend on testing this by
creating a test regulator domain under main.c which has some
overlapping frequency rules and ensuring that the target rule picked
matches the above definition.

Next we should review 802.11mb stuff and the "operating class"
extensions, and see if we can throw some of that to the framework to
intersect the existing rules. This will take care of the operating
class requirements for 802.11ad. For this I will need some help on the
language used on 11mb operating classes. For 802.11ac I didn't get any
new concerns or architecture change requirements. For TV space.. its a
bit different and we will have the external regulatory database we
will need to talk to but -- not sure how that fits into this stuff. If
someone is working on that I'd appreciate review or feedback.

After that will be adding some form of state machine for each possible
regulatory state we can get into and then adding all possible events
and changes to the state machine. Then we start simulating devices and
them moving around all possible states, exposing allowed channels,
output power, etc, and comparing this against expected results.

If you'd like to help feel free to coordinate on #linux-wireless on
irc.freenode.net or on this list. Patches always welcomed.

  Luis

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-10-03 20:01 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-24 23:11 Regulatory simulator - regulatory revamp work Luis R. Rodriguez
2011-09-28 15:45 ` Regulatory revamp status Zefir Kurtisi
2011-09-28 19:52   ` Luis R. Rodriguez
2011-09-29  8:37     ` Zefir Kurtisi
2011-09-29 11:45       ` Adrian Chadd
2011-09-29 12:46         ` Zefir Kurtisi
2011-09-29 17:47           ` Luis R. Rodriguez
2011-09-30 11:11             ` Zefir Kurtisi
2011-09-30 11:21           ` Adrian Chadd
2011-09-30 12:52             ` Zefir Kurtisi
2011-10-03 20:00       ` 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).