[PATCH] hostapd: allow disabling background radar
greearb at candelatech.com
greearb at candelatech.com
Mon Apr 11 14:54:02 PDT 2022
From: Ben Greear <greearb at candelatech.com>
To work around buggy drivers and/or for any other user preference.
Signed-off-by: Ben Greear <greearb at candelatech.com>
---
hostapd/config_file.c | 2 ++
hostapd/hostapd.conf | 5 +++++
src/ap/ap_config.c | 1 +
src/ap/ap_config.h | 1 +
src/ap/dfs.c | 3 ++-
5 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index 81bfb6ef7..998529bcc 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -3210,6 +3210,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
conf->acs_freq_list_present = 1;
} else if (os_strcmp(buf, "acs_exclude_6ghz_non_psc") == 0) {
conf->acs_exclude_6ghz_non_psc = atoi(pos);
+ } else if (os_strcmp(buf, "disable_background_radar") == 0) {
+ conf->disable_background_radar = atoi(pos);
} else if (os_strcmp(buf, "min_tx_power") == 0) {
int val = atoi(pos);
diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
index fb2a3e83e..07fc625cb 100644
--- a/hostapd/hostapd.conf
+++ b/hostapd/hostapd.conf
@@ -225,6 +225,11 @@ channel=1
# Default behavior is to include all PSC and non-PSC channels.
#acs_exclude_6ghz_non_psc=1
+# Disable background radar feature, even if radio supports it.
+# 0: Leave active (default)
+# 1: Disable it.
+#disable_background_radar=1
+
# Set minimum permitted max TX power (in dBm) for ACS and DFS channel selection.
# (default 0, i.e., not constraint)
#min_tx_power=20
diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
index f33a25a18..3cae18626 100644
--- a/src/ap/ap_config.c
+++ b/src/ap/ap_config.c
@@ -250,6 +250,7 @@ struct hostapd_config * hostapd_config_defaults(void)
conf->ap_table_max_size = 255;
conf->ap_table_expiration_time = 60;
conf->track_sta_max_age = 180;
+ conf->disable_background_radar = 0;
#ifdef CONFIG_TESTING_OPTIONS
conf->ignore_probe_probability = 0.0;
diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
index d1f387221..4ff0382c4 100644
--- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h
@@ -974,6 +974,7 @@ struct hostapd_config {
u8 min_tx_power;
enum hostapd_hw_mode hw_mode; /* HOSTAPD_MODE_IEEE80211A, .. */
int acs_exclude_6ghz_non_psc;
+ int disable_background_radar;
enum {
LONG_PREAMBLE = 0,
SHORT_PREAMBLE = 1
diff --git a/src/ap/dfs.c b/src/ap/dfs.c
index 2c92e1dd3..9384b0bca 100644
--- a/src/ap/dfs.c
+++ b/src/ap/dfs.c
@@ -34,7 +34,8 @@ dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel,
static bool dfs_use_radar_background(struct hostapd_iface *iface)
{
- return iface->drv_flags2 & WPA_DRIVER_RADAR_BACKGROUND;
+ return (iface->drv_flags2 & WPA_DRIVER_RADAR_BACKGROUND) &&
+ !iface->conf->disable_background_radar;
}
--
2.20.1
More information about the Hostap
mailing list