hostapd: update packaging and patches
Clean up conflicts/provides/depends hell and add PROVIDES for eapol-test variants while at it. Update mesh-DFS patchset from Peter Oh to v5 (with local fixes) which allows to drop two revert-patches for upstream commits which previously were necessary to un-break mesh-DFS support. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
dad39249fb
commit
78f1974bc5
37 changed files with 417 additions and 496 deletions
|
@ -4,8 +4,10 @@ config WPA_SUPPLICANT_NO_TIMESTAMP_CHECK
|
||||||
depends on PACKAGE_wpa-supplicant || \
|
depends on PACKAGE_wpa-supplicant || \
|
||||||
PACKAGE_wpa-supplicant-openssl || \
|
PACKAGE_wpa-supplicant-openssl || \
|
||||||
PACKAGE_wpa-supplicant-wolfssl || \
|
PACKAGE_wpa-supplicant-wolfssl || \
|
||||||
PACKAGE_wpa-supplicant-mesh || \
|
PACKAGE_wpa-supplicant-mesh-openssl || \
|
||||||
|
PACKAGE_wpa-supplicant-mesh-wolfssl || \
|
||||||
PACKAGE_wpa-supplicant-mini || \
|
PACKAGE_wpa-supplicant-mini || \
|
||||||
|
PACKAGE_wpa-supplicant-p2p || \
|
||||||
PACKAGE_wpad || \
|
PACKAGE_wpad || \
|
||||||
PACKAGE_wpad-openssl || \
|
PACKAGE_wpad-openssl || \
|
||||||
PACKAGE_wpad-wolfssl || \
|
PACKAGE_wpad-wolfssl || \
|
||||||
|
@ -22,8 +24,10 @@ config WPA_RFKILL_SUPPORT
|
||||||
depends on PACKAGE_wpa-supplicant || \
|
depends on PACKAGE_wpa-supplicant || \
|
||||||
PACKAGE_wpa-supplicant-openssl || \
|
PACKAGE_wpa-supplicant-openssl || \
|
||||||
PACKAGE_wpa-supplicant-wolfssl || \
|
PACKAGE_wpa-supplicant-wolfssl || \
|
||||||
PACKAGE_wpa-supplicant-mesh || \
|
PACKAGE_wpa-supplicant-mesh-openssl || \
|
||||||
|
PACKAGE_wpa-supplicant-mesh-wolfssl || \
|
||||||
PACKAGE_wpa-supplicant-mini || \
|
PACKAGE_wpa-supplicant-mini || \
|
||||||
|
PACKAGE_wpa-supplicant-p2p || \
|
||||||
PACKAGE_wpad || \
|
PACKAGE_wpad || \
|
||||||
PACKAGE_wpad-openssl || \
|
PACKAGE_wpad-openssl || \
|
||||||
PACKAGE_wpad-wolfssl || \
|
PACKAGE_wpad-wolfssl || \
|
||||||
|
@ -37,8 +41,10 @@ config WPA_MSG_MIN_PRIORITY
|
||||||
depends on PACKAGE_wpa-supplicant || \
|
depends on PACKAGE_wpa-supplicant || \
|
||||||
PACKAGE_wpa-supplicant-openssl || \
|
PACKAGE_wpa-supplicant-openssl || \
|
||||||
PACKAGE_wpa-supplicant-wolfssl || \
|
PACKAGE_wpa-supplicant-wolfssl || \
|
||||||
PACKAGE_wpa-supplicant-mesh || \
|
PACKAGE_wpa-supplicant-mesh-openssl || \
|
||||||
|
PACKAGE_wpa-supplicant-mesh-wolfssl || \
|
||||||
PACKAGE_wpa-supplicant-mini || \
|
PACKAGE_wpa-supplicant-mini || \
|
||||||
|
PACKAGE_wpa-supplicant-p2p || \
|
||||||
PACKAGE_wpad || \
|
PACKAGE_wpad || \
|
||||||
PACKAGE_wpad-openssl || \
|
PACKAGE_wpad-openssl || \
|
||||||
PACKAGE_wpad-wolfssl || \
|
PACKAGE_wpad-wolfssl || \
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=hostapd
|
PKG_NAME:=hostapd
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=3
|
||||||
|
|
||||||
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
|
@ -32,6 +32,23 @@ PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_DRIVER_11N_SUPPORT \
|
CONFIG_DRIVER_11N_SUPPORT \
|
||||||
CONFIG_DRIVER_11AC_SUPPORT \
|
CONFIG_DRIVER_11AC_SUPPORT \
|
||||||
|
|
||||||
|
WPAD_PROVIDERS:=wpad-mini wpad wpad-openssl wpad-wolfssl \
|
||||||
|
wpad-mesh-openssl wpad-mesh-wolfssl
|
||||||
|
|
||||||
|
SUPPLICANT_ONLY_PROVIDERS:=wpa-supplicant-mini wpa-supplicant-p2p \
|
||||||
|
wpa-supplicant wpa-supplicant-openssl wpa-supplicant-wolfssl \
|
||||||
|
wpa-supplicant-mesh-openssl wpa-supplicant-mesh-wolfssl
|
||||||
|
|
||||||
|
HOSTAPD_ONLY_PROVIDERS:=hostapd-mini hostapd hostapd-openssl hostapd-wolfssl
|
||||||
|
|
||||||
|
EAPOL_TEST_PROVIDERS:=eapol-test eapol-test-openssl eapol-test-wolfssl
|
||||||
|
|
||||||
|
SUPPLICANT_PROVIDERS:=$(WPAD_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS)
|
||||||
|
HOSTAPD_PROVIDERS:=$(WPAD_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS)
|
||||||
|
ANY_SUPPLICANT_PROVIDERS:=$(WPAD_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS)
|
||||||
|
ANY_HOSTAPD_PROVIDERS:=$(WPAD_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS)
|
||||||
|
ANY_PROVIDERS:=$(WPAD_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS)
|
||||||
|
|
||||||
LOCAL_TYPE=$(strip \
|
LOCAL_TYPE=$(strip \
|
||||||
$(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \
|
$(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \
|
||||||
$(if $(findstring supplicant,$(BUILD_VARIANT)),supplicant, \
|
$(if $(findstring supplicant,$(BUILD_VARIANT)),supplicant, \
|
||||||
|
@ -67,20 +84,6 @@ include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
STAMP_CONFIGURED:=$(STAMP_CONFIGURED)_$(CONFIG_WPA_MSG_MIN_PRIORITY)
|
STAMP_CONFIGURED:=$(STAMP_CONFIGURED)_$(CONFIG_WPA_MSG_MIN_PRIORITY)
|
||||||
|
|
||||||
WPAD_PROVIDERS:=wpad-mini wpad wpad-openssl wpad-wolfssl \
|
|
||||||
wpad-mesh-openssl wpad-mesh-wolfssl
|
|
||||||
|
|
||||||
SUPPLICANT_ONLY_PROVIDERS:=wpa_supplicant-mini wpa_supplicant-p2p \
|
|
||||||
wpa_supplicant wpa_supplicant-openssl wpa_supplicant-wolfssl \
|
|
||||||
wpa_supplicant-mesh-openssl wpa_supplicant-mesh-wolfssl
|
|
||||||
|
|
||||||
HOSTAPD_ONLY_PROVIDERS:=hostapd-mini hostapd hostapd-openssl hostapd-wolfssl
|
|
||||||
|
|
||||||
EAPOL_TEST_PROVIDERS:=eapol-test eapol-test-openssl eapol-test-wolfssl
|
|
||||||
|
|
||||||
SUPPLICANT_PROVIDERS:=$(WPAD_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS)
|
|
||||||
HOSTAPD_PROVIDERS:=$(WPAD_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS)
|
|
||||||
ANY_PROVIDERS:=$(WPAD_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS)
|
|
||||||
|
|
||||||
ifneq ($(CONFIG_DRIVER_11N_SUPPORT),)
|
ifneq ($(CONFIG_DRIVER_11N_SUPPORT),)
|
||||||
HOSTAPD_IEEE80211N:=y
|
HOSTAPD_IEEE80211N:=y
|
||||||
|
@ -200,7 +203,7 @@ endef
|
||||||
define Package/hostapd-utils
|
define Package/hostapd-utils
|
||||||
$(call Package/hostapd/Default)
|
$(call Package/hostapd/Default)
|
||||||
TITLE+= (utils)
|
TITLE+= (utils)
|
||||||
DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(HOSTAPD_PROVIDERS),PACKAGE_$(pkg)))
|
DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(ANY_HOSTAPD_PROVIDERS),PACKAGE_$(pkg)))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/hostapd-utils/description
|
define Package/hostapd-utils/description
|
||||||
|
@ -221,6 +224,14 @@ define Package/wpad
|
||||||
$(call Package/wpad/Default)
|
$(call Package/wpad/Default)
|
||||||
TITLE+= (full)
|
TITLE+= (full)
|
||||||
VARIANT:=wpad-full-internal
|
VARIANT:=wpad-full-internal
|
||||||
|
CONFLICTS:=$(filter-out wpad-mesh-wolfssl,\
|
||||||
|
$(filter-out wpad-mesh-openssl ,\
|
||||||
|
$(filter-out wpad-openssl ,\
|
||||||
|
$(filter-out wpad-wolfssl ,\
|
||||||
|
$(filter-out wpad-wolfssl ,\
|
||||||
|
$(filter-out wpad ,\
|
||||||
|
$(ANY_PROVIDERS)\
|
||||||
|
))))))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wpad-openssl
|
define Package/wpad-openssl
|
||||||
|
@ -258,6 +269,7 @@ define Package/wpad-mini
|
||||||
$(call Package/wpad/Default)
|
$(call Package/wpad/Default)
|
||||||
TITLE+= (WPA-PSK only)
|
TITLE+= (WPA-PSK only)
|
||||||
VARIANT:=wpad-mini
|
VARIANT:=wpad-mini
|
||||||
|
CONFLICTS:=$(SUPPLICANT_ONLY_PROVIDERS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wpad-mini/description
|
define Package/wpad-mini/description
|
||||||
|
@ -299,13 +311,18 @@ endef
|
||||||
|
|
||||||
define Package/wpa-supplicant
|
define Package/wpa-supplicant
|
||||||
$(Package/wpa-supplicant/Default)
|
$(Package/wpa-supplicant/Default)
|
||||||
CONFLICTS:=$(filter-out wpa-supplicant ,$(SUPPLICANT_ONLY_PROVIDERS))
|
|
||||||
VARIANT:=supplicant-full-internal
|
VARIANT:=supplicant-full-internal
|
||||||
|
CONFLICTS:=wpa-supplicant-mini
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wpa-supplicant-openssl
|
define Package/wpa-supplicant-openssl
|
||||||
$(Package/wpa-supplicant/Default)
|
$(Package/wpa-supplicant/Default)
|
||||||
CONFLICTS:=$(filter-out wpa-supplicant-openssl ,$(SUPPLICANT_ONLY_PROVIDERS))
|
CONFLICTS:=$(filter-out wpa-supplicant-wolfssl ,\
|
||||||
|
$(filter-out wpa-supplicant-openssl ,\
|
||||||
|
$(filter-out wpa-supplicant-mesh-openssl ,\
|
||||||
|
$(filter-out wpa-supplicant-mesh-wolfssl ,\
|
||||||
|
$(SUPPLICANT_ONLY_PROVIDERS)\
|
||||||
|
))))
|
||||||
VARIANT:=supplicant-full-openssl
|
VARIANT:=supplicant-full-openssl
|
||||||
DEPENDS+=+libopenssl
|
DEPENDS+=+libopenssl
|
||||||
PROVIDES:=wpa-supplicant
|
PROVIDES:=wpa-supplicant
|
||||||
|
@ -313,7 +330,12 @@ endef
|
||||||
|
|
||||||
define Package/wpa-supplicant-wolfssl
|
define Package/wpa-supplicant-wolfssl
|
||||||
$(Package/wpa-supplicant/Default)
|
$(Package/wpa-supplicant/Default)
|
||||||
CONFLICTS:=$(filter-out wpa-supplicant-wolfssl ,$(SUPPLICANT_ONLY_PROVIDERS))
|
CONFLICTS:=$(filter-out wpa-supplicant-wolfssl ,\
|
||||||
|
$(filter-out wpa-supplicant-openssl ,\
|
||||||
|
$(filter-out wpa-supplicant-mesh-openssl ,\
|
||||||
|
$(filter-out wpa-supplicant-mesh-wolfssl ,\
|
||||||
|
$(SUPPLICANT_ONLY_PROVIDERS)\
|
||||||
|
))))
|
||||||
VARIANT:=supplicant-full-wolfssl
|
VARIANT:=supplicant-full-wolfssl
|
||||||
DEPENDS+=+libwolfssl
|
DEPENDS+=+libwolfssl
|
||||||
PROVIDES:=wpa-supplicant
|
PROVIDES:=wpa-supplicant
|
||||||
|
@ -327,13 +349,19 @@ define Package/wpa-supplicant-p2p
|
||||||
$(Package/wpa-supplicant)
|
$(Package/wpa-supplicant)
|
||||||
TITLE:=WPA Supplicant (with Wi-Fi P2P support)
|
TITLE:=WPA Supplicant (with Wi-Fi P2P support)
|
||||||
DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-cfg80211
|
DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-cfg80211
|
||||||
CONFLICTS:=$(filter-out wpa-supplicant-p2p ,$(SUPPLICANT_ONLY_PROVIDERS))
|
CONFLICTS:=$(filter-out wpa-supplicant-openssl ,\
|
||||||
|
$(filter-out wpa-supplicant-wolfssl ,\
|
||||||
|
$(filter-out wpa-supplicant-p2p ,\
|
||||||
|
$(filter-out wpa-supplicant-mesh-openssl ,\
|
||||||
|
$(filter-out wpa-supplicant-mesh-wolfssl ,\
|
||||||
|
$(SUPPLICANT_ONLY_PROVIDERS)\
|
||||||
|
)))))
|
||||||
VARIANT:=supplicant-p2p-internal
|
VARIANT:=supplicant-p2p-internal
|
||||||
PROVIDES:=wpa-supplicant
|
PROVIDES:=wpa-supplicant
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wpa-supplicant-mesh/Default
|
define Package/wpa-supplicant-mesh/Default
|
||||||
$(Package/wpa-supplicant)
|
$(Package/wpa-supplicant/Default)
|
||||||
TITLE:=WPA Supplicant (with 802.11s and SAE)
|
TITLE:=WPA Supplicant (with 802.11s and SAE)
|
||||||
DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
|
DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
|
||||||
PROVIDES:=wpa-supplicant wpa-supplicant-mesh
|
PROVIDES:=wpa-supplicant wpa-supplicant-mesh
|
||||||
|
@ -354,10 +382,9 @@ define Package/wpa-supplicant-mesh-wolfssl
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wpa-supplicant-mini
|
define Package/wpa-supplicant-mini
|
||||||
$(Package/wpa-supplicant)
|
$(Package/wpa-supplicant/Default)
|
||||||
TITLE:=WPA Supplicant (minimal version)
|
TITLE:=WPA Supplicant (minimal version)
|
||||||
DEPENDS:=$(DRV_DEPENDS)
|
DEPENDS:=$(DRV_DEPENDS)
|
||||||
CONFLICTS:=$(filter-out wpa-supplicant-mini ,$(SUPPLICANT_ONLY_PROVIDERS))
|
|
||||||
VARIANT:=supplicant-mini
|
VARIANT:=supplicant-mini
|
||||||
PROVIDES:=wpa-supplicant
|
PROVIDES:=wpa-supplicant
|
||||||
endef
|
endef
|
||||||
|
@ -365,7 +392,7 @@ endef
|
||||||
define Package/wpa-cli
|
define Package/wpa-cli
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(SUPPLICANT_PROVIDERS),PACKAGE_$(pkg)))
|
DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(ANY_SUPPLICANT_PROVIDERS),PACKAGE_$(pkg)))
|
||||||
TITLE:=WPA Supplicant command line control utility
|
TITLE:=WPA Supplicant command line control utility
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -390,6 +417,7 @@ define Package/eapol-test-openssl
|
||||||
VARIANT:=supplicant-full-openssl
|
VARIANT:=supplicant-full-openssl
|
||||||
CONFLICTS:=$(filter-out eapol-test-openssl ,$(EAPOL_TEST_PROVIDERS))
|
CONFLICTS:=$(filter-out eapol-test-openssl ,$(EAPOL_TEST_PROVIDERS))
|
||||||
DEPENDS:=$(DRV_DEPENDS) +libopenssl
|
DEPENDS:=$(DRV_DEPENDS) +libopenssl
|
||||||
|
PROVIDES:=eapol-test
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/eapol-test-wolfssl
|
define Package/eapol-test-wolfssl
|
||||||
|
@ -399,6 +427,7 @@ define Package/eapol-test-wolfssl
|
||||||
VARIANT:=supplicant-full-wolfssl
|
VARIANT:=supplicant-full-wolfssl
|
||||||
CONFLICTS:=$(filter-out eapol-test-openssl ,$(filter-out eapol-test-wolfssl ,$(EAPOL_TEST_PROVIDERS)))
|
CONFLICTS:=$(filter-out eapol-test-openssl ,$(filter-out eapol-test-wolfssl ,$(EAPOL_TEST_PROVIDERS)))
|
||||||
DEPENDS:=$(DRV_DEPENDS) +libwolfssl
|
DEPENDS:=$(DRV_DEPENDS) +libwolfssl
|
||||||
|
PROVIDES:=eapol-test
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,185 +0,0 @@
|
||||||
From 8a6a7112e5b1391018531f6b6c317f8870e0fcb6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Golle <daniel@makrotopia.org>
|
|
||||||
Date: Thu, 3 May 2018 13:12:28 +0200
|
|
||||||
Subject: [PATCH 1/2] Revert "wpa_supplicant: Increase authentication timeout
|
|
||||||
if CAC is started"
|
|
||||||
|
|
||||||
This reverts commit 37547ad63c9df61ce6899675028594da2527efef.
|
|
||||||
---
|
|
||||||
wpa_supplicant/events.c | 95 ++++---------------------------
|
|
||||||
wpa_supplicant/wpa_supplicant.c | 20 -------
|
|
||||||
wpa_supplicant/wpa_supplicant_i.h | 3 -
|
|
||||||
3 files changed, 10 insertions(+), 108 deletions(-)
|
|
||||||
|
|
||||||
--- a/wpa_supplicant/events.c
|
|
||||||
+++ b/wpa_supplicant/events.c
|
|
||||||
@@ -3776,81 +3776,6 @@ static void wpa_supplicant_event_port_au
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-static unsigned int wpas_event_cac_ms(const struct wpa_supplicant *wpa_s,
|
|
||||||
- int freq)
|
|
||||||
-{
|
|
||||||
- size_t i;
|
|
||||||
- int j;
|
|
||||||
-
|
|
||||||
- for (i = 0; i < wpa_s->hw.num_modes; i++) {
|
|
||||||
- const struct hostapd_hw_modes *mode = &wpa_s->hw.modes[i];
|
|
||||||
-
|
|
||||||
- for (j = 0; j < mode->num_channels; j++) {
|
|
||||||
- const struct hostapd_channel_data *chan;
|
|
||||||
-
|
|
||||||
- chan = &mode->channels[j];
|
|
||||||
- if (chan->freq == freq)
|
|
||||||
- return chan->dfs_cac_ms;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return 0;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-static void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
-{
|
|
||||||
-#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
|
||||||
- if (wpa_s->ap_iface) {
|
|
||||||
- wpas_ap_event_dfs_cac_started(wpa_s, radar);
|
|
||||||
- } else
|
|
||||||
-#endif /* NEED_AP_MLME && CONFIG_AP */
|
|
||||||
- {
|
|
||||||
- unsigned int cac_time = wpas_event_cac_ms(wpa_s, radar->freq);
|
|
||||||
-
|
|
||||||
- cac_time /= 1000; /* convert from ms to sec */
|
|
||||||
- if (!cac_time)
|
|
||||||
- cac_time = 10 * 60; /* max timeout: 10 minutes */
|
|
||||||
-
|
|
||||||
- /* Restart auth timeout: CAC time added to initial timeout */
|
|
||||||
- wpas_auth_timeout_restart(wpa_s, cac_time);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-static void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
-{
|
|
||||||
-#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
|
||||||
- if (wpa_s->ap_iface) {
|
|
||||||
- wpas_ap_event_dfs_cac_finished(wpa_s, radar);
|
|
||||||
- } else
|
|
||||||
-#endif /* NEED_AP_MLME && CONFIG_AP */
|
|
||||||
- {
|
|
||||||
- /* Restart auth timeout with original value after CAC is
|
|
||||||
- * finished */
|
|
||||||
- wpas_auth_timeout_restart(wpa_s, 0);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-static void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
-{
|
|
||||||
-#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
|
||||||
- if (wpa_s->ap_iface) {
|
|
||||||
- wpas_ap_event_dfs_cac_aborted(wpa_s, radar);
|
|
||||||
- } else
|
|
||||||
-#endif /* NEED_AP_MLME && CONFIG_AP */
|
|
||||||
- {
|
|
||||||
- /* Restart auth timeout with original value after CAC is
|
|
||||||
- * aborted */
|
|
||||||
- wpas_auth_timeout_restart(wpa_s, 0);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
static void wpa_supplicant_event_assoc_auth(struct wpa_supplicant *wpa_s,
|
|
||||||
union wpa_event_data *data)
|
|
||||||
{
|
|
||||||
@@ -4298,25 +4223,25 @@ void wpa_supplicant_event(void *ctx, enu
|
|
||||||
wpas_ap_event_dfs_radar_detected(wpa_s,
|
|
||||||
&data->dfs_event);
|
|
||||||
break;
|
|
||||||
- case EVENT_DFS_NOP_FINISHED:
|
|
||||||
- if (data)
|
|
||||||
- wpas_ap_event_dfs_cac_nop_finished(wpa_s,
|
|
||||||
- &data->dfs_event);
|
|
||||||
- break;
|
|
||||||
-#endif /* NEED_AP_MLME */
|
|
||||||
-#endif /* CONFIG_AP */
|
|
||||||
case EVENT_DFS_CAC_STARTED:
|
|
||||||
if (data)
|
|
||||||
- wpas_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
|
||||||
+ wpas_ap_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
|
||||||
break;
|
|
||||||
case EVENT_DFS_CAC_FINISHED:
|
|
||||||
if (data)
|
|
||||||
- wpas_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
|
||||||
+ wpas_ap_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
|
||||||
break;
|
|
||||||
case EVENT_DFS_CAC_ABORTED:
|
|
||||||
if (data)
|
|
||||||
- wpas_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
|
||||||
+ wpas_ap_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
|
||||||
+ break;
|
|
||||||
+ case EVENT_DFS_NOP_FINISHED:
|
|
||||||
+ if (data)
|
|
||||||
+ wpas_ap_event_dfs_cac_nop_finished(wpa_s,
|
|
||||||
+ &data->dfs_event);
|
|
||||||
break;
|
|
||||||
+#endif /* NEED_AP_MLME */
|
|
||||||
+#endif /* CONFIG_AP */
|
|
||||||
case EVENT_RX_MGMT: {
|
|
||||||
u16 fc, stype;
|
|
||||||
const struct ieee80211_mgmt *mgmt;
|
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
|
||||||
@@ -243,30 +243,10 @@ void wpa_supplicant_req_auth_timeout(str
|
|
||||||
wpa_dbg(wpa_s, MSG_DEBUG, "Setting authentication timeout: %d sec "
|
|
||||||
"%d usec", sec, usec);
|
|
||||||
eloop_cancel_timeout(wpa_supplicant_timeout, wpa_s, NULL);
|
|
||||||
- wpa_s->last_auth_timeout_sec = sec;
|
|
||||||
eloop_register_timeout(sec, usec, wpa_supplicant_timeout, wpa_s, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-/*
|
|
||||||
- * wpas_auth_timeout_restart - Restart and change timeout for authentication
|
|
||||||
- * @wpa_s: Pointer to wpa_supplicant data
|
|
||||||
- * @sec_diff: difference in seconds applied to original timeout value
|
|
||||||
- */
|
|
||||||
-void wpas_auth_timeout_restart(struct wpa_supplicant *wpa_s, int sec_diff)
|
|
||||||
-{
|
|
||||||
- int new_sec = wpa_s->last_auth_timeout_sec + sec_diff;
|
|
||||||
-
|
|
||||||
- if (eloop_is_timeout_registered(wpa_supplicant_timeout, wpa_s, NULL)) {
|
|
||||||
- wpa_dbg(wpa_s, MSG_DEBUG,
|
|
||||||
- "Authentication timeout restart: %d sec", new_sec);
|
|
||||||
- eloop_cancel_timeout(wpa_supplicant_timeout, wpa_s, NULL);
|
|
||||||
- eloop_register_timeout(new_sec, 0, wpa_supplicant_timeout,
|
|
||||||
- wpa_s, NULL);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
/**
|
|
||||||
* wpa_supplicant_cancel_auth_timeout - Cancel authentication timeout
|
|
||||||
* @wpa_s: Pointer to wpa_supplicant data
|
|
||||||
--- a/wpa_supplicant/wpa_supplicant_i.h
|
|
||||||
+++ b/wpa_supplicant/wpa_supplicant_i.h
|
|
||||||
@@ -1182,8 +1182,6 @@ struct wpa_supplicant {
|
|
||||||
/* RIC elements for FT protocol */
|
|
||||||
struct wpabuf *ric_ies;
|
|
||||||
|
|
||||||
- int last_auth_timeout_sec;
|
|
||||||
-
|
|
||||||
#ifdef CONFIG_DPP
|
|
||||||
struct dl_list dpp_bootstrap; /* struct dpp_bootstrap_info */
|
|
||||||
struct dl_list dpp_configurator; /* struct dpp_configurator */
|
|
||||||
@@ -1258,7 +1256,6 @@ void wpa_supplicant_initiate_eapol(struc
|
|
||||||
void wpa_clear_keys(struct wpa_supplicant *wpa_s, const u8 *addr);
|
|
||||||
void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
|
|
||||||
int sec, int usec);
|
|
||||||
-void wpas_auth_timeout_restart(struct wpa_supplicant *wpa_s, int sec_diff);
|
|
||||||
void wpa_supplicant_reinit_autoscan(struct wpa_supplicant *wpa_s);
|
|
||||||
void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
|
|
||||||
enum wpa_states state);
|
|
|
@ -1,132 +0,0 @@
|
||||||
From 0d4900ccd1c7ec5c5ffecf5040f9c07a6a32deef Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Golle <daniel@makrotopia.org>
|
|
||||||
Date: Thu, 3 May 2018 13:12:35 +0200
|
|
||||||
Subject: [PATCH 2/2] Revert "wpa_supplicant: Rename wpas_event_*() to
|
|
||||||
wpas_ap_event_*()"
|
|
||||||
|
|
||||||
This reverts commit 2dd5fbbff884af488870a37e339b4817c83954de.
|
|
||||||
---
|
|
||||||
wpa_supplicant/ap.c | 20 ++++++++++----------
|
|
||||||
wpa_supplicant/ap.h | 18 +++++++++---------
|
|
||||||
wpa_supplicant/events.c | 13 ++++++-------
|
|
||||||
3 files changed, 25 insertions(+), 26 deletions(-)
|
|
||||||
|
|
||||||
--- a/wpa_supplicant/ap.c
|
|
||||||
+++ b/wpa_supplicant/ap.c
|
|
||||||
@@ -1537,8 +1537,8 @@ int wpas_ap_pmksa_cache_add_external(str
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef NEED_AP_MLME
|
|
||||||
-void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
+void wpas_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar)
|
|
||||||
{
|
|
||||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
|
||||||
return;
|
|
||||||
@@ -1550,8 +1550,8 @@ void wpas_ap_event_dfs_radar_detected(st
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
+void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar)
|
|
||||||
{
|
|
||||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
|
||||||
return;
|
|
||||||
@@ -1562,8 +1562,8 @@ void wpas_ap_event_dfs_cac_started(struc
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
+void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar)
|
|
||||||
{
|
|
||||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
|
||||||
return;
|
|
||||||
@@ -1574,8 +1574,8 @@ void wpas_ap_event_dfs_cac_finished(stru
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
+void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar)
|
|
||||||
{
|
|
||||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
|
||||||
return;
|
|
||||||
@@ -1586,8 +1586,8 @@ void wpas_ap_event_dfs_cac_aborted(struc
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar)
|
|
||||||
+void wpas_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar)
|
|
||||||
{
|
|
||||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
|
||||||
return;
|
|
||||||
--- a/wpa_supplicant/ap.h
|
|
||||||
+++ b/wpa_supplicant/ap.h
|
|
||||||
@@ -89,16 +89,16 @@ int wpas_ap_pmksa_cache_list_mesh(struct
|
|
||||||
char *buf, size_t len);
|
|
||||||
int wpas_ap_pmksa_cache_add_external(struct wpa_supplicant *wpa_s, char *cmd);
|
|
||||||
|
|
||||||
-void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar);
|
|
||||||
-void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
|
||||||
+void wpas_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
|
||||||
struct dfs_event *radar);
|
|
||||||
-void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar);
|
|
||||||
-void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar);
|
|
||||||
-void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
- struct dfs_event *radar);
|
|
||||||
+void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar);
|
|
||||||
+void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar);
|
|
||||||
+void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar);
|
|
||||||
+void wpas_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
|
||||||
+ struct dfs_event *radar);
|
|
||||||
|
|
||||||
void ap_periodic(struct wpa_supplicant *wpa_s);
|
|
||||||
|
|
||||||
--- a/wpa_supplicant/events.c
|
|
||||||
+++ b/wpa_supplicant/events.c
|
|
||||||
@@ -4220,25 +4220,24 @@ void wpa_supplicant_event(void *ctx, enu
|
|
||||||
#ifdef NEED_AP_MLME
|
|
||||||
case EVENT_DFS_RADAR_DETECTED:
|
|
||||||
if (data)
|
|
||||||
- wpas_ap_event_dfs_radar_detected(wpa_s,
|
|
||||||
- &data->dfs_event);
|
|
||||||
+ wpas_event_dfs_radar_detected(wpa_s, &data->dfs_event);
|
|
||||||
break;
|
|
||||||
case EVENT_DFS_CAC_STARTED:
|
|
||||||
if (data)
|
|
||||||
- wpas_ap_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
|
||||||
+ wpas_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
|
||||||
break;
|
|
||||||
case EVENT_DFS_CAC_FINISHED:
|
|
||||||
if (data)
|
|
||||||
- wpas_ap_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
|
||||||
+ wpas_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
|
||||||
break;
|
|
||||||
case EVENT_DFS_CAC_ABORTED:
|
|
||||||
if (data)
|
|
||||||
- wpas_ap_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
|
||||||
+ wpas_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
|
||||||
break;
|
|
||||||
case EVENT_DFS_NOP_FINISHED:
|
|
||||||
if (data)
|
|
||||||
- wpas_ap_event_dfs_cac_nop_finished(wpa_s,
|
|
||||||
- &data->dfs_event);
|
|
||||||
+ wpas_event_dfs_cac_nop_finished(wpa_s,
|
|
||||||
+ &data->dfs_event);
|
|
||||||
break;
|
|
||||||
#endif /* NEED_AP_MLME */
|
|
||||||
#endif /* CONFIG_AP */
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 032e70833de4b251fc4a159b2cc4ef28d0f1df0d Mon Sep 17 00:00:00 2001
|
From 02ae4382f45f772e3630460459eb4e5af64e71b4 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:54:58 -0700
|
Date: Tue, 29 May 2018 14:39:05 -0700
|
||||||
Subject: [PATCH 01/16] mesh: factor out mesh join function
|
Subject: [PATCH 01/18] mesh: factor out mesh join function
|
||||||
|
|
||||||
mesh join function consitss of 2 parts which are preparing
|
mesh join function consitss of 2 parts which are preparing
|
||||||
configurations and sending join event to driver.
|
configurations and sending join event to driver.
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -363,13 +363,48 @@ void wpa_supplicant_mesh_add_scan_ie(str
|
@@ -364,13 +364,48 @@ void wpa_supplicant_mesh_add_scan_ie(str
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
ret = -ENOENT;
|
ret = -ENOENT;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@@ -380,22 +415,22 @@ int wpa_supplicant_join_mesh(struct wpa_
|
@@ -381,22 +416,22 @@ int wpa_supplicant_join_mesh(struct wpa_
|
||||||
wpa_s->group_cipher = WPA_CIPHER_NONE;
|
wpa_s->group_cipher = WPA_CIPHER_NONE;
|
||||||
wpa_s->mgmt_group_cipher = 0;
|
wpa_s->mgmt_group_cipher = 0;
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
} else {
|
} else {
|
||||||
ssid->max_oper_chwidth = VHT_CHANWIDTH_80MHZ;
|
ssid->max_oper_chwidth = VHT_CHANWIDTH_80MHZ;
|
||||||
}
|
}
|
||||||
@@ -409,67 +444,43 @@ int wpa_supplicant_join_mesh(struct wpa_
|
@@ -410,67 +445,43 @@ int wpa_supplicant_join_mesh(struct wpa_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ssid->beacon_int > 0)
|
if (ssid->beacon_int > 0)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 6da64b1e056e0b1be18b6ab37c820acb4a0f3cf4 Mon Sep 17 00:00:00 2001
|
From 89db76eeff6502dfa39b011962ec9d560ed4c2ee Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:54:59 -0700
|
Date: Tue, 29 May 2018 14:39:06 -0700
|
||||||
Subject: [PATCH 02/16] mesh: factor out rsn initialization
|
Subject: [PATCH 02/18] mesh: factor out rsn initialization
|
||||||
|
|
||||||
RSN initialization can be used in different phases
|
RSN initialization can be used in different phases
|
||||||
if mesh initialization and mesh join don't happen
|
if mesh initialization and mesh join don't happen
|
||||||
|
@ -80,7 +80,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
int rate_len;
|
int rate_len;
|
||||||
int frequency;
|
int frequency;
|
||||||
|
|
||||||
@@ -291,38 +335,8 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -292,38 +336,8 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 95425b5becaeda8a515c942f417696e5df34bbc8 Mon Sep 17 00:00:00 2001
|
From 07bad5f256cbe8a4b45d32c5b43b870ee815fb42 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:00 -0700
|
Date: Tue, 29 May 2018 14:39:07 -0700
|
||||||
Subject: [PATCH 03/16] mesh: relocate RSN init function
|
Subject: [PATCH 03/18] mesh: relocate RSN init function
|
||||||
|
|
||||||
RSN init function should work together with mesh join
|
RSN init function should work together with mesh join
|
||||||
when it's used. Since mesh join could be called at different stage
|
when it's used. Since mesh join could be called at different stage
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -335,9 +335,6 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -336,9 +336,6 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
|
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -383,6 +380,12 @@ void wpas_join_mesh(struct wpa_supplican
|
@@ -384,6 +381,12 @@ void wpas_join_mesh(struct wpa_supplican
|
||||||
struct wpa_ssid *ssid = wpa_s->current_ssid;
|
struct wpa_ssid *ssid = wpa_s->current_ssid;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 32044a7bb26858bedaf147c77f49f5cef1133de3 Mon Sep 17 00:00:00 2001
|
From bd05de484bfa61def530d717c7234381f6b33cf7 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:01 -0700
|
Date: Tue, 29 May 2018 14:39:08 -0700
|
||||||
Subject: [PATCH 04/16] mesh: use setup completion callback to complete mesh
|
Subject: [PATCH 04/18] mesh: use setup completion callback to complete mesh
|
||||||
join
|
join
|
||||||
|
|
||||||
mesh join function is the last function to be called during
|
mesh join function is the last function to be called during
|
||||||
|
@ -32,7 +32,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
ifmsh->drv_flags = wpa_s->drv_flags;
|
ifmsh->drv_flags = wpa_s->drv_flags;
|
||||||
ifmsh->num_bss = 1;
|
ifmsh->num_bss = 1;
|
||||||
ifmsh->bss = os_calloc(wpa_s->ifmsh->num_bss,
|
ifmsh->bss = os_calloc(wpa_s->ifmsh->num_bss,
|
||||||
@@ -233,6 +234,8 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -234,6 +235,8 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
bss->drv_priv = wpa_s->drv_priv;
|
bss->drv_priv = wpa_s->drv_priv;
|
||||||
bss->iface = ifmsh;
|
bss->iface = ifmsh;
|
||||||
bss->mesh_sta_free_cb = mesh_mpm_free_sta;
|
bss->mesh_sta_free_cb = mesh_mpm_free_sta;
|
||||||
|
@ -41,7 +41,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
frequency = ssid->frequency;
|
frequency = ssid->frequency;
|
||||||
if (frequency != freq->freq &&
|
if (frequency != freq->freq &&
|
||||||
frequency == freq->freq + freq->sec_channel_offset * 20) {
|
frequency == freq->freq + freq->sec_channel_offset * 20) {
|
||||||
@@ -374,8 +377,9 @@ void wpa_supplicant_mesh_add_scan_ie(str
|
@@ -375,8 +378,9 @@ void wpa_supplicant_mesh_add_scan_ie(str
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params;
|
struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params;
|
||||||
struct wpa_ssid *ssid = wpa_s->current_ssid;
|
struct wpa_ssid *ssid = wpa_s->current_ssid;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@@ -497,7 +501,6 @@ int wpa_supplicant_join_mesh(struct wpa_
|
@@ -498,7 +502,6 @@ int wpa_supplicant_join_mesh(struct wpa_
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From e2f13b1fac9799db83a37fc57df9471d9bb5b711 Mon Sep 17 00:00:00 2001
|
From dbe9afab3b2dceb35d478ac43dfcf8fdc5e23a22 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:02 -0700
|
Date: Tue, 29 May 2018 14:39:09 -0700
|
||||||
Subject: [PATCH 05/16] mesh: reflect country setting to mesh configuration
|
Subject: [PATCH 05/18] mesh: reflect country setting to mesh configuration
|
||||||
|
|
||||||
wpa_supplicant configuration has country parameter that is
|
wpa_supplicant configuration has country parameter that is
|
||||||
supposed to be used in AP mode to indicate supporting 802.11h
|
supposed to be used in AP mode to indicate supporting 802.11h
|
||||||
|
@ -9,13 +9,15 @@ and 802.11d. Reflect this configuration to Mesh also since Mesh
|
||||||
is required to support 802.11h and 802.11d to use DFS channels.
|
is required to support 802.11h and 802.11d to use DFS channels.
|
||||||
|
|
||||||
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
[daniel@makrotopia.org: adapted to changed ieee80211_is_dfs prototype]
|
||||||
---
|
---
|
||||||
wpa_supplicant/mesh.c | 8 ++++++++
|
wpa_supplicant/mesh.c | 9 +++++++++
|
||||||
1 file changed, 8 insertions(+)
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -254,6 +254,15 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -255,6 +255,15 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
bss->conf->start_disabled = 1;
|
bss->conf->start_disabled = 1;
|
||||||
bss->conf->mesh = MESH_ENABLED;
|
bss->conf->mesh = MESH_ENABLED;
|
||||||
bss->conf->ap_max_inactivity = wpa_s->conf->mesh_max_inactivity;
|
bss->conf->ap_max_inactivity = wpa_s->conf->mesh_max_inactivity;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 37bf08621eee53f30b464be71876c02e235077ba Mon Sep 17 00:00:00 2001
|
From 51e759da5026b3e64f801135b5d53f2198bbd2f0 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:03 -0700
|
Date: Tue, 29 May 2018 14:39:10 -0700
|
||||||
Subject: [PATCH 06/16] mesh: inform kernel driver DFS handler in userspace
|
Subject: [PATCH 06/18] mesh: inform kernel driver DFS handler in userspace
|
||||||
|
|
||||||
NL80211_ATTR_HANDLE_DFS is required by kerenel space
|
NL80211_ATTR_HANDLE_DFS is required by kerenel space
|
||||||
to enable DFS channels that indicates DFS handler
|
to enable DFS channels that indicates DFS handler
|
||||||
|
@ -38,7 +38,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
goto fail;
|
goto fail;
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -261,6 +261,7 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -262,6 +262,7 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
conf->ieee80211d = 1;
|
conf->ieee80211d = 1;
|
||||||
conf->country[0] = wpa_s->conf->country[0];
|
conf->country[0] = wpa_s->conf->country[0];
|
||||||
conf->country[1] = wpa_s->conf->country[1];
|
conf->country[1] = wpa_s->conf->country[1];
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 8190aab3344ae9746c897093f88f3679239d135d Mon Sep 17 00:00:00 2001
|
From bdc77efe681d5b88f3256e2bb6e706d4eaf09518 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:04 -0700
|
Date: Tue, 29 May 2018 14:39:11 -0700
|
||||||
Subject: [PATCH 07/16] mesh: apply channel attributes before running Mesh
|
Subject: [PATCH 07/18] mesh: apply channel attributes before running Mesh
|
||||||
|
|
||||||
This helps mesh interface initializes with correct
|
This helps mesh interface initializes with correct
|
||||||
channel parameters.
|
channel parameters.
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -337,6 +337,8 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -338,6 +338,8 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
conf->basic_rates[rate_len] = -1;
|
conf->basic_rates[rate_len] = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
if (hostapd_setup_interface(ifmsh)) {
|
if (hostapd_setup_interface(ifmsh)) {
|
||||||
wpa_printf(MSG_ERROR,
|
wpa_printf(MSG_ERROR,
|
||||||
"Failed to initialize hostapd interface for mesh");
|
"Failed to initialize hostapd interface for mesh");
|
||||||
@@ -348,8 +350,6 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -349,8 +351,6 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From e001251cb5708c406d477eca6aa912e5692b17fe Mon Sep 17 00:00:00 2001
|
From eb9888ba41faaeb8fd07392ad46808b7d894cc14 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:05 -0700
|
Date: Tue, 29 May 2018 14:39:12 -0700
|
||||||
Subject: [PATCH 08/16] mesh: set interface type to mesh before setting
|
Subject: [PATCH 08/18] mesh: set interface type to mesh before setting
|
||||||
interface
|
interface
|
||||||
|
|
||||||
Correct interface type is required to start DFS CAC that can be
|
Correct interface type is required to start DFS CAC that can be
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -339,14 +339,14 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -340,14 +340,14 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
|
|
||||||
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
|
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 3cefd0bf495ad51a860b56281a8cae32bc4bd086 Mon Sep 17 00:00:00 2001
|
From fa3af966032267e618b19bbf06a536ddb81ddbdf Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:06 -0700
|
Date: Tue, 29 May 2018 14:39:13 -0700
|
||||||
Subject: [PATCH 09/16] mesh: set mesh center frequency
|
Subject: [PATCH 09/18] mesh: set mesh center frequency
|
||||||
|
|
||||||
vht center frequency value is required to compose the correct channel info.
|
vht center frequency value is required to compose the correct channel info.
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -456,6 +456,7 @@ int wpa_supplicant_join_mesh(struct wpa_
|
@@ -457,6 +457,7 @@ int wpa_supplicant_join_mesh(struct wpa_
|
||||||
|
|
||||||
if (wpa_s->mesh_vht_enabled) {
|
if (wpa_s->mesh_vht_enabled) {
|
||||||
ssid->vht = 1;
|
ssid->vht = 1;
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
From 90aa570a894a907d11f85ced43a248198e24acc1 Mon Sep 17 00:00:00 2001
|
From 9a8ca54a264a2820af614043e7af853166b320b0 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:07 -0700
|
Date: Tue, 29 May 2018 14:39:14 -0700
|
||||||
Subject: [PATCH 10/16] mesh: consider mesh interface on dfs event handler
|
Subject: [PATCH 10/18] mesh: consider mesh interface on dfs event handler
|
||||||
|
|
||||||
Once mesh starts supporting DFS channels, it has to handle DFS related events
|
Once mesh starts supporting DFS channels, it has to handle DFS related events
|
||||||
from drivers, hence add mesh interface to the check list.
|
from drivers, hence add mesh interface to the check list.
|
||||||
|
|
||||||
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
|
||||||
---
|
---
|
||||||
wpa_supplicant/ap.c | 71 ++++++++++++++++++++++++++++++-----------
|
wpa_supplicant/ap.c | 71 ++++++++++++++++++++++++++++++-----------
|
||||||
wpa_supplicant/events.c | 1 +
|
wpa_supplicant/events.c | 7 ++--
|
||||||
2 files changed, 54 insertions(+), 18 deletions(-)
|
2 files changed, 57 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
--- a/wpa_supplicant/ap.c
|
--- a/wpa_supplicant/ap.c
|
||||||
+++ b/wpa_supplicant/ap.c
|
+++ b/wpa_supplicant/ap.c
|
||||||
|
@ -37,8 +38,8 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1540,10 +1545,16 @@ int wpas_ap_pmksa_cache_add_external(str
|
@@ -1540,10 +1545,16 @@ int wpas_ap_pmksa_cache_add_external(str
|
||||||
void wpas_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
||||||
struct dfs_event *radar)
|
struct dfs_event *radar)
|
||||||
{
|
{
|
||||||
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||||
- return;
|
- return;
|
||||||
|
@ -56,9 +57,9 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
radar->ht_enabled, radar->chan_offset,
|
radar->ht_enabled, radar->chan_offset,
|
||||||
radar->chan_width,
|
radar->chan_width,
|
||||||
radar->cf1, radar->cf2);
|
radar->cf1, radar->cf2);
|
||||||
@@ -1553,10 +1564,16 @@ void wpas_event_dfs_radar_detected(struc
|
@@ -1553,10 +1564,16 @@ void wpas_ap_event_dfs_radar_detected(st
|
||||||
void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
||||||
struct dfs_event *radar)
|
struct dfs_event *radar)
|
||||||
{
|
{
|
||||||
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||||
- return;
|
- return;
|
||||||
|
@ -76,9 +77,9 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
radar->ht_enabled, radar->chan_offset,
|
radar->ht_enabled, radar->chan_offset,
|
||||||
radar->chan_width, radar->cf1, radar->cf2);
|
radar->chan_width, radar->cf1, radar->cf2);
|
||||||
}
|
}
|
||||||
@@ -1565,10 +1582,16 @@ void wpas_event_dfs_cac_started(struct w
|
@@ -1565,10 +1582,16 @@ void wpas_ap_event_dfs_cac_started(struc
|
||||||
void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
||||||
struct dfs_event *radar)
|
struct dfs_event *radar)
|
||||||
{
|
{
|
||||||
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||||
- return;
|
- return;
|
||||||
|
@ -96,9 +97,9 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
radar->ht_enabled, radar->chan_offset,
|
radar->ht_enabled, radar->chan_offset,
|
||||||
radar->chan_width, radar->cf1, radar->cf2);
|
radar->chan_width, radar->cf1, radar->cf2);
|
||||||
}
|
}
|
||||||
@@ -1577,10 +1600,16 @@ void wpas_event_dfs_cac_finished(struct
|
@@ -1577,10 +1600,16 @@ void wpas_ap_event_dfs_cac_finished(stru
|
||||||
void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
||||||
struct dfs_event *radar)
|
struct dfs_event *radar)
|
||||||
{
|
{
|
||||||
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||||
- return;
|
- return;
|
||||||
|
@ -116,9 +117,9 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
radar->ht_enabled, radar->chan_offset,
|
radar->ht_enabled, radar->chan_offset,
|
||||||
radar->chan_width, radar->cf1, radar->cf2);
|
radar->chan_width, radar->cf1, radar->cf2);
|
||||||
}
|
}
|
||||||
@@ -1589,10 +1618,16 @@ void wpas_event_dfs_cac_aborted(struct w
|
@@ -1589,10 +1618,16 @@ void wpas_ap_event_dfs_cac_aborted(struc
|
||||||
void wpas_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
||||||
struct dfs_event *radar)
|
struct dfs_event *radar)
|
||||||
{
|
{
|
||||||
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
- if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||||
- return;
|
- return;
|
||||||
|
@ -138,7 +139,34 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
}
|
}
|
||||||
--- a/wpa_supplicant/events.c
|
--- a/wpa_supplicant/events.c
|
||||||
+++ b/wpa_supplicant/events.c
|
+++ b/wpa_supplicant/events.c
|
||||||
@@ -4203,6 +4203,7 @@ void wpa_supplicant_event(void *ctx, enu
|
@@ -3802,7 +3802,7 @@ static void wpas_event_dfs_cac_started(s
|
||||||
|
struct dfs_event *radar)
|
||||||
|
{
|
||||||
|
#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
||||||
|
- if (wpa_s->ap_iface) {
|
||||||
|
+ if (wpa_s->ap_iface || wpa_s->ifmsh) {
|
||||||
|
wpas_ap_event_dfs_cac_started(wpa_s, radar);
|
||||||
|
} else
|
||||||
|
#endif /* NEED_AP_MLME && CONFIG_AP */
|
||||||
|
@@ -3823,7 +3823,7 @@ static void wpas_event_dfs_cac_finished(
|
||||||
|
struct dfs_event *radar)
|
||||||
|
{
|
||||||
|
#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
||||||
|
- if (wpa_s->ap_iface) {
|
||||||
|
+ if (wpa_s->ap_iface || wpa_s->ifmsh) {
|
||||||
|
wpas_ap_event_dfs_cac_finished(wpa_s, radar);
|
||||||
|
} else
|
||||||
|
#endif /* NEED_AP_MLME && CONFIG_AP */
|
||||||
|
@@ -3839,7 +3839,7 @@ static void wpas_event_dfs_cac_aborted(s
|
||||||
|
struct dfs_event *radar)
|
||||||
|
{
|
||||||
|
#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
||||||
|
- if (wpa_s->ap_iface) {
|
||||||
|
+ if (wpa_s->ap_iface || wpa_s->ifmsh) {
|
||||||
|
wpas_ap_event_dfs_cac_aborted(wpa_s, radar);
|
||||||
|
} else
|
||||||
|
#endif /* NEED_AP_MLME && CONFIG_AP */
|
||||||
|
@@ -4278,6 +4278,7 @@ void wpa_supplicant_event(void *ctx, enu
|
||||||
#ifdef CONFIG_AP
|
#ifdef CONFIG_AP
|
||||||
if (wpa_s->current_ssid->mode == WPAS_MODE_AP ||
|
if (wpa_s->current_ssid->mode == WPAS_MODE_AP ||
|
||||||
wpa_s->current_ssid->mode == WPAS_MODE_P2P_GO ||
|
wpa_s->current_ssid->mode == WPAS_MODE_P2P_GO ||
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From ce3e491e445ebea9705e76ac7ee3d4841ace1cad Mon Sep 17 00:00:00 2001
|
From bbaa6142eadf229334436fdbf51aa65bb819f771 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:08 -0700
|
Date: Tue, 29 May 2018 14:39:15 -0700
|
||||||
Subject: [PATCH 11/16] mesh: Allow DFS channels to be selected if dfs is
|
Subject: [PATCH 11/18] mesh: Allow DFS channels to be selected if dfs is
|
||||||
enabled
|
enabled
|
||||||
|
|
||||||
Note: DFS is assumed to be usable if a country code has been set
|
Note: DFS is assumed to be usable if a country code has been set
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2033,6 +2033,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2060,6 +2060,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
struct hostapd_freq_params vht_freq;
|
struct hostapd_freq_params vht_freq;
|
||||||
int chwidth, seg0, seg1;
|
int chwidth, seg0, seg1;
|
||||||
u32 vht_caps = 0;
|
u32 vht_caps = 0;
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
freq->freq = ssid->frequency;
|
freq->freq = ssid->frequency;
|
||||||
|
|
||||||
@@ -2109,8 +2111,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2136,8 +2138,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Check primary channel flags */
|
/* Check primary channel flags */
|
||||||
|
@ -36,7 +36,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
#ifdef CONFIG_HT_OVERRIDES
|
#ifdef CONFIG_HT_OVERRIDES
|
||||||
if (ssid->disable_ht40)
|
if (ssid->disable_ht40)
|
||||||
@@ -2136,8 +2141,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2163,8 +2168,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Check secondary channel flags */
|
/* Check secondary channel flags */
|
||||||
|
@ -49,7 +49,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
freq->channel = pri_chan->chan;
|
freq->channel = pri_chan->chan;
|
||||||
|
|
||||||
@@ -2227,8 +2235,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2254,8 +2262,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Back to HT configuration if channel not usable */
|
/* Back to HT configuration if channel not usable */
|
||||||
|
@ -62,7 +62,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
chwidth = VHT_CHANWIDTH_80MHZ;
|
chwidth = VHT_CHANWIDTH_80MHZ;
|
||||||
@@ -2248,10 +2259,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2275,10 +2286,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
if (!chan)
|
if (!chan)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 912b5c89328f1f9585e64fd13460928c71f28352 Mon Sep 17 00:00:00 2001
|
From 4a8245ec2e9d48e464488477a3e7ed234009c216 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:09 -0700
|
Date: Tue, 29 May 2018 14:39:16 -0700
|
||||||
Subject: [PATCH 12/16] mesh: allow mesh to send channel switch request
|
Subject: [PATCH 12/18] mesh: allow mesh to send channel switch request
|
||||||
|
|
||||||
add mesh type to nl80211 channel switch request,
|
add mesh type to nl80211 channel switch request,
|
||||||
so mesh is able to send the request to kernel drivers.
|
so mesh is able to send the request to kernel drivers.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d7ae7271dce4203bfcd79a230acb24f03f38633d Mon Sep 17 00:00:00 2001
|
From 267395271c1a36b54ef21070acff2cadce241035 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:10 -0700
|
Date: Tue, 29 May 2018 14:39:17 -0700
|
||||||
Subject: [PATCH 13/16] mesh: do not allow pri/sec channel switch
|
Subject: [PATCH 13/18] mesh: do not allow pri/sec channel switch
|
||||||
|
|
||||||
We don't want mesh to switch the channel from primary to secondary,
|
We don't want mesh to switch the channel from primary to secondary,
|
||||||
since mesh points are not able to join each other in that case.
|
since mesh points are not able to join each other in that case.
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -336,7 +336,10 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -337,7 +337,10 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
rate_len * sizeof(int));
|
rate_len * sizeof(int));
|
||||||
conf->basic_rates[rate_len] = -1;
|
conf->basic_rates[rate_len] = -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From cf2ba81fb307f3e87e13896f9dbf93c0c2a9eb92 Mon Sep 17 00:00:00 2001
|
From f95897cef614fff710c31d9e478eacc85d6312d5 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:11 -0700
|
Date: Tue, 29 May 2018 14:39:18 -0700
|
||||||
Subject: [PATCH 14/16] mesh: do not allow scan result to swap pri/sec
|
Subject: [PATCH 14/18] mesh: do not allow scan result to swap pri/sec
|
||||||
|
|
||||||
Swapping between primary and secondary channel will break
|
Swapping between primary and secondary channel will break
|
||||||
mesh from joining, hence don't allow it.
|
mesh from joining, hence don't allow it.
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2158,7 +2158,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2185,7 +2185,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
}
|
}
|
||||||
freq->sec_channel_offset = ht40;
|
freq->sec_channel_offset = ht40;
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
From 48f31256ffebfc43d6b14b93597aa2c7e2975dc4 Mon Sep 17 00:00:00 2001
|
From 9423e8be0393e82c8622806a0529e47fd5583c0b Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
Date: Tue, 17 Apr 2018 21:55:12 -0700
|
Date: Tue, 29 May 2018 14:39:19 -0700
|
||||||
Subject: [PATCH 15/16] mesh: do not use offchan mgmt tx on DFS
|
Subject: [PATCH 15/18] mesh: do not use offchan mgmt tx on DFS
|
||||||
|
|
||||||
Drivers don't allow mesh to use offchannel on management Tx.
|
Drivers don't allow mesh to use offchannel on management Tx.
|
||||||
|
|
||||||
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
[daniel@makrotopia.org: adapted to changed ieee80211_is_dfs prototype]
|
||||||
---
|
---
|
||||||
src/drivers/driver_nl80211.c | 5 ++++-
|
src/drivers/driver_nl80211.c | 12 ++++++++++--
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
|
@ -23,20 +25,20 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
struct ieee80211_hdr *hdr;
|
struct ieee80211_hdr *hdr;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Send Action frame (ifindex=%d, "
|
wpa_printf(MSG_DEBUG, "nl80211: Send Action frame (ifindex=%d, "
|
||||||
@@ -7190,6 +7194,12 @@ static int wpa_driver_nl80211_send_actio
|
@@ -7189,7 +7193,11 @@ static int wpa_driver_nl80211_send_actio
|
||||||
|
} else {
|
||||||
os_memset(bss->rand_addr, 0, ETH_ALEN);
|
os_memset(bss->rand_addr, 0, ETH_ALEN);
|
||||||
}
|
}
|
||||||
|
-
|
||||||
+ if (is_mesh_interface(drv->nlmode) &&
|
+ if (is_mesh_interface(drv->nlmode) &&
|
||||||
+ (modes = nl80211_get_hw_feature_data(bss, &num_modes, &flags,
|
+ (modes = nl80211_get_hw_feature_data(bss, &num_modes, &flags,
|
||||||
+ &dfs_domain)) &&
|
+ &dfs_domain)) &&
|
||||||
+ ieee80211_is_dfs(freq, modes, num_modes))
|
+ ieee80211_is_dfs(freq, modes, num_modes))
|
||||||
+ offchanok = 0;
|
+ offchanok = 0;
|
||||||
+
|
|
||||||
if (is_ap_interface(drv->nlmode) &&
|
if (is_ap_interface(drv->nlmode) &&
|
||||||
(!(drv->capa.flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) ||
|
(!(drv->capa.flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) ||
|
||||||
(int) freq == bss->freq || drv->device_ap_sme ||
|
(int) freq == bss->freq || drv->device_ap_sme ||
|
||||||
@@ -7201,7 +7211,7 @@ static int wpa_driver_nl80211_send_actio
|
@@ -7201,7 +7209,7 @@ static int wpa_driver_nl80211_send_actio
|
||||||
ret = nl80211_send_frame_cmd(bss, freq, wait_time, buf,
|
ret = nl80211_send_frame_cmd(bss, freq, wait_time, buf,
|
||||||
24 + data_len,
|
24 + data_len,
|
||||||
&drv->send_action_cookie,
|
&drv->send_action_cookie,
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
From fa9d565fe8841b288f29137c23a7ab2584dd9510 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Date: Tue, 29 May 2018 14:39:20 -0700
|
||||||
|
Subject: [PATCH 16/18] mesh: fix channel switch error during CAC
|
||||||
|
|
||||||
|
Mesh interface has used its channel parameters that configured
|
||||||
|
during its initialization even after channel switched due to
|
||||||
|
DFS radar detection during CAC which caused channel switch error.
|
||||||
|
This change fixes the error by updating its channel parameters
|
||||||
|
when channel's been changed from initial one.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
[daniel@makrotopia.org: added hw_features_common.h include]
|
||||||
|
---
|
||||||
|
wpa_supplicant/mesh.c | 25 +++++++++++++++++++++++++
|
||||||
|
1 file changed, 25 insertions(+)
|
||||||
|
|
||||||
|
--- a/wpa_supplicant/mesh.c
|
||||||
|
+++ b/wpa_supplicant/mesh.c
|
||||||
|
@@ -11,6 +11,7 @@
|
||||||
|
#include "utils/common.h"
|
||||||
|
#include "utils/eloop.h"
|
||||||
|
#include "utils/uuid.h"
|
||||||
|
+#include "common/hw_features_common.h"
|
||||||
|
#include "common/ieee802_11_defs.h"
|
||||||
|
#include "common/wpa_ctrl.h"
|
||||||
|
#include "ap/sta_info.h"
|
||||||
|
@@ -394,10 +395,35 @@ void wpa_supplicant_mesh_add_scan_ie(str
|
||||||
|
void wpas_mesh_complete_cb(void *ctx)
|
||||||
|
{
|
||||||
|
struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)ctx;
|
||||||
|
+ struct hostapd_iface *ifmsh = wpa_s->ifmsh;
|
||||||
|
struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params;
|
||||||
|
struct wpa_ssid *ssid = wpa_s->current_ssid;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * inspect if channel's been changed since initialized.
|
||||||
|
+ * i.e. DFS radar detection
|
||||||
|
+ */
|
||||||
|
+ if (ifmsh->freq != params->freq.freq) {
|
||||||
|
+ wpa_s->assoc_freq = ifmsh->freq;
|
||||||
|
+ ssid->frequency = ifmsh->freq;
|
||||||
|
+ if (hostapd_set_freq_params(¶ms->freq,
|
||||||
|
+ ifmsh->conf->hw_mode,
|
||||||
|
+ ifmsh->freq,
|
||||||
|
+ ifmsh->conf->channel,
|
||||||
|
+ ifmsh->conf->ieee80211n,
|
||||||
|
+ ifmsh->conf->ieee80211ac,
|
||||||
|
+ ifmsh->conf->secondary_channel,
|
||||||
|
+ ifmsh->conf->vht_oper_chwidth,
|
||||||
|
+ ifmsh->conf->vht_oper_centr_freq_seg0_idx,
|
||||||
|
+ ifmsh->conf->vht_oper_centr_freq_seg1_idx,
|
||||||
|
+ ifmsh->conf->vht_capab)) {
|
||||||
|
+ wpa_printf(MSG_ERROR, "Error updating mesh frequency params.");
|
||||||
|
+ wpa_supplicant_mesh_deinit(wpa_s);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (wpas_mesh_init_rsn(wpa_s)) {
|
||||||
|
wpa_printf(MSG_ERROR, "Init RSN failed. Deinit mesh...");
|
||||||
|
wpa_supplicant_mesh_deinit(wpa_s);
|
|
@ -0,0 +1,107 @@
|
||||||
|
From d3201adfe7d2219217a07ef16ef365ad59c1a89b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Date: Tue, 29 May 2018 14:39:21 -0700
|
||||||
|
Subject: [PATCH 17/18] mesh: use right interface context to send DFS event
|
||||||
|
messages
|
||||||
|
|
||||||
|
use mesh interface context to send DFS event messages when
|
||||||
|
DFS events are on mesh interface.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
|
||||||
|
---
|
||||||
|
src/ap/dfs.c | 27 +++++++++++++++++++--------
|
||||||
|
1 file changed, 19 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/ap/dfs.c
|
||||||
|
+++ b/src/ap/dfs.c
|
||||||
|
@@ -637,6 +637,17 @@ static unsigned int dfs_get_cac_time(str
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static void *get_message_ctx(struct hostapd_iface *iface)
|
||||||
|
+{
|
||||||
|
+#ifdef CONFIG_MESH
|
||||||
|
+ if (iface->mconf)
|
||||||
|
+ return iface->owner;
|
||||||
|
+#endif /* CONFIG_MESH */
|
||||||
|
+
|
||||||
|
+ return iface->bss[0]->msg_ctx;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Main DFS handler
|
||||||
|
* 1 - continue channel/ap setup
|
||||||
|
@@ -719,7 +730,7 @@ int hostapd_handle_dfs(struct hostapd_if
|
||||||
|
/* Finally start CAC */
|
||||||
|
hostapd_set_state(iface, HAPD_IFACE_DFS);
|
||||||
|
wpa_printf(MSG_DEBUG, "DFS start CAC on %d MHz", iface->freq);
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_START
|
||||||
|
"freq=%d chan=%d sec_chan=%d, width=%d, seg0=%d, seg1=%d, cac_time=%ds",
|
||||||
|
iface->freq,
|
||||||
|
iface->conf->channel, iface->conf->secondary_channel,
|
||||||
|
@@ -768,7 +779,7 @@ int hostapd_dfs_complete_cac(struct host
|
||||||
|
int ht_enabled, int chan_offset, int chan_width,
|
||||||
|
int cf1, int cf2)
|
||||||
|
{
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_COMPLETED
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_COMPLETED
|
||||||
|
"success=%d freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
|
||||||
|
success, freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
|
||||||
|
|
||||||
|
@@ -810,7 +821,7 @@ int hostapd_dfs_pre_cac_expired(struct h
|
||||||
|
int ht_enabled, int chan_offset, int chan_width,
|
||||||
|
int cf1, int cf2)
|
||||||
|
{
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_PRE_CAC_EXPIRED
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_PRE_CAC_EXPIRED
|
||||||
|
"freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
|
||||||
|
freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
|
||||||
|
|
||||||
|
@@ -848,7 +859,7 @@ static int hostapd_dfs_start_channel_swi
|
||||||
|
|
||||||
|
wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d",
|
||||||
|
channel->chan);
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NEW_CHANNEL
|
||||||
|
"freq=%d chan=%d sec_chan=%d", channel->freq,
|
||||||
|
channel->chan, secondary_channel);
|
||||||
|
|
||||||
|
@@ -935,7 +946,7 @@ static int hostapd_dfs_start_channel_swi
|
||||||
|
|
||||||
|
wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d",
|
||||||
|
channel->chan);
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NEW_CHANNEL
|
||||||
|
"freq=%d chan=%d sec_chan=%d", channel->freq,
|
||||||
|
channel->chan, secondary_channel);
|
||||||
|
|
||||||
|
@@ -997,7 +1008,7 @@ int hostapd_dfs_radar_detected(struct ho
|
||||||
|
{
|
||||||
|
int res;
|
||||||
|
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_RADAR_DETECTED
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_RADAR_DETECTED
|
||||||
|
"freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
|
||||||
|
freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
|
||||||
|
|
||||||
|
@@ -1028,7 +1039,7 @@ int hostapd_dfs_nop_finished(struct host
|
||||||
|
int ht_enabled, int chan_offset, int chan_width,
|
||||||
|
int cf1, int cf2)
|
||||||
|
{
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NOP_FINISHED
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NOP_FINISHED
|
||||||
|
"freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
|
||||||
|
freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
|
||||||
|
|
||||||
|
@@ -1078,7 +1089,7 @@ int hostapd_dfs_start_cac(struct hostapd
|
||||||
|
int ht_enabled, int chan_offset, int chan_width,
|
||||||
|
int cf1, int cf2)
|
||||||
|
{
|
||||||
|
- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START
|
||||||
|
+ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_START
|
||||||
|
"freq=%d chan=%d chan_offset=%d width=%d seg0=%d "
|
||||||
|
"seg1=%d cac_time=%ds",
|
||||||
|
freq, (freq - 5000) / 5, chan_offset, chan_width, cf1, cf2, 60);
|
|
@ -1,7 +1,7 @@
|
||||||
From 9a01d7f21bd33725dc33325a437c3cc4185ee8bd Mon Sep 17 00:00:00 2001
|
From 90fe6429624fc48bc0e5d2d7eeecb7498708b5e3 Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Golle <daniel@makrotopia.org>
|
From: Daniel Golle <daniel@makrotopia.org>
|
||||||
Date: Wed, 18 Apr 2018 19:24:31 +0200
|
Date: Wed, 18 Apr 2018 19:24:31 +0200
|
||||||
Subject: [PATCH 16/16] mesh: make forwarding configurable
|
Subject: [PATCH 18/18] mesh: make forwarding configurable
|
||||||
|
|
||||||
Allow mesh_fwding to be specified in a mesh bss config, pass that
|
Allow mesh_fwding to be specified in a mesh bss config, pass that
|
||||||
to the driver (only nl80211 implemented for now) and announce
|
to the driver (only nl80211 implemented for now) and announce
|
||||||
|
@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_STA_COUNT 2007
|
#define MAX_STA_COUNT 2007
|
||||||
@@ -618,6 +619,7 @@ struct hostapd_bss_config {
|
@@ -624,6 +625,7 @@ struct hostapd_bss_config {
|
||||||
|
|
||||||
#define MESH_ENABLED BIT(0)
|
#define MESH_ENABLED BIT(0)
|
||||||
int mesh;
|
int mesh;
|
||||||
|
@ -59,7 +59,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
|
||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
@@ -9230,6 +9230,9 @@ static int nl80211_put_mesh_config(struc
|
@@ -9228,6 +9228,9 @@ static int nl80211_put_mesh_config(struc
|
||||||
if (((params->flags & WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS) &&
|
if (((params->flags & WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS) &&
|
||||||
nla_put_u8(msg, NL80211_MESHCONF_AUTO_OPEN_PLINKS,
|
nla_put_u8(msg, NL80211_MESHCONF_AUTO_OPEN_PLINKS,
|
||||||
params->auto_plinks)) ||
|
params->auto_plinks)) ||
|
||||||
|
@ -71,7 +71,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
params->max_peer_links)) ||
|
params->max_peer_links)) ||
|
||||||
--- a/wpa_supplicant/config.c
|
--- a/wpa_supplicant/config.c
|
||||||
+++ b/wpa_supplicant/config.c
|
+++ b/wpa_supplicant/config.c
|
||||||
@@ -2211,6 +2211,7 @@ static const struct parse_data ssid_fiel
|
@@ -2212,6 +2212,7 @@ static const struct parse_data ssid_fiel
|
||||||
#ifdef CONFIG_MESH
|
#ifdef CONFIG_MESH
|
||||||
{ INT_RANGE(mode, 0, 5) },
|
{ INT_RANGE(mode, 0, 5) },
|
||||||
{ INT_RANGE(no_auto_peer, 0, 1) },
|
{ INT_RANGE(no_auto_peer, 0, 1) },
|
||||||
|
@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
{ INT_RANGE(mesh_rssi_threshold, -255, 1) },
|
{ INT_RANGE(mesh_rssi_threshold, -255, 1) },
|
||||||
#else /* CONFIG_MESH */
|
#else /* CONFIG_MESH */
|
||||||
{ INT_RANGE(mode, 0, 4) },
|
{ INT_RANGE(mode, 0, 4) },
|
||||||
@@ -2761,6 +2762,7 @@ void wpa_config_set_network_defaults(str
|
@@ -2763,6 +2764,7 @@ void wpa_config_set_network_defaults(str
|
||||||
ssid->dot11MeshRetryTimeout = DEFAULT_MESH_RETRY_TIMEOUT;
|
ssid->dot11MeshRetryTimeout = DEFAULT_MESH_RETRY_TIMEOUT;
|
||||||
ssid->dot11MeshConfirmTimeout = DEFAULT_MESH_CONFIRM_TIMEOUT;
|
ssid->dot11MeshConfirmTimeout = DEFAULT_MESH_CONFIRM_TIMEOUT;
|
||||||
ssid->dot11MeshHoldingTimeout = DEFAULT_MESH_HOLDING_TIMEOUT;
|
ssid->dot11MeshHoldingTimeout = DEFAULT_MESH_HOLDING_TIMEOUT;
|
||||||
|
@ -87,7 +87,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
ssid->mesh_rssi_threshold = DEFAULT_MESH_RSSI_THRESHOLD;
|
ssid->mesh_rssi_threshold = DEFAULT_MESH_RSSI_THRESHOLD;
|
||||||
#endif /* CONFIG_MESH */
|
#endif /* CONFIG_MESH */
|
||||||
#ifdef CONFIG_HT_OVERRIDES
|
#ifdef CONFIG_HT_OVERRIDES
|
||||||
@@ -3976,6 +3978,7 @@ struct wpa_config * wpa_config_alloc_emp
|
@@ -3978,6 +3980,7 @@ struct wpa_config * wpa_config_alloc_emp
|
||||||
config->user_mpm = DEFAULT_USER_MPM;
|
config->user_mpm = DEFAULT_USER_MPM;
|
||||||
config->max_peer_links = DEFAULT_MAX_PEER_LINKS;
|
config->max_peer_links = DEFAULT_MAX_PEER_LINKS;
|
||||||
config->mesh_max_inactivity = DEFAULT_MESH_MAX_INACTIVITY;
|
config->mesh_max_inactivity = DEFAULT_MESH_MAX_INACTIVITY;
|
||||||
|
@ -95,7 +95,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
config->dot11RSNASAERetransPeriod =
|
config->dot11RSNASAERetransPeriod =
|
||||||
DEFAULT_DOT11_RSNA_SAE_RETRANS_PERIOD;
|
DEFAULT_DOT11_RSNA_SAE_RETRANS_PERIOD;
|
||||||
config->fast_reauth = DEFAULT_FAST_REAUTH;
|
config->fast_reauth = DEFAULT_FAST_REAUTH;
|
||||||
@@ -4598,6 +4601,7 @@ static const struct global_parse_data gl
|
@@ -4600,6 +4603,7 @@ static const struct global_parse_data gl
|
||||||
{ INT(user_mpm), 0 },
|
{ INT(user_mpm), 0 },
|
||||||
{ INT_RANGE(max_peer_links, 0, 255), 0 },
|
{ INT_RANGE(max_peer_links, 0, 255), 0 },
|
||||||
{ INT(mesh_max_inactivity), 0 },
|
{ INT(mesh_max_inactivity), 0 },
|
||||||
|
@ -130,7 +130,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
* This timeout value is used in mesh STA to retransmit
|
* This timeout value is used in mesh STA to retransmit
|
||||||
--- a/wpa_supplicant/config_file.c
|
--- a/wpa_supplicant/config_file.c
|
||||||
+++ b/wpa_supplicant/config_file.c
|
+++ b/wpa_supplicant/config_file.c
|
||||||
@@ -817,6 +817,7 @@ static void wpa_config_write_network(FIL
|
@@ -818,6 +818,7 @@ static void wpa_config_write_network(FIL
|
||||||
#endif /* IEEE8021X_EAPOL */
|
#endif /* IEEE8021X_EAPOL */
|
||||||
INT(mode);
|
INT(mode);
|
||||||
INT(no_auto_peer);
|
INT(no_auto_peer);
|
||||||
|
@ -138,7 +138,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
INT(frequency);
|
INT(frequency);
|
||||||
INT(fixed_freq);
|
INT(fixed_freq);
|
||||||
#ifdef CONFIG_ACS
|
#ifdef CONFIG_ACS
|
||||||
@@ -1449,6 +1450,9 @@ static void wpa_config_write_global(FILE
|
@@ -1450,6 +1451,9 @@ static void wpa_config_write_global(FILE
|
||||||
fprintf(f, "mesh_max_inactivity=%d\n",
|
fprintf(f, "mesh_max_inactivity=%d\n",
|
||||||
config->mesh_max_inactivity);
|
config->mesh_max_inactivity);
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
fprintf(f, "dot11RSNASAERetransPeriod=%d\n",
|
fprintf(f, "dot11RSNASAERetransPeriod=%d\n",
|
||||||
--- a/wpa_supplicant/config_ssid.h
|
--- a/wpa_supplicant/config_ssid.h
|
||||||
+++ b/wpa_supplicant/config_ssid.h
|
+++ b/wpa_supplicant/config_ssid.h
|
||||||
@@ -492,6 +492,11 @@ struct wpa_ssid {
|
@@ -500,6 +500,11 @@ struct wpa_ssid {
|
||||||
int dot11MeshConfirmTimeout; /* msec */
|
int dot11MeshConfirmTimeout; /* msec */
|
||||||
int dot11MeshHoldingTimeout; /* msec */
|
int dot11MeshHoldingTimeout; /* msec */
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -120,6 +120,7 @@ static struct mesh_conf * mesh_config_cr
|
@@ -121,6 +121,7 @@ static struct mesh_conf * mesh_config_cr
|
||||||
conf->mesh_cc_id = 0;
|
conf->mesh_cc_id = 0;
|
||||||
conf->mesh_sp_id = MESH_SYNC_METHOD_NEIGHBOR_OFFSET;
|
conf->mesh_sp_id = MESH_SYNC_METHOD_NEIGHBOR_OFFSET;
|
||||||
conf->mesh_auth_id = (conf->security & MESH_CONF_SEC_AUTH) ? 1 : 0;
|
conf->mesh_auth_id = (conf->security & MESH_CONF_SEC_AUTH) ? 1 : 0;
|
||||||
|
@ -172,7 +172,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
conf->dot11MeshMaxRetries = ssid->dot11MeshMaxRetries;
|
conf->dot11MeshMaxRetries = ssid->dot11MeshMaxRetries;
|
||||||
conf->dot11MeshRetryTimeout = ssid->dot11MeshRetryTimeout;
|
conf->dot11MeshRetryTimeout = ssid->dot11MeshRetryTimeout;
|
||||||
conf->dot11MeshConfirmTimeout = ssid->dot11MeshConfirmTimeout;
|
conf->dot11MeshConfirmTimeout = ssid->dot11MeshConfirmTimeout;
|
||||||
@@ -254,6 +255,7 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -256,6 +257,7 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
bss->conf->start_disabled = 1;
|
bss->conf->start_disabled = 1;
|
||||||
bss->conf->mesh = MESH_ENABLED;
|
bss->conf->mesh = MESH_ENABLED;
|
||||||
bss->conf->ap_max_inactivity = wpa_s->conf->mesh_max_inactivity;
|
bss->conf->ap_max_inactivity = wpa_s->conf->mesh_max_inactivity;
|
||||||
|
@ -180,7 +180,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
|
||||||
if (ieee80211_is_dfs(ssid->frequency, wpa_s->hw.modes,
|
if (ieee80211_is_dfs(ssid->frequency, wpa_s->hw.modes,
|
||||||
wpa_s->hw.num_modes) && wpa_s->conf->country[0]) {
|
wpa_s->hw.num_modes) && wpa_s->conf->country[0]) {
|
||||||
@@ -507,6 +509,10 @@ int wpa_supplicant_join_mesh(struct wpa_
|
@@ -534,6 +536,10 @@ int wpa_supplicant_join_mesh(struct wpa_
|
||||||
}
|
}
|
||||||
params->conf.peer_link_timeout = wpa_s->conf->mesh_max_inactivity;
|
params->conf.peer_link_timeout = wpa_s->conf->mesh_max_inactivity;
|
||||||
|
|
|
@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -214,7 +214,7 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -215,7 +215,7 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/config.c
|
--- a/wpa_supplicant/config.c
|
||||||
+++ b/wpa_supplicant/config.c
|
+++ b/wpa_supplicant/config.c
|
||||||
@@ -2800,6 +2800,7 @@ void wpa_config_set_network_defaults(str
|
@@ -2802,6 +2802,7 @@ void wpa_config_set_network_defaults(str
|
||||||
ssid->mka_priority = DEFAULT_PRIO_NOT_KEY_SERVER;
|
ssid->mka_priority = DEFAULT_PRIO_NOT_KEY_SERVER;
|
||||||
#endif /* CONFIG_MACSEC */
|
#endif /* CONFIG_MACSEC */
|
||||||
ssid->mac_addr = -1;
|
ssid->mac_addr = -1;
|
||||||
|
@ -37,7 +37,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
struct dl_list list;
|
struct dl_list list;
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2285,6 +2285,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2312,6 +2312,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
vht_caps |= VHT_CAP_SUPP_CHAN_WIDTH_160MHZ;
|
vht_caps |= VHT_CAP_SUPP_CHAN_WIDTH_160MHZ;
|
||||||
seg0 = 114;
|
seg0 = 114;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2117,9 +2117,15 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2144,9 +2144,15 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
if (!dfs_enabled)
|
if (!dfs_enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
#endif /* CONFIG_HT_OVERRIDES */
|
#endif /* CONFIG_HT_OVERRIDES */
|
||||||
|
|
||||||
/* Check/setup HT40+/HT40- */
|
/* Check/setup HT40+/HT40- */
|
||||||
@@ -2147,8 +2153,6 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2174,8 +2180,6 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
if (!dfs_enabled)
|
if (!dfs_enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
if (ht40 == -1) {
|
if (ht40 == -1) {
|
||||||
if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS))
|
if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS))
|
||||||
return;
|
return;
|
||||||
@@ -2192,6 +2196,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2219,6 +2223,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
wpa_scan_results_free(scan_res);
|
wpa_scan_results_free(scan_res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||||
wpa_printf(MSG_DEBUG,
|
wpa_printf(MSG_DEBUG,
|
||||||
"IBSS/mesh: setup freq channel %d, sec_channel_offset %d",
|
"IBSS/mesh: setup freq channel %d, sec_channel_offset %d",
|
||||||
freq->channel, freq->sec_channel_offset);
|
freq->channel, freq->sec_channel_offset);
|
||||||
@@ -2287,7 +2292,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2314,7 +2319,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
}
|
}
|
||||||
} else if (ssid->max_oper_chwidth == VHT_CHANWIDTH_USE_HT) {
|
} else if (ssid->max_oper_chwidth == VHT_CHANWIDTH_USE_HT) {
|
||||||
chwidth = VHT_CHANWIDTH_USE_HT;
|
chwidth = VHT_CHANWIDTH_USE_HT;
|
||||||
|
|
|
@ -34,7 +34,7 @@ Forwarded: https://patchwork.ozlabs.org/patch/909751/
|
||||||
|
|
||||||
--- a/wpa_supplicant/config_ssid.h
|
--- a/wpa_supplicant/config_ssid.h
|
||||||
+++ b/wpa_supplicant/config_ssid.h
|
+++ b/wpa_supplicant/config_ssid.h
|
||||||
@@ -503,7 +503,7 @@ struct wpa_ssid {
|
@@ -511,7 +511,7 @@ struct wpa_ssid {
|
||||||
|
|
||||||
int vht;
|
int vht;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -272,9 +272,10 @@ void wpa_supplicant_cancel_auth_timeout(
|
@@ -292,9 +292,10 @@ void wpa_supplicant_cancel_auth_timeout(
|
||||||
*/
|
*/
|
||||||
void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s)
|
void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
|
|
|
@ -231,7 +231,7 @@
|
||||||
os_memset(&global, 0, sizeof(global));
|
os_memset(&global, 0, sizeof(global));
|
||||||
--- a/wpa_supplicant/events.c
|
--- a/wpa_supplicant/events.c
|
||||||
+++ b/wpa_supplicant/events.c
|
+++ b/wpa_supplicant/events.c
|
||||||
@@ -3901,8 +3901,8 @@ static void wpas_event_assoc_reject(stru
|
@@ -3976,8 +3976,8 @@ static void wpas_event_assoc_reject(stru
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@
|
||||||
{
|
{
|
||||||
struct wpa_supplicant *wpa_s = ctx;
|
struct wpa_supplicant *wpa_s = ctx;
|
||||||
int resched;
|
int resched;
|
||||||
@@ -4669,7 +4669,7 @@ void wpa_supplicant_event(void *ctx, enu
|
@@ -4745,7 +4745,7 @@ void wpa_supplicant_event(void *ctx, enu
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@
|
||||||
struct wpa_supplicant *wpa_s;
|
struct wpa_supplicant *wpa_s;
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -5770,7 +5770,6 @@ struct wpa_interface * wpa_supplicant_ma
|
@@ -5797,7 +5797,6 @@ struct wpa_interface * wpa_supplicant_ma
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,7 +261,7 @@
|
||||||
/**
|
/**
|
||||||
* wpa_supplicant_match_existing - Match existing interfaces
|
* wpa_supplicant_match_existing - Match existing interfaces
|
||||||
* @global: Pointer to global data from wpa_supplicant_init()
|
* @global: Pointer to global data from wpa_supplicant_init()
|
||||||
@@ -5807,6 +5806,11 @@ static int wpa_supplicant_match_existing
|
@@ -5834,6 +5833,11 @@ static int wpa_supplicant_match_existing
|
||||||
|
|
||||||
#endif /* CONFIG_MATCH_IFACE */
|
#endif /* CONFIG_MATCH_IFACE */
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wpa_supplicant_add_iface - Add a new network interface
|
* wpa_supplicant_add_iface - Add a new network interface
|
||||||
@@ -6063,6 +6067,8 @@ struct wpa_global * wpa_supplicant_init(
|
@@ -6090,6 +6094,8 @@ struct wpa_global * wpa_supplicant_init(
|
||||||
#ifndef CONFIG_NO_WPA_MSG
|
#ifndef CONFIG_NO_WPA_MSG
|
||||||
wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb);
|
wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb);
|
||||||
#endif /* CONFIG_NO_WPA_MSG */
|
#endif /* CONFIG_NO_WPA_MSG */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/hostapd/config_file.c
|
--- a/hostapd/config_file.c
|
||||||
+++ b/hostapd/config_file.c
|
+++ b/hostapd/config_file.c
|
||||||
@@ -3159,6 +3159,10 @@ static int hostapd_config_fill(struct ho
|
@@ -3214,6 +3214,10 @@ static int hostapd_config_fill(struct ho
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IEEE80211W */
|
#endif /* CONFIG_IEEE80211W */
|
||||||
#ifdef CONFIG_IEEE80211N
|
#ifdef CONFIG_IEEE80211N
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
} else if (os_strcmp(buf, "ht_capab") == 0) {
|
} else if (os_strcmp(buf, "ht_capab") == 0) {
|
||||||
--- a/src/ap/ap_config.h
|
--- a/src/ap/ap_config.h
|
||||||
+++ b/src/ap/ap_config.h
|
+++ b/src/ap/ap_config.h
|
||||||
@@ -769,6 +769,8 @@ struct hostapd_config {
|
@@ -775,6 +775,8 @@ struct hostapd_config {
|
||||||
|
|
||||||
int ht_op_mode_fixed;
|
int ht_op_mode_fixed;
|
||||||
u16 ht_capab;
|
u16 ht_capab;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/wpa_supplicant/config.c
|
--- a/wpa_supplicant/config.c
|
||||||
+++ b/wpa_supplicant/config.c
|
+++ b/wpa_supplicant/config.c
|
||||||
@@ -2216,6 +2216,7 @@ static const struct parse_data ssid_fiel
|
@@ -2217,6 +2217,7 @@ static const struct parse_data ssid_fiel
|
||||||
#else /* CONFIG_MESH */
|
#else /* CONFIG_MESH */
|
||||||
{ INT_RANGE(mode, 0, 4) },
|
{ INT_RANGE(mode, 0, 4) },
|
||||||
#endif /* CONFIG_MESH */
|
#endif /* CONFIG_MESH */
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
{ STR(id_str) },
|
{ STR(id_str) },
|
||||||
--- a/wpa_supplicant/config_file.c
|
--- a/wpa_supplicant/config_file.c
|
||||||
+++ b/wpa_supplicant/config_file.c
|
+++ b/wpa_supplicant/config_file.c
|
||||||
@@ -817,6 +817,7 @@ static void wpa_config_write_network(FIL
|
@@ -818,6 +818,7 @@ static void wpa_config_write_network(FIL
|
||||||
#endif /* IEEE8021X_EAPOL */
|
#endif /* IEEE8021X_EAPOL */
|
||||||
INT(mode);
|
INT(mode);
|
||||||
INT(no_auto_peer);
|
INT(no_auto_peer);
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
INT(fixed_freq);
|
INT(fixed_freq);
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -286,6 +286,8 @@ static int wpa_supplicant_mesh_init(stru
|
@@ -288,6 +288,8 @@ static int wpa_supplicant_mesh_init(stru
|
||||||
frequency);
|
frequency);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
if (conf->hw_mode == HOSTAPD_MODE_IEEE80211A && ssid->vht) {
|
if (conf->hw_mode == HOSTAPD_MODE_IEEE80211A && ssid->vht) {
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2024,12 +2024,12 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2051,12 +2051,12 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
{
|
{
|
||||||
enum hostapd_hw_mode hw_mode;
|
enum hostapd_hw_mode hw_mode;
|
||||||
struct hostapd_hw_modes *mode = NULL;
|
struct hostapd_hw_modes *mode = NULL;
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
unsigned int j, k;
|
unsigned int j, k;
|
||||||
struct hostapd_freq_params vht_freq;
|
struct hostapd_freq_params vht_freq;
|
||||||
int chwidth, seg0, seg1;
|
int chwidth, seg0, seg1;
|
||||||
@@ -2099,7 +2099,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2126,7 +2126,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Setup higher BW only for 5 GHz */
|
/* Setup higher BW only for 5 GHz */
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
for (chan_idx = 0; chan_idx < mode->num_channels; chan_idx++) {
|
for (chan_idx = 0; chan_idx < mode->num_channels; chan_idx++) {
|
||||||
--- a/wpa_supplicant/config_ssid.h
|
--- a/wpa_supplicant/config_ssid.h
|
||||||
+++ b/wpa_supplicant/config_ssid.h
|
+++ b/wpa_supplicant/config_ssid.h
|
||||||
@@ -848,6 +848,8 @@ struct wpa_ssid {
|
@@ -856,6 +856,8 @@ struct wpa_ssid {
|
||||||
*/
|
*/
|
||||||
int no_auto_peer;
|
int no_auto_peer;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -4221,7 +4221,7 @@ wpa_supplicant_alloc(struct wpa_supplica
|
@@ -4248,7 +4248,7 @@ wpa_supplicant_alloc(struct wpa_supplica
|
||||||
if (wpa_s == NULL)
|
if (wpa_s == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
wpa_s->scan_req = INITIAL_SCAN_REQ;
|
wpa_s->scan_req = INITIAL_SCAN_REQ;
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
nl80211_destroy_bss(bss);
|
nl80211_destroy_bss(bss);
|
||||||
if (!bss->added_if)
|
if (!bss->added_if)
|
||||||
i802_set_iface_flags(bss, 0);
|
i802_set_iface_flags(bss, 0);
|
||||||
@@ -7439,7 +7442,6 @@ static int wpa_driver_nl80211_deinit_ap(
|
@@ -7437,7 +7440,6 @@ static int wpa_driver_nl80211_deinit_ap(
|
||||||
if (!is_ap_interface(drv->nlmode))
|
if (!is_ap_interface(drv->nlmode))
|
||||||
return -1;
|
return -1;
|
||||||
wpa_driver_nl80211_del_beacon(bss);
|
wpa_driver_nl80211_del_beacon(bss);
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the P2P GO interface was dynamically added, then it is
|
* If the P2P GO interface was dynamically added, then it is
|
||||||
@@ -7459,7 +7461,6 @@ static int wpa_driver_nl80211_stop_ap(vo
|
@@ -7457,7 +7459,6 @@ static int wpa_driver_nl80211_stop_ap(vo
|
||||||
if (!is_ap_interface(drv->nlmode))
|
if (!is_ap_interface(drv->nlmode))
|
||||||
return -1;
|
return -1;
|
||||||
wpa_driver_nl80211_del_beacon(bss);
|
wpa_driver_nl80211_del_beacon(bss);
|
||||||
|
|
|
@ -166,7 +166,7 @@
|
||||||
/* Configure default/group WEP keys for static WEP */
|
/* Configure default/group WEP keys for static WEP */
|
||||||
int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
|
int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
|
||||||
{
|
{
|
||||||
@@ -893,12 +942,16 @@ void wpa_supplicant_set_state(struct wpa
|
@@ -913,12 +962,16 @@ void wpa_supplicant_set_state(struct wpa
|
||||||
|
|
||||||
sme_sched_obss_scan(wpa_s, 1);
|
sme_sched_obss_scan(wpa_s, 1);
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@
|
||||||
wpa_s->new_connection = 1;
|
wpa_s->new_connection = 1;
|
||||||
wpa_drv_set_operstate(wpa_s, 0);
|
wpa_drv_set_operstate(wpa_s, 0);
|
||||||
#ifndef IEEE8021X_EAPOL
|
#ifndef IEEE8021X_EAPOL
|
||||||
@@ -1920,6 +1973,8 @@ void wpa_supplicant_associate(struct wpa
|
@@ -1947,6 +2000,8 @@ void wpa_supplicant_associate(struct wpa
|
||||||
wpa_ssid_txt(ssid->ssid, ssid->ssid_len),
|
wpa_ssid_txt(ssid->ssid, ssid->ssid_len),
|
||||||
ssid->id);
|
ssid->id);
|
||||||
wpas_notify_mesh_group_started(wpa_s, ssid);
|
wpas_notify_mesh_group_started(wpa_s, ssid);
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
#else /* CONFIG_MESH */
|
#else /* CONFIG_MESH */
|
||||||
wpa_msg(wpa_s, MSG_ERROR,
|
wpa_msg(wpa_s, MSG_ERROR,
|
||||||
"mesh mode support not included in the build");
|
"mesh mode support not included in the build");
|
||||||
@@ -5396,6 +5451,16 @@ static int wpa_supplicant_init_iface(str
|
@@ -5423,6 +5478,16 @@ static int wpa_supplicant_init_iface(str
|
||||||
sizeof(wpa_s->bridge_ifname));
|
sizeof(wpa_s->bridge_ifname));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@
|
||||||
/* RSNA Supplicant Key Management - INITIALIZE */
|
/* RSNA Supplicant Key Management - INITIALIZE */
|
||||||
eapol_sm_notify_portEnabled(wpa_s->eapol, FALSE);
|
eapol_sm_notify_portEnabled(wpa_s->eapol, FALSE);
|
||||||
eapol_sm_notify_portValid(wpa_s->eapol, FALSE);
|
eapol_sm_notify_portValid(wpa_s->eapol, FALSE);
|
||||||
@@ -5717,6 +5782,11 @@ static void wpa_supplicant_deinit_iface(
|
@@ -5744,6 +5809,11 @@ static void wpa_supplicant_deinit_iface(
|
||||||
if (terminate)
|
if (terminate)
|
||||||
wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_TERMINATING);
|
wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_TERMINATING);
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
|
||||||
/* Helper macros for network block parser */
|
/* Helper macros for network block parser */
|
||||||
|
|
||||||
#ifdef OFFSET
|
#ifdef OFFSET
|
||||||
@@ -2281,6 +2373,8 @@ static const struct parse_data ssid_fiel
|
@@ -2282,6 +2374,8 @@ static const struct parse_data ssid_fiel
|
||||||
{ INT(ap_max_inactivity) },
|
{ INT(ap_max_inactivity) },
|
||||||
{ INT(dtim_period) },
|
{ INT(dtim_period) },
|
||||||
{ INT(beacon_int) },
|
{ INT(beacon_int) },
|
||||||
|
@ -162,7 +162,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
|
||||||
|
|
||||||
|
|
||||||
#define DEFAULT_EAP_WORKAROUND ((unsigned int) -1)
|
#define DEFAULT_EAP_WORKAROUND ((unsigned int) -1)
|
||||||
@@ -749,6 +751,9 @@ struct wpa_ssid {
|
@@ -757,6 +759,9 @@ struct wpa_ssid {
|
||||||
*/
|
*/
|
||||||
void *parent_cred;
|
void *parent_cred;
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
|
||||||
* macsec_policy - Determines the policy for MACsec secure session
|
* macsec_policy - Determines the policy for MACsec secure session
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -3034,6 +3034,12 @@ static void wpas_start_assoc_cb(struct w
|
@@ -3061,6 +3061,12 @@ static void wpas_start_assoc_cb(struct w
|
||||||
params.beacon_int = ssid->beacon_int;
|
params.beacon_int = ssid->beacon_int;
|
||||||
else
|
else
|
||||||
params.beacon_int = wpa_s->conf->beacon_int;
|
params.beacon_int = wpa_s->conf->beacon_int;
|
||||||
|
|
|
@ -29,7 +29,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
|
||||||
/**
|
/**
|
||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
@@ -9250,6 +9250,18 @@ static int nl80211_put_mesh_id(struct nl
|
@@ -9248,6 +9248,18 @@ static int nl80211_put_mesh_id(struct nl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
|
||||||
static int nl80211_put_mesh_config(struct nl_msg *msg,
|
static int nl80211_put_mesh_config(struct nl_msg *msg,
|
||||||
struct wpa_driver_mesh_bss_params *params)
|
struct wpa_driver_mesh_bss_params *params)
|
||||||
{
|
{
|
||||||
@@ -9311,6 +9323,7 @@ static int nl80211_join_mesh(struct i802
|
@@ -9309,6 +9321,7 @@ static int nl80211_join_mesh(struct i802
|
||||||
nl80211_put_basic_rates(msg, params->basic_rates) ||
|
nl80211_put_basic_rates(msg, params->basic_rates) ||
|
||||||
nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) ||
|
nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) ||
|
||||||
nl80211_put_beacon_int(msg, params->beacon_int) ||
|
nl80211_put_beacon_int(msg, params->beacon_int) ||
|
||||||
|
@ -58,7 +58,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
|
||||||
|
|
||||||
--- a/wpa_supplicant/mesh.c
|
--- a/wpa_supplicant/mesh.c
|
||||||
+++ b/wpa_supplicant/mesh.c
|
+++ b/wpa_supplicant/mesh.c
|
||||||
@@ -455,6 +455,7 @@ int wpa_supplicant_join_mesh(struct wpa_
|
@@ -482,6 +482,7 @@ int wpa_supplicant_join_mesh(struct wpa_
|
||||||
|
|
||||||
params->meshid = ssid->ssid;
|
params->meshid = ssid->ssid;
|
||||||
params->meshid_len = ssid->ssid_len;
|
params->meshid_len = ssid->ssid_len;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2097,11 +2097,13 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
@@ -2124,11 +2124,13 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||||
for (j = 0; j < wpa_s->last_scan_res_used; j++) {
|
for (j = 0; j < wpa_s->last_scan_res_used; j++) {
|
||||||
struct wpa_bss *bss = wpa_s->last_scan_res[j];
|
struct wpa_bss *bss = wpa_s->last_scan_res[j];
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
__func__, driver, drv_priv);
|
__func__, driver, drv_priv);
|
||||||
--- a/src/ap/ieee802_11.c
|
--- a/src/ap/ieee802_11.c
|
||||||
+++ b/src/ap/ieee802_11.c
|
+++ b/src/ap/ieee802_11.c
|
||||||
@@ -1682,12 +1682,13 @@ ieee802_11_set_radius_info(struct hostap
|
@@ -1712,12 +1712,13 @@ ieee802_11_set_radius_info(struct hostap
|
||||||
|
|
||||||
|
|
||||||
static void handle_auth(struct hostapd_data *hapd,
|
static void handle_auth(struct hostapd_data *hapd,
|
||||||
|
@ -117,7 +117,7 @@
|
||||||
u16 fc;
|
u16 fc;
|
||||||
const u8 *challenge = NULL;
|
const u8 *challenge = NULL;
|
||||||
u32 session_timeout, acct_interim_interval;
|
u32 session_timeout, acct_interim_interval;
|
||||||
@@ -1698,6 +1699,11 @@ static void handle_auth(struct hostapd_d
|
@@ -1728,6 +1729,11 @@ static void handle_auth(struct hostapd_d
|
||||||
char *identity = NULL;
|
char *identity = NULL;
|
||||||
char *radius_cui = NULL;
|
char *radius_cui = NULL;
|
||||||
u16 seq_ctrl;
|
u16 seq_ctrl;
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
|
|
||||||
if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {
|
if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {
|
||||||
wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)",
|
wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)",
|
||||||
@@ -1858,6 +1864,13 @@ static void handle_auth(struct hostapd_d
|
@@ -1888,6 +1894,13 @@ static void handle_auth(struct hostapd_d
|
||||||
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
if (res == HOSTAPD_ACL_PENDING)
|
if (res == HOSTAPD_ACL_PENDING)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -3137,12 +3150,12 @@ void fils_hlp_timeout(void *eloop_ctx, v
|
@@ -3167,12 +3180,12 @@ void fils_hlp_timeout(void *eloop_ctx, v
|
||||||
|
|
||||||
static void handle_assoc(struct hostapd_data *hapd,
|
static void handle_assoc(struct hostapd_data *hapd,
|
||||||
const struct ieee80211_mgmt *mgmt, size_t len,
|
const struct ieee80211_mgmt *mgmt, size_t len,
|
||||||
|
@ -158,7 +158,7 @@
|
||||||
struct sta_info *sta;
|
struct sta_info *sta;
|
||||||
u8 *tmp = NULL;
|
u8 *tmp = NULL;
|
||||||
struct hostapd_sta_wpa_psk_short *psk = NULL;
|
struct hostapd_sta_wpa_psk_short *psk = NULL;
|
||||||
@@ -3151,6 +3164,11 @@ static void handle_assoc(struct hostapd_
|
@@ -3181,6 +3194,11 @@ static void handle_assoc(struct hostapd_
|
||||||
#ifdef CONFIG_FILS
|
#ifdef CONFIG_FILS
|
||||||
int delay_assoc = 0;
|
int delay_assoc = 0;
|
||||||
#endif /* CONFIG_FILS */
|
#endif /* CONFIG_FILS */
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
|
|
||||||
if (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_req) :
|
if (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_req) :
|
||||||
sizeof(mgmt->u.assoc_req))) {
|
sizeof(mgmt->u.assoc_req))) {
|
||||||
@@ -3322,6 +3340,14 @@ static void handle_assoc(struct hostapd_
|
@@ -3352,6 +3370,14 @@ static void handle_assoc(struct hostapd_
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_MBO */
|
#endif /* CONFIG_MBO */
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@
|
||||||
/*
|
/*
|
||||||
* sta->capability is used in check_assoc_ies() for RRM enabled
|
* sta->capability is used in check_assoc_ies() for RRM enabled
|
||||||
* capability element.
|
* capability element.
|
||||||
@@ -3535,6 +3561,7 @@ static void handle_disassoc(struct hosta
|
@@ -3565,6 +3591,7 @@ static void handle_disassoc(struct hosta
|
||||||
wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
|
wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
|
||||||
MAC2STR(mgmt->sa),
|
MAC2STR(mgmt->sa),
|
||||||
le_to_host16(mgmt->u.disassoc.reason_code));
|
le_to_host16(mgmt->u.disassoc.reason_code));
|
||||||
|
@ -193,7 +193,7 @@
|
||||||
|
|
||||||
sta = ap_get_sta(hapd, mgmt->sa);
|
sta = ap_get_sta(hapd, mgmt->sa);
|
||||||
if (sta == NULL) {
|
if (sta == NULL) {
|
||||||
@@ -3600,6 +3627,8 @@ static void handle_deauth(struct hostapd
|
@@ -3630,6 +3657,8 @@ static void handle_deauth(struct hostapd
|
||||||
" reason_code=%d",
|
" reason_code=%d",
|
||||||
MAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code));
|
MAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code));
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@
|
||||||
sta = ap_get_sta(hapd, mgmt->sa);
|
sta = ap_get_sta(hapd, mgmt->sa);
|
||||||
if (sta == NULL) {
|
if (sta == NULL) {
|
||||||
wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
|
wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
|
||||||
@@ -3919,7 +3948,7 @@ int ieee802_11_mgmt(struct hostapd_data
|
@@ -3949,7 +3978,7 @@ int ieee802_11_mgmt(struct hostapd_data
|
||||||
|
|
||||||
|
|
||||||
if (stype == WLAN_FC_STYPE_PROBE_REQ) {
|
if (stype == WLAN_FC_STYPE_PROBE_REQ) {
|
||||||
|
@ -211,7 +211,7 @@
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3939,17 +3968,17 @@ int ieee802_11_mgmt(struct hostapd_data
|
@@ -3969,17 +3998,17 @@ int ieee802_11_mgmt(struct hostapd_data
|
||||||
switch (stype) {
|
switch (stype) {
|
||||||
case WLAN_FC_STYPE_AUTH:
|
case WLAN_FC_STYPE_AUTH:
|
||||||
wpa_printf(MSG_DEBUG, "mgmt::auth");
|
wpa_printf(MSG_DEBUG, "mgmt::auth");
|
||||||
|
|
Loading…
Reference in a new issue