09fb9b0cb0
hostapd_handle_dfs_offload() is the DFS handler for the offloaded case, in which ieee80211_is_dfs() is used to check if the configured frequency requires DFS or not. When the configured channel width is not 20 (e.g., 160), ieee80211_is_dfs() will not checked adjacent freqs, so it possibly makes wrong conclusion for whether DFS is required. hostapd_is_dfs_required() does similar thing with ieee80211_is_dfs() except it supports checking whether the configured frequency and its adjacent frequencies require DFS. So hostapd_is_dfs_required() is a more robust and better option than ieee80211_is_dfs() to check DFS. The issue is hostapd_is_dfs_required() is for non-offload case due to the check of the configuration parameter ieee80211h. Add a check for WPA_DRIVER_FLAGS_DFS_OFFLOAD to make it support the DFS offload case (i.e., ieee80211h=0) as well. For example, configuring the AP to start at freq=5240 with channel width 160: - Existing hostapd checks freq=5240 is non-DFS, hence skip DFS CAC and transition to AP-Enabled which volatiles DFS-RADAR detection. LOG: "hostapd : hostapd_handle_dfs_offload: freq 5240 MHz does not require DFS. Continue channel/AP setup" - This commit checks freq=5240 and its adjacent freqs are DFS required, hence remains in DFS state until DFS CAC completed. LOG: "hostapd : hostapd_handle_dfs_offload: freq 5240 MHz requires DFS for 4 chans" Signed-off-by: Hu Wang <huw@codeaurora.org> |
||
---|---|---|
.. | ||
ap | ||
common | ||
crypto | ||
drivers | ||
eap_common | ||
eap_peer | ||
eap_server | ||
eapol_auth | ||
eapol_supp | ||
fst | ||
l2_packet | ||
p2p | ||
pae | ||
radius | ||
rsn_supp | ||
tls | ||
utils | ||
wps | ||
build.rules | ||
lib.rules | ||
Makefile | ||
objs.mk |