[PATCH] ACS: always discard DFS channels when DFS isn't allowed

Nicolas Escande nico.escande at gmail.com
Thu Mar 24 05:39:06 PDT 2022


When you shouldn't use DFS channels (either disabled in conf or the
driver doesn't support radar detection) we normaly mark all DFS cahnnels
as disabled to prevent them from being used.
However, there is a loophole when the driver exports
WPA_DRIVER_FLAGS_DFS_OFFLOAD, this step is bypassed.
Just because the driver handles DFS event without hostapd's help
shouldn't impact ACS in any way, it is different from ACS offload.

This led me to intanses where an AP would be brought up on a DFS
channel, selected by ACS, while it shouldn't have (ieee80211h=0)

Signed-off-by: Nicolas Escande <nico.escande at gmail.com>
---
 src/ap/hw_features.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c
index 2b66ab563..406f2b38f 100644
--- a/src/ap/hw_features.c
+++ b/src/ap/hw_features.c
@@ -119,9 +119,7 @@ int hostapd_get_hw_features(struct hostapd_iface *iface)
 			     HOSTAPD_CHAN_RADAR) && dfs_enabled) {
 				dfs = 1;
 			} else if (((feature->channels[j].flag &
-				     HOSTAPD_CHAN_RADAR) &&
-				    !(iface->drv_flags &
-				      WPA_DRIVER_FLAGS_DFS_OFFLOAD)) ||
+				     HOSTAPD_CHAN_RADAR) && !dfs_enabled) ||
 				   (feature->channels[j].flag &
 				    HOSTAPD_CHAN_NO_IR)) {
 				feature->channels[j].flag |=
-- 
2.35.1




More information about the Hostap mailing list