include $(TOPDIR)/rules.mk
PKG_NAME:=hostapd
-PKG_RELEASE:=3
+PKG_RELEASE:=2
PKG_SOURCE_URL:=http://w1.fi/hostap.git
PKG_SOURCE_PROTO:=git
local ifname="$1"
local freq="$2"
local htmode="$3"
- local noscan="$4"
_wpa_supplicant_common "$1"
wireless_vif_parse_encryption
append network_data "mode=5" "$N$T"
[ -n "$mesh_fwding" ] && append network_data "mesh_fwding=${mesh_fwding}" "$N$T"
[ -n "$channel" ] && wpa_supplicant_set_fixed_freq "$freq" "$htmode"
- [ "$noscan" = "1" ] && append network_data "noscan=1" "$N$T"
append wpa_key_mgmt "SAE"
scan_ssid=""
}
+++ /dev/null
-From 838225f2319348e430b553fd9bb3680bd7434ae3 Mon Sep 17 00:00:00 2001
-From: Peter Oh <peter.oh@bowerswilkins.com>
-Date: Wed, 18 Apr 2018 14:14:18 -0700
-Subject: [PATCH 1/2] mesh: add VHT_CHANWIDTH_USE_HT to max_oper_chwidth
-
-Channel width in VHT mode refers HT capability when
-the width goes down to below 80MHz, hence add checking
-HT channel width to its max operation channel width.
-So that mesh has capable to select bandwidth below 80Mhz.
-
-Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
----
- wpa_supplicant/config.c | 1 +
- wpa_supplicant/config_ssid.h | 1 +
- wpa_supplicant/wpa_supplicant.c | 3 +++
- 3 files changed, 5 insertions(+)
-
-diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
-index f65bbb02f..7e8f014cc 100644
---- a/wpa_supplicant/config.c
-+++ b/wpa_supplicant/config.c
-@@ -2798,6 +2798,7 @@ void wpa_config_set_network_defaults(struct wpa_ssid *ssid)
- ssid->mka_priority = DEFAULT_PRIO_NOT_KEY_SERVER;
- #endif /* CONFIG_MACSEC */
- ssid->mac_addr = -1;
-+ ssid->max_oper_chwidth = (u8)DEFAULT_MAX_OPER_CHWIDTH;
- }
-
-
-diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h
-index 9fd56c32f..2ddb777b2 100644
---- a/wpa_supplicant/config_ssid.h
-+++ b/wpa_supplicant/config_ssid.h
-@@ -37,6 +37,7 @@
- #define DEFAULT_AMPDU_FACTOR -1 /* no change */
- #define DEFAULT_AMPDU_DENSITY -1 /* no change */
- #define DEFAULT_USER_SELECTED_SIM 1
-+#define DEFAULT_MAX_OPER_CHWIDTH -1
-
- struct psk_list_entry {
- struct dl_list list;
-diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
-index dcd787bec..ca893f942 100644
---- a/wpa_supplicant/wpa_supplicant.c
-+++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2293,6 +2293,9 @@ void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
- vht_caps |= VHT_CAP_SUPP_CHAN_WIDTH_160MHZ;
- seg0 = 114;
- }
-+ } else if (ssid->max_oper_chwidth == VHT_CHANWIDTH_USE_HT) {
-+ chwidth = VHT_CHANWIDTH_USE_HT;
-+ seg0 = vht80[j] + 2;
- }
-
- if (hostapd_set_freq_params(&vht_freq, mode->mode, freq->freq,
---
-2.17.0
-
+++ /dev/null
-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
-
+++ /dev/null
-Index: hostapd-2018-04-09-fa617ee6/wpa_supplicant/config.c
-===================================================================
---- hostapd-2018-04-09-fa617ee6.orig/wpa_supplicant/config.c
-+++ hostapd-2018-04-09-fa617ee6/wpa_supplicant/config.c
-@@ -2216,6 +2216,7 @@ static const struct parse_data ssid_fiel
- #else /* CONFIG_MESH */
- { INT_RANGE(mode, 0, 4) },
- #endif /* CONFIG_MESH */
-+ { INT_RANGE(noscan, 0, 1) },
- { INT_RANGE(proactive_key_caching, 0, 1) },
- { INT_RANGE(disabled, 0, 2) },
- { STR(id_str) },
-Index: hostapd-2018-04-09-fa617ee6/wpa_supplicant/config_file.c
-===================================================================
---- hostapd-2018-04-09-fa617ee6.orig/wpa_supplicant/config_file.c
-+++ hostapd-2018-04-09-fa617ee6/wpa_supplicant/config_file.c
-@@ -816,6 +816,7 @@ static void wpa_config_write_network(FIL
- #endif /* IEEE8021X_EAPOL */
- INT(mode);
- INT(no_auto_peer);
-+ INT(noscan);
- INT(mesh_fwding);
- INT(frequency);
- INT(fixed_freq);
-Index: hostapd-2018-04-09-fa617ee6/wpa_supplicant/mesh.c
-===================================================================
---- hostapd-2018-04-09-fa617ee6.orig/wpa_supplicant/mesh.c
-+++ hostapd-2018-04-09-fa617ee6/wpa_supplicant/mesh.c
-@@ -287,6 +287,8 @@ static int wpa_supplicant_mesh_init(stru
- frequency);
- goto out_free;
- }
-+ if (ssid->noscan)
-+ conf->noscan = 1;
- if (ssid->ht40)
- conf->secondary_channel = ssid->ht40;
- if (conf->hw_mode == HOSTAPD_MODE_IEEE80211A && ssid->vht) {
-Index: hostapd-2018-04-09-fa617ee6/wpa_supplicant/wpa_supplicant.c
-===================================================================
---- hostapd-2018-04-09-fa617ee6.orig/wpa_supplicant/wpa_supplicant.c
-+++ hostapd-2018-04-09-fa617ee6/wpa_supplicant/wpa_supplicant.c
-@@ -2024,12 +2024,12 @@ void ibss_mesh_setup_freq(struct wpa_sup
- {
- enum hostapd_hw_mode hw_mode;
- struct hostapd_hw_modes *mode = NULL;
-- int ht40plus[] = { 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157,
-+ int ht40plus[] = { 1, 2, 3, 4, 5, 6, 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157,
- 184, 192 };
- int vht80[] = { 36, 52, 100, 116, 132, 149 };
- struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL;
- u8 channel;
-- int i, chan_idx, ht40 = -1, res, obss_scan = 1;
-+ int i, chan_idx, ht40 = -1, res, obss_scan = !(ssid->noscan);
- unsigned int j, k;
- struct hostapd_freq_params vht_freq;
- int chwidth, seg0, seg1;
-@@ -2099,7 +2099,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
- return;
-
- /* Setup higher BW only for 5 GHz */
-- if (mode->mode != HOSTAPD_MODE_IEEE80211A)
-+ if (mode->mode != HOSTAPD_MODE_IEEE80211A && !(ssid->noscan))
- return;
-
- for (chan_idx = 0; chan_idx < mode->num_channels; chan_idx++) {