From 37bf08621eee53f30b464be71876c02e235077ba Mon Sep 17 00:00:00 2001 From: Peter Oh Date: Tue, 17 Apr 2018 21:55:03 -0700 Subject: [PATCH 06/16] 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 @@ -1390,6 +1390,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 @@ -9270,6 +9270,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 @@ -262,6 +262,7 @@ static int wpa_supplicant_mesh_init(stru conf->ieee80211d = 1; conf->country[0] = wpa_s->conf->country[0]; conf->country[1] = wpa_s->conf->country[1]; + wpa_s->mesh_params->handle_dfs = 1; } bss->iconf = conf;