From 91498a12253bc1fc17ee5af544882106ccfa1759 Mon Sep 17 00:00:00 2001 From: Sergey Matyukevich Date: Tue, 28 Jan 2020 15:09:54 +0000 Subject: [PATCH] hostapd: DFS for channel switch in repeater mode 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 --- src/ap/drv_callbacks.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index 64cbd84d8..559bb87c2 100644 --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c @@ -945,6 +945,12 @@ 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 && + 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++) -- 2.39.2