mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-14 02:19:06 +04:00
A radio that uses channel contexts gets no radar detection widths in its global interface combination, because DFS requires a combination with a single channel. A multi-radio radio always uses channel contexts, and its global combination multiplies the channel count by the number of radios. So it loses the radar detection widths as well, while each per-radio combination keeps them. mac80211 checks the channel of a radar detection against the global combination (ieee80211_check_combinations() with radio_idx -1 from _ieee80211_link_use_channel()). No combination matches, and every CAC on a multi-radio hwsim radio fails. hostapd reports it as "start_dfs_cac() failed" and disables the interface. cfg80211 exempts the global combination of a multi-radio wiphy from the single channel rule for DFS (wiphy_verify_iface_combinations()), since it only sums up the radios. Keep the radar detection widths there when each radio has one channel. With more than one channel per radio, clear them in the per-radio combination too, which cfg80211 would refuse otherwise. Signed-off-by: Felix Fietkau <nbd@nbd.name>