2018-04-20 05:41:03 +00:00
|
|
|
From 24fc73b2470ff79cd8c92e029ca785c8e95a204c Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
|
|
|
Date: Wed, 18 Apr 2018 14:14:19 -0700
|
|
|
|
Subject: [PATCH 2/2] mesh: implement use of VHT20 config in mesh mode
|
|
|
|
|
|
|
|
mesh in VHT mode is supposed to be able to use any bandwidth
|
|
|
|
that 11ac supports, but we don't have a way to set VHT20
|
|
|
|
although there are parameters that are supposed to be used.
|
|
|
|
This patch along with the patch of
|
|
|
|
"mesh: add VHT_CHANWIDTH_USE_HT to max_oper_chwidth" makes mesh
|
|
|
|
available to use of any bandwidth using combination of
|
|
|
|
existing parameters like below shown.
|
|
|
|
|
|
|
|
VHT80:
|
|
|
|
default
|
|
|
|
do not set any parameters
|
|
|
|
VHT40:
|
|
|
|
max_oper_chwidth = 0
|
|
|
|
VHT20:
|
|
|
|
max_oper_chwidth=0
|
|
|
|
disable_ht40=1
|
|
|
|
HT40:
|
|
|
|
disable_vht = 1
|
|
|
|
HT20:
|
|
|
|
disable_ht40 = 1
|
|
|
|
disable HT:
|
|
|
|
disable_ht = 1
|
|
|
|
|
|
|
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
|
|
|
---
|
|
|
|
wpa_supplicant/wpa_supplicant.c | 18 +++++++++++++-----
|
|
|
|
1 file changed, 13 insertions(+), 5 deletions(-)
|
|
|
|
|
|
|
|
--- a/wpa_supplicant/wpa_supplicant.c
|
|
|
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
2018-05-12 19:08:18 +00:00
|
|
|
@@ -2117,9 +2117,15 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
|
|
|
if (!dfs_enabled)
|
|
|
|
return;
|
2018-04-20 05:41:03 +00:00
|
|
|
|
|
|
|
+ freq->channel = pri_chan->chan;
|
|
|
|
+
|
|
|
|
#ifdef CONFIG_HT_OVERRIDES
|
|
|
|
- if (ssid->disable_ht40)
|
|
|
|
- return;
|
|
|
|
+ if (ssid->disable_ht40) {
|
|
|
|
+ if (ssid->disable_vht)
|
|
|
|
+ return;
|
|
|
|
+ else
|
|
|
|
+ goto skip_ht40;
|
|
|
|
+ }
|
|
|
|
#endif /* CONFIG_HT_OVERRIDES */
|
|
|
|
|
|
|
|
/* Check/setup HT40+/HT40- */
|
2018-05-12 19:08:18 +00:00
|
|
|
@@ -2147,8 +2153,6 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
|
|
|
if (!dfs_enabled)
|
|
|
|
return;
|
2018-04-20 05:41:03 +00:00
|
|
|
|
|
|
|
- freq->channel = pri_chan->chan;
|
|
|
|
-
|
|
|
|
if (ht40 == -1) {
|
|
|
|
if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS))
|
|
|
|
return;
|
2018-05-12 19:08:18 +00:00
|
|
|
@@ -2192,6 +2196,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
2018-04-20 05:41:03 +00:00
|
|
|
wpa_scan_results_free(scan_res);
|
|
|
|
}
|
|
|
|
|
|
|
|
+skip_ht40:
|
|
|
|
wpa_printf(MSG_DEBUG,
|
|
|
|
"IBSS/mesh: setup freq channel %d, sec_channel_offset %d",
|
|
|
|
freq->channel, freq->sec_channel_offset);
|
2018-05-12 19:08:18 +00:00
|
|
|
@@ -2287,7 +2292,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
2018-04-20 05:41:03 +00:00
|
|
|
}
|
|
|
|
} else if (ssid->max_oper_chwidth == VHT_CHANWIDTH_USE_HT) {
|
|
|
|
chwidth = VHT_CHANWIDTH_USE_HT;
|
|
|
|
- seg0 = vht80[j] + 2;
|
|
|
|
+ if (ssid->disable_ht40)
|
|
|
|
+ seg0 = 0;
|
|
|
|
+ else
|
|
|
|
+ seg0 = vht80[j] + 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (hostapd_set_freq_params(&vht_freq, mode->mode, freq->freq,
|