]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
hostapd: DFS for channel switch in repeater mode
authorSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Tue, 28 Jan 2020 15:09:54 +0000 (15:09 +0000)
committerJouni Malinen <j@w1.fi>
Sun, 29 Mar 2020 18:15:16 +0000 (21:15 +0300)
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

index 64cbd84d85552e4f98d7fa0c95313ef5f4a5926e..559bb87c213e726cddcb3ecd9432ab196292ba42 100644 (file)
@@ -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++)