]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
mesh: Inform kernel driver about DFS handler in userspace
authorPeter Oh <peter.oh@bowerswilkins.com>
Tue, 30 Jun 2020 12:19:01 +0000 (14:19 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 30 Nov 2020 22:14:07 +0000 (00:14 +0200)
The kernel requires indication of DFS handler residing in user space
(NL80211_ATTR_HANDLE_DFS) to enable DFS channels.

Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
src/drivers/driver.h
src/drivers/driver_nl80211.c
wpa_supplicant/mesh.c

index 722e428f1eb174ed9cce6df59b4e43500d8d36ef..58a7bd776a5bcf974ac931f1831502dd15da5c14 100644 (file)
@@ -1559,6 +1559,7 @@ struct wpa_driver_mesh_join_params {
 #define WPA_DRIVER_MESH_FLAG_SAE_AUTH  0x00000004
 #define WPA_DRIVER_MESH_FLAG_AMPE      0x00000008
        unsigned int flags;
+       bool handle_dfs;
 };
 
 struct wpa_driver_set_key_params {
index 60d3557df982e0de7ef3b5863605e0c7c7f1d7b6..8ba1bf72f8495323d9c0681f23ad53eea51aace1 100644 (file)
@@ -10247,6 +10247,9 @@ static int nl80211_join_mesh(struct i802_bss *bss,
 
        wpa_printf(MSG_DEBUG, "  * flags=%08X", params->flags);
 
+       if (params->handle_dfs && nla_put_flag(msg, NL80211_ATTR_HANDLE_DFS))
+               goto fail;
+
        container = nla_nest_start(msg, NL80211_ATTR_MESH_SETUP);
        if (!container)
                goto fail;
index ab816b9c987ab712536fd5346ef701c76a733be3..80de01c8e71b0172883e9ae2f9402f92238058b5 100644 (file)
@@ -361,6 +361,7 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
                conf->country[0] = wpa_s->conf->country[0];
                conf->country[1] = wpa_s->conf->country[1];
                conf->country[2] = ' ';
+               wpa_s->mesh_params->handle_dfs = true;
        }
 
        bss->iconf = conf;