diff options
Diffstat (limited to 'package/network/services/hostapd/patches/032-mesh-implement-use-of-VHT20-config-in-mesh-mode.patch')
-rw-r--r-- | package/network/services/hostapd/patches/032-mesh-implement-use-of-VHT20-config-in-mesh-mode.patch | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/032-mesh-implement-use-of-VHT20-config-in-mesh-mode.patch b/package/network/services/hostapd/patches/032-mesh-implement-use-of-VHT20-config-in-mesh-mode.patch new file mode 100644 index 0000000..3bd6eaf --- /dev/null +++ b/package/network/services/hostapd/patches/032-mesh-implement-use-of-VHT20-config-in-mesh-mode.patch @@ -0,0 +1,87 @@ +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(-) + +diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c +index ca893f942..8429cfd43 100644 +--- a/wpa_supplicant/wpa_supplicant.c ++++ b/wpa_supplicant/wpa_supplicant.c +@@ -2132,9 +2132,15 @@ void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s, + if (pri_chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR)) + return; + ++ 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- */ +@@ -2159,8 +2165,6 @@ void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s, + if (sec_chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR)) + return; + +- freq->channel = pri_chan->chan; +- + if (ht40 == -1) { + if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS)) + return; +@@ -2204,6 +2208,7 @@ void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s, + 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); +@@ -2295,7 +2300,10 @@ void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s, + } + } 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, +-- +2.17.0 + |