DFS offload: Use hostapd_is_dfs_required() to check if DFS required
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>master
parent
e8662e9d44
commit
09fb9b0cb0
Loading…
Reference in New Issue