aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/003-wpa_supplicant-handle-HT40-and-mode-downgrade-in-AP-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/hostapd/patches/003-wpa_supplicant-handle-HT40-and-mode-downgrade-in-AP-.patch')
-rw-r--r--package/network/services/hostapd/patches/003-wpa_supplicant-handle-HT40-and-mode-downgrade-in-AP-.patch102
1 files changed, 0 insertions, 102 deletions
diff --git a/package/network/services/hostapd/patches/003-wpa_supplicant-handle-HT40-and-mode-downgrade-in-AP-.patch b/package/network/services/hostapd/patches/003-wpa_supplicant-handle-HT40-and-mode-downgrade-in-AP-.patch
deleted file mode 100644
index f42620042d..0000000000
--- a/package/network/services/hostapd/patches/003-wpa_supplicant-handle-HT40-and-mode-downgrade-in-AP-.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 978a59514ccde994b5c06e1cbb49cc8cebe6381c Mon Sep 17 00:00:00 2001
-From: Markus Theil <markus.theil@tu-ilmenau.de>
-Date: Tue, 30 Jun 2020 13:53:19 +0200
-Subject: [PATCH 03/19] wpa_supplicant: handle HT40 and mode downgrade in AP
- mode
-
-This patch adds some missing pieces to the interface configuration
-of AP/mesh mode in wpa_supplicant.
- - check for secondary channel and HT40 capability
- - try to downgrade to 11b if 11g is not available
-Especially with the HT40 check, this code now performs all settings,
-which the deleted/duplicated mesh code did.
-
-Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
----
- wpa_supplicant/ap.c | 49 ++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 40 insertions(+), 9 deletions(-)
-
---- a/wpa_supplicant/ap.c
-+++ b/wpa_supplicant/ap.c
-@@ -134,6 +134,23 @@ no_vht:
- }
-
-
-+static struct hostapd_hw_modes *wpa_supplicant_find_hw_mode(struct wpa_supplicant *wpa_s,
-+ enum hostapd_hw_mode hw_mode)
-+{
-+ struct hostapd_hw_modes *mode = NULL;
-+ int i;
-+
-+ for (i = 0; i < wpa_s->hw.num_modes; i++) {
-+ if (wpa_s->hw.modes[i].mode == hw_mode) {
-+ mode = &wpa_s->hw.modes[i];
-+ break;
-+ }
-+ }
-+
-+ return mode;
-+}
-+
-+
- int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
- struct wpa_ssid *ssid,
- struct hostapd_config *conf)
-@@ -147,9 +164,6 @@ int wpa_supplicant_conf_ap_ht(struct wpa
- return -1;
- }
-
-- /* TODO: enable HT40 if driver supports it;
-- * drop to 11b if driver does not support 11g */
--
- /*
- * Enable HT20 if the driver supports it, by setting conf->ieee80211n
- * and a mask of allowed capabilities within conf->ht_capab.
-@@ -158,17 +172,27 @@ int wpa_supplicant_conf_ap_ht(struct wpa
- */
- if (wpa_s->hw.modes) {
- struct hostapd_hw_modes *mode = NULL;
-- int i, no_ht = 0;
-+ int no_ht = 0;
-
- wpa_printf(MSG_DEBUG,
- "Determining HT/VHT options based on driver capabilities (freq=%u chan=%u)",
- ssid->frequency, conf->channel);
-
-- for (i = 0; i < wpa_s->hw.num_modes; i++) {
-- if (wpa_s->hw.modes[i].mode == conf->hw_mode) {
-- mode = &wpa_s->hw.modes[i];
-- break;
-- }
-+ mode = wpa_supplicant_find_hw_mode(wpa_s, conf->hw_mode);
-+
-+ /* may drop drop to 11b if driver does not support 11g */
-+ if (!mode && conf->hw_mode == HOSTAPD_MODE_IEEE80211G) {
-+ conf->hw_mode = HOSTAPD_MODE_IEEE80211B;
-+ wpa_printf(MSG_INFO,
-+ "Try downgrade to IEEE 802.11b as 802.11g is not "
-+ "supported by the current hardware");
-+ mode = wpa_supplicant_find_hw_mode(wpa_s, conf->hw_mode);
-+ }
-+
-+ if (!mode) {
-+ wpa_printf(MSG_ERROR,
-+ "No match between requested and supported hw modes found");
-+ return -1;
- }
-
- #ifdef CONFIG_HT_OVERRIDES
-@@ -193,6 +217,13 @@ int wpa_supplicant_conf_ap_ht(struct wpa
- HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET),
- ssid->ht40);
- conf->ieee80211n = 1;
-+
-+ if (ssid->ht40 &&
-+ mode->ht_capab & HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET)
-+ conf->secondary_channel = ssid->ht40;
-+ else
-+ conf->secondary_channel = 0;
-+
- #ifdef CONFIG_P2P
- if (ssid->p2p_group &&
- conf->hw_mode == HOSTAPD_MODE_IEEE80211A &&