hostap/src
Hu Wang 09fb9b0cb0 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>
2021-06-07 17:42:56 +03:00
..
ap DFS offload: Use hostapd_is_dfs_required() to check if DFS required 2021-06-07 17:42:56 +03:00
common Add QCA vendor interface to transport CFR data using netlink events 2021-05-27 20:43:45 +03:00
crypto OpenSSL: Fix compilation for version < 1.1.0 without CONFIG_ECC 2021-04-10 12:48:08 +03:00
drivers Add AP mode ACS support for the 6 GHz band 2021-05-03 23:22:25 +03:00
eap_common EAP-SIM/AKA: Fix check for anonymous decorated identity 2021-03-20 16:28:44 +02:00
eap_peer EAP peer: Make EAP-Success handling more robust against race conditions 2021-03-15 00:45:20 +02:00
eap_server EAP server: Extend EAP-TLS Commitment Message use to PEAP and EAP-TTLS 2021-02-20 17:53:52 +02:00
eapol_auth build: Make more library things common 2020-10-12 20:20:35 +03:00
eapol_supp build: Make more library things common 2020-10-12 20:20:35 +03:00
fst FST: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
l2_packet build: Make more library things common 2020-10-12 20:20:35 +03:00
p2p P2P: Clear pending_listen_freq when stopping listen 2021-03-12 10:38:14 +02:00
pae MACsec: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
radius RADIUS client: Support SO_BINDTODEVICE 2021-02-27 10:51:15 +02:00
rsn_supp FILS: Fix PMKID derivation for OKC 2021-05-21 21:05:41 +03:00
tls TLS: Fix highest TLS version disabling with internal TLS client 2021-03-14 13:08:04 +02:00
utils wpabuf: Add helper functions for writing 64-bit integers 2021-03-07 21:31:41 +02:00
wps WPS: Share a single error handling path in wps_set_ie() 2021-03-28 18:26:19 +03:00
build.rules build: Rebuild libs all the time 2020-10-12 20:18:02 +03:00
lib.rules build: lib.rules: Add common-clean 2020-10-16 12:51:12 +03:00
Makefile build: Add a common-clean target 2020-10-10 12:48:41 +03:00
objs.mk build: Fix dependency file inclusion 2020-10-12 11:05:16 +03:00