From 593602b7f14be5c2695979639764b1c50f01bbec Mon Sep 17 00:00:00 2001 From: Peter Oh Date: Mon, 27 Aug 2018 14:28:49 -0700 Subject: [PATCH 7/7] mesh: inform kernel driver DFS handler in userspace NL80211_ATTR_HANDLE_DFS is required by kerenel space to enable DFS channels that indicates DFS handler resides in userspace. Signed-off-by: Peter Oh --- src/drivers/driver.h | 1 + src/drivers/driver_nl80211.c | 3 +++ wpa_supplicant/mesh.c | 1 + 3 files changed, 5 insertions(+) --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -1477,6 +1477,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; + u8 handle_dfs; }; /** --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -9624,6 +9624,9 @@ static int nl80211_join_mesh(struct i802 wpa_printf(MSG_DEBUG, " * flags=%08X", params->flags); + if (params->handle_dfs) + if (nla_put_flag(msg, NL80211_ATTR_HANDLE_DFS)) + goto fail; container = nla_nest_start(msg, NL80211_ATTR_MESH_SETUP); if (!container) goto fail; --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c @@ -309,6 +309,7 @@ static int wpa_supplicant_mesh_init(stru 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 = 1; } bss->iconf = conf;