Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jul 2020 14:41:54 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Aaron <notjanedeere@gmail.com>, freebsd-wireless <freebsd-wireless@freebsd.org>
Subject:   Re: regdomain.xml
Message-ID:  <CAJ-Vmo=C1x3q-5_mrKmOjde52uPEDo2NhnSbqvL1cgxCgsTicQ@mail.gmail.com>
In-Reply-To: <7a0f5e2c-a9e2-a476-6d99-f4591211bbe5@gmail.com>
References:  <CAJ-VmomofP8%2B5r1kWTvHXvgd-imERKLOMf_BiQaTY8M8bQCeCw@mail.gmail.com> <f429089c012869afa7c875fa24e941f3@udns.ultimatedns.net> <CAJ-VmomVTYQg0BX3jgPBBGhUyiSd0upT1JcE4XLbWMgwiPD7jg@mail.gmail.com> <CACNAnaEZwjpZMJ3JhoOn=Qb3H_9FL08T4VHOeGLS=FzYRSDqLQ@mail.gmail.com> <c3f15731-2dc0-7d87-1c41-d873bd99369b@gmail.com> <CAJ-Vmonigq35XpxAmdJ7JFH32QRu2FpvooD20BiRoG4ZmmP_cA@mail.gmail.com> <7a0f5e2c-a9e2-a476-6d99-f4591211bbe5@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
(cc'ing the list again, hehe :-)


On Tue, 21 Jul 2020 at 14:35, Aaron <notjanedeere@gmail.com> wrote:

>
> On 7/21/2020 5:33 PM, Adrian Chadd wrote:
>


>
> Ok. Please do dig into it.
>
> Do try to treat the regdomain code as a black box - input is "what
> regulatory domain do we want" and the output is "a list of channels and
> properties of those channels that we currently program into net80211."
> Hopefully we don't have to change the net80211 channel API!
>
> This is the sort of information I'm looking for!  So far all I'm looking
> at is an XML file.  Where would I find the "regdomain code"?
>

(We really should write a page in the wiki about regdomain stuff.)

So, here's my suggestion:

* get freebsd with a supported wifi card
* look at what happens when you type "ifconfig wlan0 create wlandev XXX";
and then "ifconfig wlan0 regdomain FCC3"
* .. see what it does with the channel programming in src/sbin/ifconfig/
and src/lib/lib80211/
* Also 'ifconfig wlan0 list sta" and "ifconfig -v wlan0 list sta"

in src/sbin/ifconfig/ifieee80211.c look at
setdefregdomain(), setregdomain_cb(), print_channels() and list_channels()

* print_channels() queries net80211 for the list of channels
* list_channels() calls it :-)
* setregdomain_cb() sucks in the lib80211 regdomain code, does a bunch of
hijinx, and then calls into net80211 using the IEEE80211_IOC_REGDOMAIN
ioctl to set the sku/country and the channel list.



-adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=C1x3q-5_mrKmOjde52uPEDo2NhnSbqvL1cgxCgsTicQ>