diff mbox series

[v5,05/17] mesh: reflect country setting to mesh configuration

Message ID d28f1cbc0a91ad18fe5a46e966594b45d5a357e0.1527629631.git.peter.oh@bowerswilkins.com
State Changes Requested
Headers show
Series mesh: enable DFS channels in mesh mode | expand

Commit Message

Peter Oh May 29, 2018, 9:39 p.m. UTC
From: Peter Oh <peter.oh@bowerswilkins.com>

wpa_supplicant configuration has country parameter that is
supposed to be used in AP mode to indicate supporting 802.11h
and 802.11d. Reflect this configuration to Mesh also since Mesh
is required to support 802.11h and 802.11d to use DFS channels.

Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
---
 wpa_supplicant/mesh.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Daniel Golle May 29, 2018, 11:59 p.m. UTC | #1
Hi Peter,

On Tue, May 29, 2018 at 02:39:09PM -0700, peter.oh@bowerswilkins.com wrote:
> From: Peter Oh <peter.oh@bowerswilkins.com>
> 
> wpa_supplicant configuration has country parameter that is
> supposed to be used in AP mode to indicate supporting 802.11h
> and 802.11d. Reflect this configuration to Mesh also since Mesh
> is required to support 802.11h and 802.11d to use DFS channels.
> 
> Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
> ---
>  wpa_supplicant/mesh.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c
> index 0bc2b98..f457615 100644
> --- a/wpa_supplicant/mesh.c
> +++ b/wpa_supplicant/mesh.c
> @@ -255,6 +255,14 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
>  	bss->conf->start_disabled = 1;
>  	bss->conf->mesh = MESH_ENABLED;
>  	bss->conf->ap_max_inactivity = wpa_s->conf->mesh_max_inactivity;
> +
> +	if (ieee80211_is_dfs(ssid->frequency) && wpa_s->conf->country[0]) {
This should rather be something like:
 +      if (ieee80211_is_dfs(ssid->frequency, wpa_s->hw.modes,
 +                           wpa_s->hw.num_modes) && wpa_s->conf->country[0]) {

to match the changed function prototype since commit
d239ab396 DFS: Mark channels required DFS based on reg-domain info from the driver

The same applies to other usage of ieee80211_is_dfs() in
[PATCH 15/17] mesh: do not use offchan mgmt tx on DFS

where the fix is a bit more tricky so I'll comment in a separate reply.


Cheers


Daniel


> +		conf->ieee80211h = 1;
> +		conf->ieee80211d = 1;
> +		conf->country[0] = wpa_s->conf->country[0];
> +		conf->country[1] = wpa_s->conf->country[1];
> +	}
> +
>  	bss->iconf = conf;
>  	ifmsh->conf = conf;
>  
> -- 
> 2.7.4
> 
> 
> _______________________________________________
> Hostap mailing list
> Hostap@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/hostap
diff mbox series

Patch

diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c
index 0bc2b98..f457615 100644
--- a/wpa_supplicant/mesh.c
+++ b/wpa_supplicant/mesh.c
@@ -255,6 +255,14 @@  static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
 	bss->conf->start_disabled = 1;
 	bss->conf->mesh = MESH_ENABLED;
 	bss->conf->ap_max_inactivity = wpa_s->conf->mesh_max_inactivity;
+
+	if (ieee80211_is_dfs(ssid->frequency) && wpa_s->conf->country[0]) {
+		conf->ieee80211h = 1;
+		conf->ieee80211d = 1;
+		conf->country[0] = wpa_s->conf->country[0];
+		conf->country[1] = wpa_s->conf->country[1];
+	}
+
 	bss->iconf = conf;
 	ifmsh->conf = conf;