Printing all channels supported by HW (in this case from LinuxKPI with iwlwifi) I see the full set of 5GHz high channels. iwlwifi0: [2 100020 2147423703] lkpi_ic_getradiocaps: Channel [1/2412/0] iwlwifi0: [2 100020 2147423703] lkpi_ic_getradiocaps: Channel [2/2417/0] iwlwifi0: [2 100020 2147423704] lkpi_ic_getradiocaps: Channel [3/2422/0] iwlwifi0: [2 100020 2147423704] lkpi_ic_getradiocaps: Channel [4/2427/0] iwlwifi0: [2 100020 2147423705] lkpi_ic_getradiocaps: Channel [5/2432/0] iwlwifi0: [2 100020 2147423705] lkpi_ic_getradiocaps: Channel [6/2437/0] iwlwifi0: [2 100020 2147423705] lkpi_ic_getradiocaps: Channel [7/2442/0] iwlwifi0: [2 100020 2147423705] lkpi_ic_getradiocaps: Channel [8/2447/0] iwlwifi0: [2 100020 2147423706] lkpi_ic_getradiocaps: Channel [9/2452/0] iwlwifi0: [2 100020 2147423706] lkpi_ic_getradiocaps: Channel [10/2457/0] iwlwifi0: [2 100020 2147423706] lkpi_ic_getradiocaps: Channel [11/2462/0] iwlwifi0: [2 100020 2147423706] lkpi_ic_getradiocaps: Channel [12/2467/0] iwlwifi0: [2 100020 2147423706] lkpi_ic_getradiocaps: Channel [13/2472/0] iwlwifi0: [2 100020 2147423706] lkpi_ic_getradiocaps: Channel [14/2484/0] iwlwifi0: [2 100020 2147423707] lkpi_ic_getradiocaps: Channel [36/5180/0] iwlwifi0: [2 100020 2147423707] lkpi_ic_getradiocaps: Channel [40/5200/0] iwlwifi0: [2 100020 2147423707] lkpi_ic_getradiocaps: Channel [44/5220/0] iwlwifi0: [2 100020 2147423707] lkpi_ic_getradiocaps: Channel [48/5240/0] iwlwifi0: [2 100020 2147423707] lkpi_ic_getradiocaps: Channel [52/5260/0] iwlwifi0: [2 100020 2147423707] lkpi_ic_getradiocaps: Channel [56/5280/0] iwlwifi0: [2 100020 2147423708] lkpi_ic_getradiocaps: Channel [60/5300/0] iwlwifi0: [2 100020 2147423708] lkpi_ic_getradiocaps: Channel [64/5320/0] iwlwifi0: [2 100020 2147423708] lkpi_ic_getradiocaps: Channel [68/5340/0] iwlwifi0: [2 100020 2147423708] lkpi_ic_getradiocaps: Channel [72/5360/0] iwlwifi0: [2 100020 2147423709] lkpi_ic_getradiocaps: Channel [76/5380/0] iwlwifi0: [2 100020 2147423709] lkpi_ic_getradiocaps: Channel [80/5400/0] iwlwifi0: [2 100020 2147423709] lkpi_ic_getradiocaps: Channel [84/5420/0] iwlwifi0: [2 100020 2147423709] lkpi_ic_getradiocaps: Channel [88/5440/0] iwlwifi0: [2 100020 2147423709] lkpi_ic_getradiocaps: Channel [92/5460/0] iwlwifi0: [2 100020 2147423709] lkpi_ic_getradiocaps: Channel [96/5480/0] iwlwifi0: [2 100020 2147423710] lkpi_ic_getradiocaps: Channel [100/5500/0] iwlwifi0: [2 100020 2147423710] lkpi_ic_getradiocaps: Channel [104/5520/0] iwlwifi0: [2 100020 2147423710] lkpi_ic_getradiocaps: Channel [108/5540/0] iwlwifi0: [2 100020 2147423710] lkpi_ic_getradiocaps: Channel [112/5560/0] iwlwifi0: [2 100020 2147423710] lkpi_ic_getradiocaps: Channel [116/5580/0] iwlwifi0: [2 100020 2147423710] lkpi_ic_getradiocaps: Channel [120/5600/0] iwlwifi0: [2 100020 2147423711] lkpi_ic_getradiocaps: Channel [124/5620/0] iwlwifi0: [2 100020 2147423711] lkpi_ic_getradiocaps: Channel [128/5640/0] iwlwifi0: [2 100020 2147423711] lkpi_ic_getradiocaps: Channel [132/5660/0] iwlwifi0: [2 100020 2147423711] lkpi_ic_getradiocaps: Channel [136/5680/0] iwlwifi0: [2 100020 2147423711] lkpi_ic_getradiocaps: Channel [140/5700/0] iwlwifi0: [2 100020 2147423712] lkpi_ic_getradiocaps: Channel [144/5720/0] iwlwifi0: [2 100020 2147423712] lkpi_ic_getradiocaps: Channel [149/5745/0] iwlwifi0: [2 100020 2147423712] lkpi_ic_getradiocaps: Channel [153/5765/0] iwlwifi0: [2 100020 2147423712] lkpi_ic_getradiocaps: Channel [157/5785/0] iwlwifi0: [2 100020 2147423712] lkpi_ic_getradiocaps: Channel [161/5805/0] iwlwifi0: [2 100020 2147423713] lkpi_ic_getradiocaps: Channel [165/5825/0] iwlwifi0: [2 100020 2147423713] lkpi_ic_getradiocaps: Channel [169/5845/0] iwlwifi0: [2 100020 2147423713] lkpi_ic_getradiocaps: Channel [173/5865/0] iwlwifi0: [2 100020 2147423713] lkpi_ic_getradiocaps: Channel [177/5885/0] iwlwifi0: [2 100020 2147423713] lkpi_ic_getradiocaps: Channel [181/5905/0] But in ifconfig they do not show up. # ifconfig -v wlan0 list chan Channel 1 : 2412 MHz 11b Channel 12 : 2467 MHz 11g Channel 1 : 2412 MHz 11g Channel 13 : 2472 MHz 11b Channel 2 : 2417 MHz 11b Channel 13 : 2472 MHz 11g Channel 2 : 2417 MHz 11g Channel 36 : 5180 MHz 11a Channel 3 : 2422 MHz 11b Channel 40 : 5200 MHz 11a Channel 3 : 2422 MHz 11g Channel 44 : 5220 MHz 11a Channel 4 : 2427 MHz 11b Channel 48 : 5240 MHz 11a Channel 4 : 2427 MHz 11g Channel 52 : 5260*D MHz 11a Channel 5 : 2432 MHz 11b Channel 56 : 5280*D MHz 11a Channel 5 : 2432 MHz 11g Channel 60 : 5300*D MHz 11a Channel 6 : 2437 MHz 11b Channel 64 : 5320*D MHz 11a Channel 6 : 2437 MHz 11g Channel 100 : 5500*D MHz 11a Channel 7 : 2442 MHz 11b Channel 104 : 5520*D MHz 11a Channel 7 : 2442 MHz 11g Channel 108 : 5540*D MHz 11a Channel 8 : 2447 MHz 11b Channel 112 : 5560*D MHz 11a Channel 8 : 2447 MHz 11g Channel 116 : 5580*D MHz 11a Channel 9 : 2452 MHz 11b Channel 120 : 5600*D MHz 11a Channel 9 : 2452 MHz 11g Channel 124 : 5620*D MHz 11a Channel 10 : 2457 MHz 11b Channel 128 : 5640*D MHz 11a Channel 10 : 2457 MHz 11g Channel 132 : 5660*D MHz 11a Channel 11 : 2462 MHz 11b Channel 136 : 5680*D MHz 11a Channel 11 : 2462 MHz 11g Channel 140 : 5700*D MHz 11a Channel 12 : 2467 MHz 11b Check where we filter them out (MAXCHAN number from ifconfig down to regdomain.xml, etc.).
Just trying to change the topic again as it is not just ifconfig but also other logic. ifconfig is just the far end on one side, the kernel driver the other end. In the end it is what we make net80211 think which matters.
I just checked. Someone needs to update regdomain.xml for them and they'll show up. We need to think how to continue on some other bits as well for 6Ghz likely if we start it.
Hi, thanks for looking into it. I'd like to update regdomain.xml but how do I do that? And isn't it a bit strange that users are expected to update it? Mine under /etc seems to be the same as /lib/lib80211/regdomain.xml in the main branch.
(In reply to Piotr Pawel Stefaniak from comment #3) The lib/ version gets installed into /etc and etcupdate will update it. "Users" are not supposed to maintain it; "we are" like with any other bit FreeBSD is distributing. It's a lot of regulations to check sadly. Need to figure out a way to do a full once over check probably by now. While people in the past were also not entirely keen on the road Linux went down the wireless-regdb is ISC licensed and they do have references for the individual countries/parts of the world, so the links there are probably a good start as well: https://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git/tree/ I also still feel like I want more indentation or "including" on our XML file to make it more readable. The other thing I would love to find out is why we do split them up with the individual mode/flags. I once asked Sam and he said he had a good reason but could not remember. Maybe someone else knows. As the "duplication" as-is also makes it harder to maintain and the permutations we then generate go into the 100(s) if not 1000(s) by now and will only grow.
Assign to wireless for the moment in case someone thinks they want to do the update (so they are not waiting on me to do it).
So the regdomain.xml file basically is a copy of the ath_hal regdomain database in it's almost entirety, flags, layouts and all. It made searching easier (same as the ah_regdomain code) as you're looking for highest op mode, frequency width within bounds, flags matching some mask, etc. You didn't need to put anything other than range/mask operations in your regdomain code. I am however not married to it at all. Honestly, I'd rather we had a way to convert the wireless reg.db stuff to xml in the short term and then find a way to replace it entirely. Also when reporting bugs like this, please do list which regdomain you ARE in so we can see whether it's just lacking or missing. I know it's likely lacking in a lot of places, but eg FCC vs FCC3 are different regdomains because of how APs vs STAs behave (FCC3 includes the AP channels that require DFS, for example..)