Search Linux Wireless

Re: [RFC] regulatory information interpretation rules

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

 



On Sun, 2009-03-22 at 10:02 +0100, Johannes Berg wrote:
> Ok, so I'm thinking about the interpretation rules for the regulatory
> information. I even dreamt about this tonight, unfortunately...

[...]

> Now how should you interpret this? I'll propose the following
> interpretation rules (and show how you arrive at the required
> interpretation from above):
> 
>  1) MIN values are really something like MIN+, i.e. approaching the MIN
>     from above, that means that the value "2452 MHz" falls into the
>     first of the ranges, not the second [3]
> 
>  2) The entire band a channel occupies needs to be covered by (any
>     number of) contiguous rules.
> 
>  3) The MAXBW value specifies what maximum bandwidth a channel can use
>     which has its center frequency (!) falling into the given range.
> 
>  4) The FLAGS specify restrictions that any channel _overlapping_ the
>     given range has to operate under.
> 
> That is all. Now let me show how to interpret this.

Let me rewrite those rules, more formally.

Let's take an example regdomain with "n" rules:

country EX:
	(MIN_1 - MAX_1 @ BW_1), (MAXAG_1, TXPWR_1), FLAGS_1
	...
	(MIN_n - MAX_n @ BW_n), (MAXAG_n, TXPWR_n), FLAGS_n

And let's say we need to determine whether a channel, which
(disregarding modulation for a moment) is determined by its center
frequency and bandwidth:
	CHANNEL = (CENTER, BW)

Then the rules are as follows, now using the notation outlined here:
http://en.wikipedia.org/wiki/Interval_(mathematics)#Notations_for_intervals (I'd use latex notation if I knew everybody was familiar with it, you have to do with some words instead)

 0) (stated outside rules before) for all 1 <= k < n : MAX_k <= MIN_{k+1}
    [1]

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

 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   [3]

 4) This is easier to formulate algorithmically:
    USE_FLAGS = 0
    for k = 1 .. n
        if CENTER in (MIN_k, MAX_k]:
            USE_FLAGS |= FLAGS_k

johannes

[1] this says "no overlap" but also "must be sorted" which can be
    beneficial
[2] this is a useless rule given the way I formulated rules 3 and 4, but
    it helps think about how it works
[3] given rule 0) the if only matches (at most) once

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux