[RFC,5/5] hostapd: DFS for channel switch in repeater mode
diff mbox series

Message ID 20200128150940.17018-6-sergey.matyukevich.os@quantenna.com
State Accepted
Headers show
Series
  • hostapd: DFS channels in chan_switch command ane event
Related show

Commit Message

Sergey Matyukevich Jan. 28, 2020, 3:09 p.m. UTC
In repeater mode remote AP may request channel switch to a new channel.
Check if DFS is required for the new channel before proceeding with
normal AP operations. Start CAC procedure if radar detection is
required and channel is not yet marked as available.

Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
---
 src/ap/drv_callbacks.c | 7 +++++++
 1 file changed, 7 insertions(+)

Patch
diff mbox series

diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
index fdd845573..6575eaa9f 100644
--- a/src/ap/drv_callbacks.c
+++ b/src/ap/drv_callbacks.c
@@ -906,6 +906,13 @@  void hostapd_event_ch_switch(struct hostapd_data *hapd, int freq, int ht,
 	} else if (hapd->iface->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD) {
 		wpa_msg(hapd->msg_ctx, MSG_INFO, AP_CSA_FINISHED
 			"freq=%d dfs=%d", freq, is_dfs);
+	} else if (is_dfs) {
+		if (hostapd_is_dfs_required(hapd->iface) &&
+		    !hostapd_is_dfs_chan_available(hapd->iface) &&
+		    !hapd->iface->cac_started) {
+			hostapd_disable_iface(hapd->iface);
+			hostapd_enable_iface(hapd->iface);
+		}
 	}
 
 	for (i = 0; i < hapd->iface->num_bss; i++)