blob: e0da0507dc9be226b71c5b94dedb5a9d35cc4e34 [file] [log] [blame]
From bb978b9e6148d2bcf81b2a09c282a9c40cfc855d Mon Sep 17 00:00:00 2001
From: "himanshu.goyal" <himanshu.goyal@mediatek.com>
Date: Fri, 3 Mar 2023 12:45:42 +0800
Subject: [PATCH 25/69] mtk: hostapd: Mark DFS channel as available for CSA.
---
hostapd/ctrl_iface.c | 10 ++++++++++
hostapd/hostapd_cli.c | 2 +-
src/ap/ctrl_iface_ap.c | 1 +
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
index e1c8d4693..f9cac5fbb 100644
--- a/hostapd/ctrl_iface.c
+++ b/hostapd/ctrl_iface.c
@@ -2776,6 +2776,16 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
break;
}
+ if (settings.freq_params.radar_background) {
+ hostapd_dfs_sta_update_state(iface,
+ settings.freq_params.freq,
+ settings.freq_params.ht_enabled,
+ settings.freq_params.sec_channel_offset,
+ bandwidth, settings.freq_params.center_freq1,
+ settings.freq_params.center_freq2,
+ HOSTAPD_CHAN_DFS_AVAILABLE);
+ }
+
if (settings.freq_params.center_freq1)
dfs_range += hostapd_is_dfs_overlap(
iface, bandwidth, settings.freq_params.center_freq1);
diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
index 847f867ab..da9c0f931 100644
--- a/hostapd/hostapd_cli.c
+++ b/hostapd/hostapd_cli.c
@@ -1775,7 +1775,7 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
"<addr> = send QoS Map Configure frame" },
{ "chan_switch", hostapd_cli_cmd_chan_switch, NULL,
"<cs_count> <freq> [sec_channel_offset=] [center_freq1=]\n"
- " [center_freq2=] [bandwidth=] [blocktx] [ht|vht]\n"
+ " [center_freq2=] [bandwidth=] [blocktx] [ht|vht] [skip_cac]\n"
" = initiate channel switch announcement" },
{ "notify_cw_change", hostapd_cli_cmd_notify_cw_change, NULL,
"<channel_width> = 0 - 20 MHz, 1 - 40 MHz, 2 - 80 MHz, 3 - 160 MHz" },
diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
index fbceb859d..66dce41eb 100644
--- a/src/ap/ctrl_iface_ap.c
+++ b/src/ap/ctrl_iface_ap.c
@@ -1081,6 +1081,7 @@ int hostapd_parse_csa_settings(const char *pos,
settings->freq_params.vht_enabled = !!os_strstr(pos, " vht");
settings->freq_params.he_enabled = !!os_strstr(pos, " he");
settings->freq_params.eht_enabled = !!os_strstr(pos, " eht");
+ settings->freq_params.radar_background = !!os_strstr(pos, " skip_cac");
settings->block_tx = !!os_strstr(pos, " blocktx");
#undef SET_CSA_SETTING
#undef SET_CSA_SETTING_EXT
--
2.39.2