初始化过程:
cfg80211_init
-->regulatory_init
-->regulatory_hint_core
wiphy_register
如果驱动有配置reg信息,则优先使用驱动的配置
如果驱动没有配置reg,并且上层没有传下country_ie,则使用cfg80211默认的reg “00”
最后配置生效的地方:
使用流程:
扫描流程:ieee80211_prep_hw_scan
会把支持的reg信息加入到req当中,具体函数ieee80211_build_preq_ies
beacon帧处理:ieee80211_rx_mgmt_beacon
连接帧处理:ieee80211_send_assoc
ieee80211_add_ht_ie
宏说明:NL80211_RRF_AUTO_BW
如果reg的flag包含了这个flag,则在解析信道的时候会进行组合,然后得出最大带宽
例如下reg组合:
第二个REG_RULE中带有flag NL80211_RRF_AUTO_BW,这带宽会把整个组合中的最大带宽计算出来,以为第二个REG_RULE的start_frq小于第一个REG_RULE的end_frqs,且第三个REG_RULE的start_frq小于第二个end_frq,所以最后得出的带宽为2402--2494;