WIRELESS REGULATORY INFRASTRUCTURE(9)
π Wireless regulatory infrastructure π
okay so welcome to the Kernel API Manual, section 9 bestie β this is the whole vibe of how wireless regulatory stuff actually gets done in the kernel, and honestly it's giving layers on layers π§β¨
πΈ the usual implementation (aka how most drivers do it) πΈ
The usual implementation is for a driver to read a device EEPROM to determine which regulatory domain it should be operating under, then looking up the allowable channels in a driver-local table and finally registering those channels in the wiphy structure.
like literally that's the whole ritual: EEPROM β‘οΈ driver-local channel table β‘οΈ wiphy. no cap, that's the pipeline π
π another set of compliance enforcement π
Another set of compliance enforcement is for drivers to use their own compliance limits which can be stored on the EEPROM. The host driver or firmware may ensure these are used.
so yeah, drivers can absolutely be main character about their own limits β the EEPROM holds them, and the host driver or the firmware is the one making sure they're actually respected π«Ά
β and then there's the extra layer β
In addition to all this we provide an extra layer of regulatory conformance. For drivers which do not have any regulatory information CRDA provides the complete regulatory solution. For others it provides a community effort on further restrictions to enhance compliance.
translate: no regulatory info at all? CRDA has you covered, complete solution, slay π drivers who do have their own info still get a lil community group-hug of extra restrictions to enhance compliance. it's giving teamwork fr fr π
π the note (read this one) π
Note: When number of rules --> infinity we will not be able to index on alpha2 any more, instead we'll probably have to rely on some SHA1 checksum of the regdomain for example.
so likeβ¦ if the rules ever go to infinity, indexing on alpha2 is over π and we'd probably have to rely on some SHA1 checksum of the regdomain for example. future-us problem, but it's in the notes so it's real, iykyk.
β¨ SEE ALSO β¨
Kernel file ./net/wireless/reg.c plus these iconic little functions, all in section 9, all linked below bestie:
enum reg_request_treatment(9)freq_in_rule_band(9)regdom_intersect(9)reg_process_hint_core(9)reg_process_hint_user(9)reg_process_hint_driver(9)reg_process_hint_country_ie(9)
π¦ mwah, that's the page! this one lives at ./net/wireless, dated October 2026, and it's page 9 of the Kernel API Manual β go read reg.c when you're done, ily, bye! ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms