diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 5bdee109efa..aa969b250ac 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_URL:=https://w1.fi/hostap.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2026-03-23 -PKG_SOURCE_VERSION:=3f9b7ae0780973446d3feea27b4caf6dbf43f0c6 -PKG_MIRROR_HASH:=5421a6bfe145559d27930010f1aba7781a483898e6de5462024871388f114661 +PKG_SOURCE_DATE:=2026-04-02 +PKG_SOURCE_VERSION:=b004de0bf1b54d669d358b7f33d6f474bd9719a6 +PKG_MIRROR_HASH:=0b0184e600c994a1f0415f52e8af26b39f13e376a30cdf0b4f3ca1a206e52fc8 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-3-Clause diff --git a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch index 2cf9c1d30c3..74f64f37df0 100644 --- a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch +++ b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch @@ -14,7 +14,7 @@ Signed-off-by: Peter Oh --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -3047,7 +3047,7 @@ static int drv_supports_vht(struct wpa_s +@@ -3048,7 +3048,7 @@ static int drv_supports_vht(struct wpa_s } @@ -23,7 +23,7 @@ Signed-off-by: Peter Oh { int i; -@@ -3056,7 +3056,10 @@ static bool ibss_mesh_is_80mhz_avail(int +@@ -3057,7 +3057,10 @@ static bool ibss_mesh_is_80mhz_avail(int chan = hw_get_channel_chan(mode, i, NULL); if (!chan || @@ -35,7 +35,7 @@ Signed-off-by: Peter Oh return false; } -@@ -3183,7 +3186,7 @@ static void ibss_mesh_select_40mhz(struc +@@ -3184,7 +3187,7 @@ static void ibss_mesh_select_40mhz(struc const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode, struct hostapd_freq_params *freq, @@ -44,7 +44,7 @@ Signed-off-by: Peter Oh { int chan_idx; struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL; -@@ -3214,8 +3217,11 @@ static void ibss_mesh_select_40mhz(struc +@@ -3215,8 +3218,11 @@ static void ibss_mesh_select_40mhz(struc return; /* Check primary channel flags */ @@ -58,7 +58,7 @@ Signed-off-by: Peter Oh #ifdef CONFIG_HT_OVERRIDES if (ssid->disable_ht40) -@@ -3250,8 +3256,11 @@ static void ibss_mesh_select_40mhz(struc +@@ -3251,8 +3257,11 @@ static void ibss_mesh_select_40mhz(struc return; /* Check secondary channel flags */ @@ -72,7 +72,7 @@ Signed-off-by: Peter Oh if (freq->ht_enabled) { if (ht40 == -1) { -@@ -3329,7 +3338,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3330,7 +3339,7 @@ static bool ibss_mesh_select_80_160mhz(s const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode, struct hostapd_freq_params *freq, @@ -81,7 +81,7 @@ Signed-off-by: Peter Oh static const int bw80[] = { 5180, 5260, 5500, 5580, 5660, 5745, 5825, 5955, 6035, 6115, 6195, 6275, 6355, 6435, -@@ -3382,7 +3391,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3383,7 +3392,7 @@ static bool ibss_mesh_select_80_160mhz(s goto skip_80mhz; /* Use 40 MHz if channel not usable */ @@ -90,7 +90,7 @@ Signed-off-by: Peter Oh goto skip_80mhz; chwidth = CONF_OPER_CHWIDTH_80MHZ; -@@ -3424,7 +3433,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3425,7 +3434,7 @@ static bool ibss_mesh_select_80_160mhz(s HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) && (ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_160MHZ || ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_320MHZ) && @@ -99,7 +99,7 @@ Signed-off-by: Peter Oh for (j = 0; j < ARRAY_SIZE(bw160); j++) { u8 start_chan; -@@ -3447,11 +3456,11 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3448,11 +3457,11 @@ static bool ibss_mesh_select_80_160mhz(s EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_MASK) && is_6ghz && ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_320MHZ && ibss_mesh_is_80mhz_avail(channel + 16 - @@ -114,7 +114,7 @@ Signed-off-by: Peter Oh for (j = 0; j < ARRAY_SIZE(bw320); j += 2) { if (freq->freq >= bw320[j] && freq->freq <= bw320[j + 1]) { -@@ -3480,10 +3489,12 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3481,10 +3490,12 @@ static bool ibss_mesh_select_80_160mhz(s if (!chan) continue; @@ -131,7 +131,7 @@ Signed-off-by: Peter Oh /* Found a suitable second segment for 80+80 */ chwidth = CONF_OPER_CHWIDTH_80P80MHZ; -@@ -3538,6 +3549,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3539,6 +3550,7 @@ void ibss_mesh_setup_freq(struct wpa_sup int obss_scan = 1; u8 channel; bool is_6ghz, is_24ghz; @@ -139,7 +139,7 @@ Signed-off-by: Peter Oh freq->freq = ssid->frequency; -@@ -3581,9 +3593,9 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3582,9 +3594,9 @@ void ibss_mesh_setup_freq(struct wpa_sup /* Setup higher BW only for 5 and 6 GHz */ if (mode->mode == HOSTAPD_MODE_IEEE80211A) { ibss_mesh_select_40mhz(wpa_s, ssid, mode, freq, obss_scan, diff --git a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch index 8c1ba694c5f..c81a8474c23 100644 --- a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch +++ b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch @@ -68,7 +68,7 @@ Signed-off-by: Markus Theil chan_idx, num_available_chandefs); --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -12010,6 +12010,10 @@ static int nl80211_switch_channel(void * +@@ -12012,6 +12012,10 @@ static int nl80211_switch_channel(void * if (ret) goto error; diff --git a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch index 91cea41fce9..70a1cb5d3b4 100644 --- a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch +++ b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch @@ -4,7 +4,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -5566,6 +5566,13 @@ static int add_associated_sta(struct hos +@@ -6370,6 +6370,13 @@ static int add_associated_sta(struct hos * drivers to accept the STA parameter configuration. Since this is * after a new FT-over-DS exchange, a new TK has been derived, so key * reinstallation is not a concern for this case. @@ -18,7 +18,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc */ wpa_printf(MSG_DEBUG, "Add associated STA " MACSTR " (added_unassoc=%d auth_alg=%u ft_over_ds=%u reassoc=%d authorized=%d ft_tk=%d fils_tk=%d)", -@@ -5579,7 +5586,8 @@ static int add_associated_sta(struct hos +@@ -6383,7 +6390,8 @@ static int add_associated_sta(struct hos (!(sta->flags & WLAN_STA_AUTHORIZED) || (reassoc && sta->ft_over_ds && sta->auth_alg == WLAN_AUTH_FT) || (!wpa_auth_sta_ft_tk_already_set(sta->wpa_sm) && diff --git a/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch b/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch index 6927afccf9f..9b6f96191a4 100644 --- a/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch +++ b/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch @@ -20,7 +20,7 @@ Signed-off-by: Stijn Tintel --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -4123,6 +4123,8 @@ int hostapd_remove_iface(struct hapd_int +@@ -4126,6 +4126,8 @@ int hostapd_remove_iface(struct hapd_int void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, int reassoc) { @@ -29,7 +29,7 @@ Signed-off-by: Stijn Tintel if (hapd->tkip_countermeasures) { hostapd_drv_sta_deauth(hapd, sta->addr, WLAN_REASON_MICHAEL_MIC_FAILURE); -@@ -4130,10 +4132,16 @@ void hostapd_new_assoc_sta(struct hostap +@@ -4133,10 +4135,16 @@ void hostapd_new_assoc_sta(struct hostap } #ifdef CONFIG_IEEE80211BE @@ -51,7 +51,7 @@ Signed-off-by: Stijn Tintel ap_sta_clear_assoc_timeout(hapd, sta); --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -1736,9 +1736,6 @@ bool ap_sta_set_authorized_flag(struct h +@@ -1742,9 +1742,6 @@ bool ap_sta_set_authorized_flag(struct h mld_assoc_link_id = -2; } #endif /* CONFIG_IEEE80211BE */ diff --git a/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch b/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch index 3231273f5a8..34823de67b9 100644 --- a/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch +++ b/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch @@ -26,7 +26,7 @@ Signed-off-by: David Bauer --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -2467,6 +2467,9 @@ struct wpa_driver_capa { +@@ -2469,6 +2469,9 @@ struct wpa_driver_capa { /** Maximum number of iterations in a single scan plan */ u32 max_sched_scan_plan_iterations; @@ -38,7 +38,7 @@ Signed-off-by: David Bauer --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c -@@ -1000,6 +1000,10 @@ static int wiphy_info_handler(struct nl_ +@@ -1004,6 +1004,10 @@ static int wiphy_info_handler(struct nl_ nla_get_u32(tb[NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS]); } @@ -51,7 +51,7 @@ Signed-off-by: David Bauer nla_get_u8(tb[NL80211_ATTR_MAX_MATCH_SETS]); --- a/src/drivers/driver_nl80211_scan.c +++ b/src/drivers/driver_nl80211_scan.c -@@ -235,7 +235,7 @@ nl80211_scan_common(struct i802_bss *bss +@@ -236,7 +236,7 @@ nl80211_scan_common(struct i802_bss *bss wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested"); } diff --git a/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch b/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch index 4b366414c54..e728fa72708 100644 --- a/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch +++ b/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch @@ -21,7 +21,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -769,6 +769,40 @@ endif +@@ -774,6 +774,40 @@ endif CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" endif @@ -62,7 +62,7 @@ Signed-off-by: Glenn Strauss ifeq ($(CONFIG_TLS), gnutls) ifndef CONFIG_CRYPTO # default to libgcrypt -@@ -948,9 +982,11 @@ endif +@@ -953,9 +987,11 @@ endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -74,7 +74,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_EAX AESOBJS += ../src/crypto/aes-eax.o NEED_AES_CTR=y -@@ -960,38 +996,48 @@ AESOBJS += ../src/crypto/aes-siv.o +@@ -965,38 +1001,48 @@ AESOBJS += ../src/crypto/aes-siv.o NEED_AES_CTR=y endif ifdef NEED_AES_CTR @@ -123,7 +123,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_DEC ifdef CONFIG_INTERNAL_AES AESOBJS += ../src/crypto/aes-internal-dec.o -@@ -1006,12 +1052,16 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1011,12 +1057,16 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -140,7 +140,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA1 SHA1OBJS += ../src/crypto/sha1-internal.o ifdef NEED_FIPS186_2_PRF -@@ -1020,16 +1070,22 @@ endif +@@ -1025,16 +1075,22 @@ endif endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -163,7 +163,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_SHA1 OBJS += $(SHA1OBJS) -@@ -1039,11 +1095,13 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1044,11 +1100,13 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -177,7 +177,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_MD5 ifdef CONFIG_INTERNAL_MD5 -@@ -1096,56 +1154,81 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1101,56 +1159,81 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -259,7 +259,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA384 CFLAGS += -DCONFIG_INTERNAL_SHA384 -@@ -1190,11 +1273,13 @@ HOBJS += $(SHA1OBJS) +@@ -1195,11 +1278,13 @@ HOBJS += $(SHA1OBJS) ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), wolfssl) @@ -273,7 +273,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_RADIUS_SERVER CFLAGS += -DRADIUS_SERVER -@@ -1374,7 +1459,9 @@ NOBJS += ../src/utils/trace.o +@@ -1379,7 +1464,9 @@ NOBJS += ../src/utils/trace.o endif HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o @@ -283,7 +283,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_AES HOBJS += ../src/crypto/aes-internal.o HOBJS += ../src/crypto/aes-internal-enc.o -@@ -1397,18 +1484,24 @@ SOBJS += ../src/common/sae.o +@@ -1402,18 +1489,24 @@ SOBJS += ../src/common/sae.o SOBJS += ../src/common/sae_pk.o SOBJS += ../src/common/dragonfly.o SOBJS += $(AESOBJS) @@ -7770,7 +7770,7 @@ Signed-off-by: Glenn Strauss CONFIG_SIM_SIMULATOR=y --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1266,6 +1266,29 @@ endif +@@ -1271,6 +1271,29 @@ endif CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" endif @@ -7800,7 +7800,7 @@ Signed-off-by: Glenn Strauss ifeq ($(CONFIG_TLS), gnutls) ifndef CONFIG_CRYPTO # default to libgcrypt -@@ -1458,9 +1481,11 @@ endif +@@ -1463,9 +1486,11 @@ endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -7812,7 +7812,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP # Seems to be needed at least with BoringSSL NEED_INTERNAL_AES_WRAP=y -@@ -1474,9 +1499,11 @@ endif +@@ -1479,9 +1504,11 @@ endif ifdef NEED_INTERNAL_AES_WRAP ifneq ($(CONFIG_TLS), linux) @@ -7824,7 +7824,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_EAX AESOBJS += ../src/crypto/aes-eax.o NEED_AES_CTR=y -@@ -1486,35 +1513,45 @@ AESOBJS += ../src/crypto/aes-siv.o +@@ -1491,35 +1518,45 @@ AESOBJS += ../src/crypto/aes-siv.o NEED_AES_CTR=y endif ifdef NEED_AES_CTR @@ -7870,7 +7870,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_ENC ifdef CONFIG_INTERNAL_AES AESOBJS += ../src/crypto/aes-internal-enc.o -@@ -1529,12 +1566,16 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1534,12 +1571,16 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -7887,7 +7887,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA1 SHA1OBJS += ../src/crypto/sha1-internal.o ifdef NEED_FIPS186_2_PRF -@@ -1546,29 +1587,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2 +@@ -1551,29 +1592,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2 else ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -7925,7 +7925,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_MD5 ifdef CONFIG_INTERNAL_MD5 MD5OBJS += ../src/crypto/md5-internal.o -@@ -1623,12 +1672,17 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1628,12 +1677,17 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -7943,7 +7943,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA256 SHA256OBJS += ../src/crypto/sha256-internal.o endif -@@ -1641,50 +1695,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512 +@@ -1646,50 +1700,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512 SHA256OBJS += ../src/crypto/sha512-internal.o endif ifdef NEED_TLS_PRF_SHA256 @@ -8012,7 +8012,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_ASN1 OBJS += ../src/tls/asn1.o -@@ -1859,10 +1931,12 @@ ifdef CONFIG_FIPS +@@ -1864,10 +1936,12 @@ ifdef CONFIG_FIPS CFLAGS += -DCONFIG_FIPS ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) diff --git a/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch b/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch index 8e4e7d26018..faeec75a8ef 100644 --- a/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch +++ b/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch @@ -12,7 +12,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -783,10 +783,6 @@ endif +@@ -788,10 +788,6 @@ endif OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o SOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o @@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1277,10 +1277,6 @@ endif +@@ -1282,10 +1282,6 @@ endif OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o diff --git a/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch b/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch index bac54cf6ff1..23e5af97b6e 100644 --- a/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch +++ b/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch @@ -61,7 +61,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -719,6 +719,7 @@ CFLAGS += -DCONFIG_TLSV12 +@@ -724,6 +724,7 @@ CFLAGS += -DCONFIG_TLSV12 endif ifeq ($(CONFIG_TLS), wolfssl) @@ -69,7 +69,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 CONFIG_CRYPTO=wolfssl ifdef TLS_FUNCS -@@ -740,6 +741,7 @@ endif +@@ -745,6 +746,7 @@ endif endif ifeq ($(CONFIG_TLS), openssl) @@ -77,7 +77,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 CONFIG_CRYPTO=openssl ifdef TLS_FUNCS -@@ -770,6 +772,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF +@@ -775,6 +777,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF endif ifeq ($(CONFIG_TLS), mbedtls) @@ -85,7 +85,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=mbedtls endif -@@ -800,6 +803,7 @@ endif +@@ -805,6 +808,7 @@ endif endif ifeq ($(CONFIG_TLS), gnutls) @@ -93,7 +93,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO # default to libgcrypt CONFIG_CRYPTO=gnutls -@@ -830,6 +834,7 @@ endif +@@ -835,6 +839,7 @@ endif endif ifeq ($(CONFIG_TLS), internal) @@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=internal endif -@@ -908,6 +913,7 @@ endif +@@ -913,6 +918,7 @@ endif endif ifeq ($(CONFIG_TLS), linux) @@ -935,7 +935,7 @@ Signed-off-by: Glenn Strauss --- a/tests/hwsim/test_ap_ft.py +++ b/tests/hwsim/test_ap_ft.py -@@ -2543,11 +2543,11 @@ def test_ap_ft_ap_oom5(dev, apdev): +@@ -2575,11 +2575,11 @@ def test_ap_ft_ap_oom5(dev, apdev): # This will fail to roam dev[0].roam(bssid1, check_bssid=False) @@ -1289,7 +1289,7 @@ Signed-off-by: Glenn Strauss if (need_more_data) { --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1224,6 +1224,7 @@ TLS_FUNCS=y +@@ -1229,6 +1229,7 @@ TLS_FUNCS=y endif ifeq ($(CONFIG_TLS), wolfssl) @@ -1297,7 +1297,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 ifdef TLS_FUNCS CFLAGS += -DWOLFSSL_DER_LOAD -@@ -1240,6 +1241,7 @@ LIBS_p += -lwolfssl -lm +@@ -1245,6 +1246,7 @@ LIBS_p += -lwolfssl -lm endif ifeq ($(CONFIG_TLS), openssl) @@ -1305,7 +1305,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 ifdef TLS_FUNCS CFLAGS += -DEAP_TLS_OPENSSL -@@ -1267,6 +1269,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF +@@ -1272,6 +1274,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF endif ifeq ($(CONFIG_TLS), mbedtls) @@ -1313,7 +1313,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=mbedtls endif -@@ -1286,6 +1289,7 @@ endif +@@ -1291,6 +1294,7 @@ endif endif ifeq ($(CONFIG_TLS), gnutls) @@ -1321,7 +1321,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO # default to libgcrypt CONFIG_CRYPTO=gnutls -@@ -1316,6 +1320,7 @@ endif +@@ -1321,6 +1325,7 @@ endif endif ifeq ($(CONFIG_TLS), internal) @@ -1329,7 +1329,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=internal endif -@@ -1396,6 +1401,7 @@ endif +@@ -1401,6 +1406,7 @@ endif endif ifeq ($(CONFIG_TLS), linux) diff --git a/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch b/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch index 3d6ccb732b3..333b1587d9c 100644 --- a/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch +++ b/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch @@ -1,6 +1,6 @@ --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -2473,7 +2473,11 @@ static int hostapd_owe_iface_iter(struct +@@ -2476,7 +2476,11 @@ static int hostapd_owe_iface_iter(struct if (!bss->conf->ssid.ssid_set || !bss->conf->ssid.ssid_len || is_zero_ether_addr(bss->own_addr)) continue; @@ -13,7 +13,7 @@ os_memcpy(hapd->conf->owe_transition_bssid, bss->own_addr, ETH_ALEN); os_memcpy(hapd->conf->owe_transition_ssid, -@@ -2490,10 +2494,6 @@ static int hostapd_owe_iface_iter(struct +@@ -2493,10 +2497,6 @@ static int hostapd_owe_iface_iter(struct int hostapd_owe_trans_get_info(struct hostapd_data *hapd) { diff --git a/package/network/services/hostapd/patches/191-hostapd-add-support-for-specifying-the-link-id-in-th.patch b/package/network/services/hostapd/patches/191-hostapd-add-support-for-specifying-the-link-id-in-th.patch index 9aad7aba8d2..eeb5c1e3f61 100644 --- a/package/network/services/hostapd/patches/191-hostapd-add-support-for-specifying-the-link-id-in-th.patch +++ b/package/network/services/hostapd/patches/191-hostapd-add-support-for-specifying-the-link-id-in-th.patch @@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau * If set indicate the AP as disabled in the RNR element included in the --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -3116,7 +3116,10 @@ struct hostapd_iface * hostapd_alloc_ifa +@@ -3119,7 +3119,10 @@ struct hostapd_iface * hostapd_alloc_ifa #ifdef CONFIG_IEEE80211BE static void hostapd_bss_alloc_link_id(struct hostapd_data *hapd) { diff --git a/package/network/services/hostapd/patches/200-multicall.patch b/package/network/services/hostapd/patches/200-multicall.patch index 27f777a61e6..c77bfe93472 100644 --- a/package/network/services/hostapd/patches/200-multicall.patch +++ b/package/network/services/hostapd/patches/200-multicall.patch @@ -43,7 +43,7 @@ This allows building both hostapd and wpa_supplicant as a single binary LIBS += $(DRV_AP_LIBS) ifdef CONFIG_L2_PACKET -@@ -1425,6 +1431,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR) +@@ -1430,6 +1436,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR) _OBJS_VAR := OBJS include ../src/objs.mk @@ -56,7 +56,7 @@ This allows building both hostapd and wpa_supplicant as a single binary hostapd: $(OBJS) $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) @$(E) " LD " $@ -@@ -1513,6 +1525,12 @@ include ../src/objs.mk +@@ -1518,6 +1530,12 @@ include ../src/objs.mk _OBJS_VAR := SOBJS include ../src/objs.mk @@ -116,7 +116,7 @@ This allows building both hostapd and wpa_supplicant as a single binary struct hapd_interfaces *interfaces = ctx; --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -7309,8 +7309,8 @@ union wpa_event_data { +@@ -7313,8 +7313,8 @@ union wpa_event_data { * Driver wrapper code should call this function whenever an event is received * from the driver. */ @@ -127,7 +127,7 @@ This allows building both hostapd and wpa_supplicant as a single binary /** * wpa_supplicant_event_global - Report a driver event for wpa_supplicant -@@ -7322,7 +7322,7 @@ void wpa_supplicant_event(void *ctx, enu +@@ -7326,7 +7326,7 @@ void wpa_supplicant_event(void *ctx, enu * Same as wpa_supplicant_event(), but we search for the interface in * wpa_global. */ @@ -169,7 +169,7 @@ This allows building both hostapd and wpa_supplicant as a single binary OBJS += ibss_rsn.o endif -@@ -1015,6 +1018,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS +@@ -1020,6 +1023,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS LIBS += -ldl -rdynamic endif @@ -180,7 +180,7 @@ This allows building both hostapd and wpa_supplicant as a single binary endif ifdef CONFIG_AP -@@ -1022,9 +1029,11 @@ NEED_EAP_COMMON=y +@@ -1027,9 +1034,11 @@ NEED_EAP_COMMON=y NEED_RSN_AUTHENTICATOR=y CFLAGS += -DCONFIG_AP OBJS += ap.o @@ -192,7 +192,7 @@ This allows building both hostapd and wpa_supplicant as a single binary OBJS += ../src/ap/hostapd.o OBJS += ../src/ap/wpa_auth_glue.o OBJS += ../src/ap/utils.o -@@ -1116,6 +1125,12 @@ endif +@@ -1121,6 +1130,12 @@ endif ifdef CONFIG_HS20 OBJS += ../src/ap/hs20.o endif @@ -205,7 +205,7 @@ This allows building both hostapd and wpa_supplicant as a single binary endif ifdef CONFIG_MBO -@@ -1125,7 +1140,9 @@ NEED_GAS=y +@@ -1130,7 +1145,9 @@ NEED_GAS=y endif ifdef NEED_RSN_AUTHENTICATOR @@ -215,7 +215,7 @@ This allows building both hostapd and wpa_supplicant as a single binary NEED_AES_WRAP=y OBJS += ../src/ap/wpa_auth.o OBJS += ../src/ap/wpa_auth_ie.o -@@ -2125,6 +2142,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv) +@@ -2130,6 +2147,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv) _OBJS_VAR := OBJS include ../src/objs.mk @@ -228,7 +228,7 @@ This allows building both hostapd and wpa_supplicant as a single binary wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) @$(E) " LD " $@ -@@ -2257,6 +2280,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK) +@@ -2262,6 +2285,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK) $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ @$(E) " sed" $< @@ -278,7 +278,7 @@ This allows building both hostapd and wpa_supplicant as a single binary os_memset(&eapol_test, 0, sizeof(eapol_test)); --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c -@@ -6618,8 +6618,8 @@ static int wpas_pasn_auth(struct wpa_sup +@@ -6627,8 +6627,8 @@ static int wpas_pasn_auth(struct wpa_sup #endif /* CONFIG_PASN */ @@ -289,7 +289,7 @@ This allows building both hostapd and wpa_supplicant as a single binary { struct wpa_supplicant *wpa_s = ctx; int resched; -@@ -7613,7 +7613,7 @@ void wpa_supplicant_event(void *ctx, enu +@@ -7622,7 +7622,7 @@ void wpa_supplicant_event(void *ctx, enu } @@ -331,7 +331,7 @@ This allows building both hostapd and wpa_supplicant as a single binary os_memset(&global, 0, sizeof(global)); --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -8253,7 +8253,6 @@ struct wpa_interface * wpa_supplicant_ma +@@ -8259,7 +8259,6 @@ struct wpa_interface * wpa_supplicant_ma return NULL; } @@ -339,7 +339,7 @@ This allows building both hostapd and wpa_supplicant as a single binary /** * wpa_supplicant_match_existing - Match existing interfaces * @global: Pointer to global data from wpa_supplicant_init() -@@ -8288,6 +8287,11 @@ static int wpa_supplicant_match_existing +@@ -8294,6 +8293,11 @@ static int wpa_supplicant_match_existing #endif /* CONFIG_MATCH_IFACE */ @@ -351,7 +351,7 @@ This allows building both hostapd and wpa_supplicant as a single binary /** * wpa_supplicant_add_iface - Add a new network interface -@@ -8544,6 +8548,8 @@ struct wpa_global * wpa_supplicant_init( +@@ -8550,6 +8554,8 @@ struct wpa_global * wpa_supplicant_init( #ifndef CONFIG_NO_WPA_MSG wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb); #endif /* CONFIG_NO_WPA_MSG */ diff --git a/package/network/services/hostapd/patches/201-lto-jobserver-support.patch b/package/network/services/hostapd/patches/201-lto-jobserver-support.patch index 5fdedf9ca8c..2211d0eedad 100644 --- a/package/network/services/hostapd/patches/201-lto-jobserver-support.patch +++ b/package/network/services/hostapd/patches/201-lto-jobserver-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -1438,7 +1438,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS) +@@ -1443,7 +1443,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS) @$(AR) cr $@ hostapd_multi.o $(OBJS) hostapd: $(OBJS) @@ -14,7 +14,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel @$(E) " LD " $@ ifdef CONFIG_WPA_TRACE -@@ -1449,7 +1449,7 @@ _OBJS_VAR := OBJS_c +@@ -1454,7 +1454,7 @@ _OBJS_VAR := OBJS_c include ../src/objs.mk hostapd_cli: $(OBJS_c) @@ -25,7 +25,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -2149,31 +2149,31 @@ wpa_supplicant_multi.a: .config $(BCHECK +@@ -2154,31 +2154,31 @@ wpa_supplicant_multi.a: .config $(BCHECK @$(AR) cr $@ wpa_supplicant_multi.o $(OBJS) wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) diff --git a/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch b/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch index 5dcd22160cd..b3718adf053 100644 --- a/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch +++ b/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch @@ -13,7 +13,7 @@ Signed-off-by: David Bauer --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c -@@ -13989,7 +13989,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -14007,7 +14007,7 @@ char * wpa_supplicant_ctrl_iface_process if (wpas_ctrl_iface_coloc_intf_report(wpa_s, buf + 18)) reply_len = -1; #endif /* CONFIG_WNM */ @@ -22,7 +22,7 @@ Signed-off-by: David Bauer } else if (os_strncmp(buf, "DISASSOC_IMMINENT ", 18) == 0) { if (ap_ctrl_iface_disassoc_imminent(wpa_s, buf + 18)) reply_len = -1; -@@ -13999,7 +13999,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -14017,7 +14017,7 @@ char * wpa_supplicant_ctrl_iface_process } else if (os_strncmp(buf, "BSS_TM_REQ ", 11) == 0) { if (ap_ctrl_iface_bss_tm_req(wpa_s, buf + 11)) reply_len = -1; diff --git a/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch b/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch index d5a7cebd5ee..ff5f1c86d44 100644 --- a/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch +++ b/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch @@ -113,7 +113,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality if (os_snprintf_error(buflen - len, ret)) --- a/src/ap/ieee802_1x.c +++ b/src/ap/ieee802_1x.c -@@ -2836,6 +2836,7 @@ static const char * bool_txt(bool val) +@@ -2863,6 +2863,7 @@ static const char * bool_txt(bool val) return val ? "TRUE" : "FALSE"; } @@ -121,7 +121,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen) { -@@ -3022,6 +3023,7 @@ int ieee802_1x_get_mib_sta(struct hostap +@@ -3049,6 +3050,7 @@ int ieee802_1x_get_mib_sta(struct hostap return len; } @@ -131,7 +131,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx) --- a/src/ap/wpa_auth.c +++ b/src/ap/wpa_auth.c -@@ -6526,6 +6526,7 @@ static const char * wpa_bool_txt(int val +@@ -6544,6 +6544,7 @@ static const char * wpa_bool_txt(int val return val ? "TRUE" : "FALSE"; } @@ -139,7 +139,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality #define RSN_SUITE "%02x-%02x-%02x-%d" #define RSN_SUITE_ARG(s) \ -@@ -6678,7 +6679,7 @@ int wpa_get_mib_sta(struct wpa_state_mac +@@ -6696,7 +6697,7 @@ int wpa_get_mib_sta(struct wpa_state_mac return len; } @@ -150,7 +150,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality { --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c -@@ -4253,6 +4253,8 @@ static u32 wpa_key_mgmt_suite(struct wpa +@@ -4272,6 +4272,8 @@ static u32 wpa_key_mgmt_suite(struct wpa } @@ -159,7 +159,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality #define RSN_SUITE "%02x-%02x-%02x-%d" #define RSN_SUITE_ARG(s) \ ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff -@@ -4334,6 +4336,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch +@@ -4353,6 +4355,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch return (int) len; } @@ -169,7 +169,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1073,6 +1073,9 @@ ifdef CONFIG_FILS +@@ -1078,6 +1078,9 @@ ifdef CONFIG_FILS OBJS += ../src/ap/fils_hlp.o endif ifdef CONFIG_CTRL_IFACE @@ -201,7 +201,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality if (wpa_s->ap_iface) { pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos, end - pos, -@@ -13318,6 +13318,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13336,6 +13336,7 @@ char * wpa_supplicant_ctrl_iface_process } else if (os_strncmp(buf, "NOTE ", 5) == 0) { wpa_printf(MSG_INFO, "NOTE: %s", buf + 5); wpa_trace_set_context(buf + 5); @@ -209,7 +209,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strcmp(buf, "MIB") == 0) { reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size); if (reply_len >= 0) { -@@ -13330,6 +13331,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13348,6 +13349,7 @@ char * wpa_supplicant_ctrl_iface_process reply_size - reply_len); #endif /* CONFIG_MACSEC */ } @@ -217,7 +217,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strncmp(buf, "STATUS", 6) == 0) { reply_len = wpa_supplicant_ctrl_iface_status( wpa_s, buf + 6, reply, reply_size); -@@ -13817,6 +13819,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13835,6 +13837,7 @@ char * wpa_supplicant_ctrl_iface_process reply_len = wpa_supplicant_ctrl_iface_bss( wpa_s, buf + 4, reply, reply_size); #ifdef CONFIG_AP @@ -225,7 +225,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strcmp(buf, "STA-FIRST") == 0) { reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size); } else if (os_strncmp(buf, "STA ", 4) == 0) { -@@ -13825,12 +13828,15 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13843,12 +13846,15 @@ char * wpa_supplicant_ctrl_iface_process } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply, reply_size); diff --git a/package/network/services/hostapd/patches/301-mesh-noscan.patch b/package/network/services/hostapd/patches/301-mesh-noscan.patch index 3d5fc89f6d3..cb737826456 100644 --- a/package/network/services/hostapd/patches/301-mesh-noscan.patch +++ b/package/network/services/hostapd/patches/301-mesh-noscan.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c -@@ -2718,6 +2718,7 @@ static const struct parse_data ssid_fiel +@@ -2795,6 +2795,7 @@ static const struct parse_data ssid_fiel #else /* CONFIG_MESH */ { INT_RANGE(mode, 0, 4) }, #endif /* CONFIG_MESH */ @@ -47,7 +47,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also /* --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -3119,7 +3119,7 @@ static bool ibss_mesh_can_use_vht(struct +@@ -3120,7 +3120,7 @@ static bool ibss_mesh_can_use_vht(struct const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode) { @@ -56,7 +56,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also return false; if (!drv_supports_vht(wpa_s, ssid)) -@@ -3193,7 +3193,7 @@ static void ibss_mesh_select_40mhz(struc +@@ -3194,7 +3194,7 @@ static void ibss_mesh_select_40mhz(struc int i, res; unsigned int j; static const int ht40plus_5ghz[] = { @@ -65,7 +65,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also 149, 157, 165, 173, 184, 192 }; static const int ht40plus_6ghz[] = { -@@ -3546,7 +3546,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3547,7 +3547,7 @@ void ibss_mesh_setup_freq(struct wpa_sup int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode); enum hostapd_hw_mode hw_mode; struct hostapd_hw_modes *mode = NULL; @@ -74,7 +74,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also u8 channel; bool is_6ghz, is_24ghz; bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR); -@@ -3590,6 +3590,8 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3591,6 +3591,8 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->he_enabled = ibss_mesh_can_use_he(wpa_s, ssid, mode, ieee80211_mode); freq->channel = channel; diff --git a/package/network/services/hostapd/patches/310-rescan_immediately.patch b/package/network/services/hostapd/patches/310-rescan_immediately.patch index 275db9dd6bd..14bf064defc 100644 --- a/package/network/services/hostapd/patches/310-rescan_immediately.patch +++ b/package/network/services/hostapd/patches/310-rescan_immediately.patch @@ -5,7 +5,7 @@ Subject: [PATCH] rescan_immediately.patch --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -6480,7 +6480,7 @@ wpa_supplicant_alloc(struct wpa_supplica +@@ -6481,7 +6481,7 @@ wpa_supplicant_alloc(struct wpa_supplica if (wpa_s == NULL) return NULL; wpa_s->scan_req = INITIAL_SCAN_REQ; diff --git a/package/network/services/hostapd/patches/370-preserve_radio_mask.patch b/package/network/services/hostapd/patches/370-preserve_radio_mask.patch index 7582fe1abe2..c933208ba20 100644 --- a/package/network/services/hostapd/patches/370-preserve_radio_mask.patch +++ b/package/network/services/hostapd/patches/370-preserve_radio_mask.patch @@ -67,7 +67,7 @@ if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_TX_STATUS) { drv->control_port_ap = 1; goto skip_wifi_status; -@@ -6529,7 +6549,7 @@ const char * nl80211_iftype_str(enum nl8 +@@ -6531,7 +6551,7 @@ const char * nl80211_iftype_str(enum nl8 static int nl80211_create_iface_once(struct wpa_driver_nl80211_data *drv, const char *ifname, enum nl80211_iftype iftype, @@ -76,7 +76,7 @@ int (*handler)(struct nl_msg *, void *), void *arg) { -@@ -6549,6 +6569,10 @@ static int nl80211_create_iface_once(str +@@ -6551,6 +6571,10 @@ static int nl80211_create_iface_once(str if (wds && nla_put_u8(msg, NL80211_ATTR_4ADDR, wds)) goto fail; @@ -87,7 +87,7 @@ /* * Tell cfg80211 that the interface belongs to the socket that created * it, and the interface should be deleted when the socket is closed. -@@ -6641,14 +6665,14 @@ static int nl80211_create_iface_once(str +@@ -6643,14 +6667,14 @@ static int nl80211_create_iface_once(str int nl80211_create_iface(struct wpa_driver_nl80211_data *drv, const char *ifname, enum nl80211_iftype iftype, @@ -105,7 +105,7 @@ /* if error occurred and interface exists already */ if (ret < 0 && if_nametoindex(ifname)) { -@@ -6674,7 +6698,7 @@ int nl80211_create_iface(struct wpa_driv +@@ -6676,7 +6700,7 @@ int nl80211_create_iface(struct wpa_driv /* Try to create the interface again */ ret = nl80211_create_iface_once(drv, ifname, iftype, addr, @@ -114,7 +114,7 @@ } if (ret >= 0 && is_p2p_net_interface(iftype)) { -@@ -9010,8 +9034,8 @@ static int i802_set_wds_sta(void *priv, +@@ -9012,8 +9036,8 @@ static int i802_set_wds_sta(void *priv, if (!if_nametoindex(name)) { if (nl80211_create_iface(drv, name, NL80211_IFTYPE_AP_VLAN, @@ -125,7 +125,7 @@ return -1; if (bridge_ifname) -@@ -9384,7 +9408,8 @@ static int wpa_driver_nl80211_if_add(voi +@@ -9386,7 +9410,8 @@ static int wpa_driver_nl80211_if_add(voi os_memset(&nonnetdev_info, 0, sizeof(nonnetdev_info)); ifidx = nl80211_create_iface(drv, ifname, nlmode, addr, @@ -135,7 +135,7 @@ &nonnetdev_info, use_existing); if (!nonnetdev_info.wdev_id_set || ifidx != 0) { wpa_printf(MSG_ERROR, -@@ -9403,7 +9428,8 @@ static int wpa_driver_nl80211_if_add(voi +@@ -9405,7 +9430,8 @@ static int wpa_driver_nl80211_if_add(voi (long long unsigned int) nonnetdev_info.wdev_id); } else { ifidx = nl80211_create_iface(drv, ifname, nlmode, addr, @@ -145,7 +145,7 @@ if (use_existing && ifidx == -ENFILE) { added = 0; ifidx = if_nametoindex(ifname); -@@ -9473,6 +9499,8 @@ static int wpa_driver_nl80211_if_add(voi +@@ -9475,6 +9501,8 @@ static int wpa_driver_nl80211_if_add(voi new_bss->ctx = bss_ctx; new_bss->added_if = added; diff --git a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch index 3da64b0e91a..949b0ef4b56 100644 --- a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch +++ b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch @@ -34,7 +34,7 @@ Signed-hostap: Antonio Quartulli #include "config.h" -@@ -2498,6 +2499,97 @@ static char * wpa_config_write_mac_value +@@ -2561,6 +2562,97 @@ static char * wpa_config_write_mac_value #endif /* NO_CONFIG_WRITE */ @@ -132,7 +132,7 @@ Signed-hostap: Antonio Quartulli /* Helper macros for network block parser */ #ifdef OFFSET -@@ -2794,6 +2886,8 @@ static const struct parse_data ssid_fiel +@@ -2871,6 +2963,8 @@ static const struct parse_data ssid_fiel { INT(ap_max_inactivity) }, { INT(dtim_period) }, { INT(beacon_int) }, @@ -155,7 +155,7 @@ Signed-hostap: Antonio Quartulli * macsec_policy - Determines the policy for MACsec secure session --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -4758,6 +4758,12 @@ static void wpas_start_assoc_cb(struct w +@@ -4759,6 +4759,12 @@ static void wpas_start_assoc_cb(struct w params.beacon_int = ssid->beacon_int; else params.beacon_int = wpa_s->conf->beacon_int; diff --git a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch index 110429774d7..69ceec1c0da 100644 --- a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch +++ b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch @@ -29,7 +29,7 @@ Tested-by: Simon Wunderlich struct wpa_driver_set_key_params { --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -12716,6 +12716,18 @@ static int nl80211_put_mesh_id(struct nl +@@ -12718,6 +12718,18 @@ static int nl80211_put_mesh_id(struct nl } @@ -48,7 +48,7 @@ Tested-by: Simon Wunderlich static int nl80211_put_mesh_config(struct nl_msg *msg, struct wpa_driver_mesh_bss_params *params) { -@@ -12777,6 +12789,7 @@ static int nl80211_join_mesh(struct i802 +@@ -12779,6 +12791,7 @@ static int nl80211_join_mesh(struct i802 nl80211_put_basic_rates(msg, params->basic_rates) || nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) || nl80211_put_beacon_int(msg, params->beacon_int) || diff --git a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch index df361233a39..7f9c6fdeb8a 100644 --- a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch +++ b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix issues with disabling obss scan when using fixed_freq on --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -3553,6 +3553,10 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3554,6 +3554,10 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->freq = ssid->frequency; diff --git a/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch b/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch index 6c078bd938f..71f9f5772cd 100644 --- a/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch +++ b/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch @@ -10,7 +10,7 @@ method. --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h -@@ -189,6 +189,21 @@ struct mld_link_info { +@@ -190,6 +190,21 @@ struct mld_link_info { }; /** @@ -32,7 +32,7 @@ method. * struct hostapd_data - hostapd per-BSS data structure */ struct hostapd_data { -@@ -202,6 +217,9 @@ struct hostapd_data { +@@ -203,6 +218,9 @@ struct hostapd_data { u8 own_addr[ETH_ALEN]; diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch index b6dd03ce992..675993b4335 100644 --- a/package/network/services/hostapd/patches/600-ubus_support.patch +++ b/package/network/services/hostapd/patches/600-ubus_support.patch @@ -143,7 +143,7 @@ probe/assoc/auth requests via object subscribe. return 0; } -@@ -2578,6 +2581,7 @@ static int hostapd_setup_interface_compl +@@ -2581,6 +2584,7 @@ static int hostapd_setup_interface_compl if (err) goto fail; @@ -151,7 +151,7 @@ probe/assoc/auth requests via object subscribe. wpa_printf(MSG_DEBUG, "Completing interface initialization"); if (iface->freq) { #ifdef NEED_AP_MLME -@@ -2792,6 +2796,7 @@ dfs_offload: +@@ -2795,6 +2799,7 @@ dfs_offload: fail: wpa_printf(MSG_ERROR, "Interface initialization failed"); @@ -159,7 +159,7 @@ probe/assoc/auth requests via object subscribe. if (iface->is_no_ir) { hostapd_set_state(iface, HAPD_IFACE_NO_IR); -@@ -3541,6 +3546,7 @@ void hostapd_interface_deinit_free(struc +@@ -3544,6 +3549,7 @@ void hostapd_interface_deinit_free(struc (unsigned int) iface->conf->num_bss); driver = iface->bss[0]->driver; drv_priv = iface->bss[0]->drv_priv; @@ -177,7 +177,7 @@ probe/assoc/auth requests via object subscribe. #define OCE_STA_CFON_ENABLED(hapd) \ ((hapd->conf->oce & OCE_STA_CFON) && \ -@@ -210,6 +211,7 @@ struct hostapd_data { +@@ -211,6 +212,7 @@ struct hostapd_data { struct hostapd_iface *iface; struct hostapd_config *iconf; struct hostapd_bss_config *conf; @@ -185,7 +185,7 @@ probe/assoc/auth requests via object subscribe. int interface_added; /* virtual interface added for this BSS */ unsigned int started:1; unsigned int disabled:1; -@@ -785,6 +787,7 @@ hostapd_alloc_bss_data(struct hostapd_if +@@ -793,6 +795,7 @@ hostapd_alloc_bss_data(struct hostapd_if struct hostapd_bss_config *bss); int hostapd_setup_interface(struct hostapd_iface *iface); int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err); @@ -195,7 +195,7 @@ probe/assoc/auth requests via object subscribe. struct hostapd_iface * hostapd_alloc_iface(void); --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -3376,7 +3376,7 @@ static void handle_auth(struct hostapd_d +@@ -4077,7 +4077,7 @@ static void handle_auth(struct hostapd_d u16 auth_alg, auth_transaction, status_code; u16 resp = WLAN_STATUS_SUCCESS; struct sta_info *sta = NULL; @@ -204,7 +204,7 @@ probe/assoc/auth requests via object subscribe. u16 fc; const u8 *challenge = NULL; u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN]; -@@ -3415,6 +3415,11 @@ static void handle_auth(struct hostapd_d +@@ -4116,6 +4116,11 @@ static void handle_auth(struct hostapd_d else sa = mgmt->sa; #endif /* CONFIG_IEEE80211BE */ @@ -216,7 +216,7 @@ probe/assoc/auth requests via object subscribe. auth_alg = le_to_host16(mgmt->u.auth.auth_alg); auth_transaction = le_to_host16(mgmt->u.auth.auth_transaction); -@@ -3584,6 +3589,13 @@ static void handle_auth(struct hostapd_d +@@ -4306,6 +4311,13 @@ static void handle_auth(struct hostapd_d resp = WLAN_STATUS_UNSPECIFIED_FAILURE; goto fail; } @@ -230,7 +230,7 @@ probe/assoc/auth requests via object subscribe. if (res == HOSTAPD_ACL_PENDING) return; -@@ -6189,7 +6201,7 @@ static void handle_assoc(struct hostapd_ +@@ -6999,7 +7011,7 @@ static void handle_assoc(struct hostapd_ int resp = WLAN_STATUS_SUCCESS; u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE; const u8 *pos; @@ -239,7 +239,7 @@ probe/assoc/auth requests via object subscribe. struct sta_info *sta; u8 *tmp = NULL; #ifdef CONFIG_FILS -@@ -6445,6 +6457,11 @@ static void handle_assoc(struct hostapd_ +@@ -7255,6 +7267,11 @@ static void handle_assoc(struct hostapd_ left = res; } #endif /* CONFIG_FILS */ @@ -251,7 +251,7 @@ probe/assoc/auth requests via object subscribe. /* followed by SSID and Supported rates; and HT capabilities if 802.11n * is used */ -@@ -6537,6 +6554,7 @@ static void handle_assoc(struct hostapd_ +@@ -7347,6 +7364,7 @@ static void handle_assoc(struct hostapd_ #ifdef CONFIG_TAXONOMY taxonomy_sta_info_assoc_req(hapd, sta, pos, left); @@ -259,7 +259,7 @@ probe/assoc/auth requests via object subscribe. #endif /* CONFIG_TAXONOMY */ sta->pending_wds_enable = 0; -@@ -6550,6 +6568,13 @@ static void handle_assoc(struct hostapd_ +@@ -7360,6 +7378,13 @@ static void handle_assoc(struct hostapd_ } #endif /* CONFIG_FILS */ @@ -273,7 +273,7 @@ probe/assoc/auth requests via object subscribe. fail: /* -@@ -6788,6 +6813,7 @@ static void handle_disassoc(struct hosta +@@ -7598,6 +7623,7 @@ static void handle_disassoc(struct hosta (unsigned long) len); return; } @@ -281,7 +281,7 @@ probe/assoc/auth requests via object subscribe. sta = ap_get_sta(hapd, mgmt->sa); if (!sta) { -@@ -6819,6 +6845,8 @@ static void handle_deauth(struct hostapd +@@ -7629,6 +7655,8 @@ static void handle_deauth(struct hostapd /* Clear the PTKSA cache entries for PASN */ ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE); @@ -313,7 +313,7 @@ probe/assoc/auth requests via object subscribe. wpa_printf(MSG_DEBUG, "RRM action %u is not supported", --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -603,6 +603,7 @@ void ap_handle_timer(void *eloop_ctx, vo +@@ -609,6 +609,7 @@ void ap_handle_timer(void *eloop_ctx, vo hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_INFO, "deauthenticated due to " "local deauth request"); @@ -321,7 +321,7 @@ probe/assoc/auth requests via object subscribe. ap_free_sta(hapd, sta); return; } -@@ -771,6 +772,7 @@ skip_poll: +@@ -777,6 +778,7 @@ skip_poll: mlme_deauthenticate_indication( hapd, sta, WLAN_REASON_PREV_AUTH_NOT_VALID); @@ -329,7 +329,7 @@ probe/assoc/auth requests via object subscribe. ap_free_sta(hapd, sta); break; } -@@ -1772,17 +1774,30 @@ void ap_sta_set_authorized_event(struct +@@ -1778,17 +1780,30 @@ void ap_sta_set_authorized_event(struct os_snprintf(buf, sizeof(buf), MACSTR, MAC2STR(sta->addr)); if (authorized) { @@ -360,7 +360,7 @@ probe/assoc/auth requests via object subscribe. #ifdef CONFIG_P2P if (wpa_auth_get_ip_addr(sta->wpa_sm, ip_addr_buf) == 0) { -@@ -1794,6 +1809,13 @@ void ap_sta_set_authorized_event(struct +@@ -1800,6 +1815,13 @@ void ap_sta_set_authorized_event(struct } #endif /* CONFIG_P2P */ @@ -374,7 +374,7 @@ probe/assoc/auth requests via object subscribe. keyid = ap_sta_wpa_get_keyid(hapd, sta); if (keyid) { os_snprintf(keyid_buf, sizeof(keyid_buf), -@@ -1818,17 +1840,19 @@ void ap_sta_set_authorized_event(struct +@@ -1824,17 +1846,19 @@ void ap_sta_set_authorized_event(struct " vlanid=%u", sta->vlan_id); #endif /* CONFIG_NO_VLAN */ @@ -400,7 +400,7 @@ probe/assoc/auth requests via object subscribe. hapd->msg_ctx_parent != hapd->msg_ctx) --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -265,6 +265,7 @@ struct sta_info { +@@ -284,6 +284,7 @@ struct sta_info { #ifdef CONFIG_TAXONOMY struct wpabuf *probe_ie_taxonomy; struct wpabuf *assoc_ie_taxonomy; @@ -408,7 +408,7 @@ probe/assoc/auth requests via object subscribe. #endif /* CONFIG_TAXONOMY */ #ifdef CONFIG_FILS -@@ -312,6 +313,7 @@ struct sta_info { +@@ -331,6 +332,7 @@ struct sta_info { #endif /* CONFIG_TESTING_OPTIONS */ #ifdef CONFIG_AIRTIME_POLICY unsigned int airtime_weight; diff --git a/package/network/services/hostapd/patches/601-ucode_support.patch b/package/network/services/hostapd/patches/601-ucode_support.patch index f03100f9050..7a8c7b898bd 100644 --- a/package/network/services/hostapd/patches/601-ucode_support.patch +++ b/package/network/services/hostapd/patches/601-ucode_support.patch @@ -8,7 +8,7 @@ as adding/removing interfaces. --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -1266,6 +1266,7 @@ void wpa_supplicant_set_state(struct wpa +@@ -1267,6 +1267,7 @@ void wpa_supplicant_set_state(struct wpa sme_sched_obss_scan(wpa_s, 0); } wpa_s->wpa_state = state; @@ -16,7 +16,7 @@ as adding/removing interfaces. #ifndef CONFIG_NO_ROBUST_AV if (state == WPA_COMPLETED && dl_list_len(&wpa_s->active_scs_ids) && -@@ -8386,6 +8387,8 @@ struct wpa_supplicant * wpa_supplicant_a +@@ -8392,6 +8393,8 @@ struct wpa_supplicant * wpa_supplicant_a } #endif /* CONFIG_P2P */ @@ -25,7 +25,7 @@ as adding/removing interfaces. return wpa_s; } -@@ -8412,6 +8415,8 @@ int wpa_supplicant_remove_iface(struct w +@@ -8418,6 +8421,8 @@ int wpa_supplicant_remove_iface(struct w struct wpa_supplicant *parent = wpa_s->parent; #endif /* CONFIG_MESH */ @@ -34,7 +34,7 @@ as adding/removing interfaces. /* Remove interface from the global list of interfaces */ prev = global->ifaces; if (prev == wpa_s) { -@@ -8731,6 +8736,7 @@ struct wpa_global * wpa_supplicant_init( +@@ -8737,6 +8742,7 @@ struct wpa_global * wpa_supplicant_init( eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0, wpas_periodic, global, NULL); @@ -42,7 +42,7 @@ as adding/removing interfaces. return global; } -@@ -8803,6 +8809,8 @@ void wpa_supplicant_deinit(struct wpa_gl +@@ -8809,6 +8815,8 @@ void wpa_supplicant_deinit(struct wpa_gl wpas_notify_supplicant_deinitialized(global); @@ -68,7 +68,7 @@ as adding/removing interfaces. extern const char *const wpa_supplicant_version; extern const char *const wpa_supplicant_license; -@@ -718,6 +720,7 @@ struct wpa_supplicant { +@@ -756,6 +758,7 @@ struct wpa_supplicant { unsigned char own_addr[ETH_ALEN]; unsigned char perm_addr[ETH_ALEN]; char ifname[100]; @@ -76,7 +76,7 @@ as adding/removing interfaces. u8 hw_dfs_domain; #ifdef CONFIG_MATCH_IFACE int matched; -@@ -1595,6 +1598,8 @@ struct wpa_supplicant { +@@ -1633,6 +1636,8 @@ struct wpa_supplicant { unsigned int enabled_4addr_mode:1; unsigned int multi_bss_support:1; unsigned int drv_authorized_port:1; @@ -332,7 +332,7 @@ as adding/removing interfaces. if (conf->wmm_enabled < 0) conf->wmm_enabled = hapd->iconf->ieee80211n | hapd->iconf->ieee80211ax; -@@ -1867,7 +1879,7 @@ int hostapd_set_acl(struct hostapd_data +@@ -1870,7 +1882,7 @@ int hostapd_set_acl(struct hostapd_data } @@ -341,7 +341,7 @@ as adding/removing interfaces. { #ifdef CONFIG_IEEE80211BE int ret; -@@ -2540,7 +2552,7 @@ static int hostapd_owe_iface_iter2(struc +@@ -2543,7 +2555,7 @@ static int hostapd_owe_iface_iter2(struc #endif /* CONFIG_OWE */ @@ -350,7 +350,7 @@ as adding/removing interfaces. { #ifdef CONFIG_OWE /* Check whether the enabled BSS can complete OWE transition mode -@@ -2997,7 +3009,7 @@ hostapd_alloc_bss_data(struct hostapd_if +@@ -3000,7 +3012,7 @@ hostapd_alloc_bss_data(struct hostapd_if } @@ -359,7 +359,7 @@ as adding/removing interfaces. { if (!hapd) return; -@@ -3205,7 +3217,7 @@ fail: +@@ -3208,7 +3220,7 @@ fail: } @@ -368,7 +368,7 @@ as adding/removing interfaces. { #ifdef CONFIG_IEEE80211BE struct hostapd_mld *mld, **all_mld; -@@ -4086,7 +4098,8 @@ int hostapd_remove_iface(struct hapd_int +@@ -4089,7 +4101,8 @@ int hostapd_remove_iface(struct hapd_int hapd_iface = interfaces->iface[i]; if (hapd_iface == NULL) return -1; @@ -388,7 +388,7 @@ as adding/removing interfaces. #define OCE_STA_CFON_ENABLED(hapd) \ ((hapd->conf->oce & OCE_STA_CFON) && \ -@@ -52,6 +53,10 @@ struct hapd_interfaces { +@@ -53,6 +54,10 @@ struct hapd_interfaces { struct hostapd_config * (*config_read_cb)(const char *config_fname); int (*ctrl_iface_init)(struct hostapd_data *hapd); void (*ctrl_iface_deinit)(struct hostapd_data *hapd); @@ -399,7 +399,7 @@ as adding/removing interfaces. int (*for_each_interface)(struct hapd_interfaces *interfaces, int (*cb)(struct hostapd_iface *iface, void *ctx), void *ctx); -@@ -212,6 +217,7 @@ struct hostapd_data { +@@ -213,6 +218,7 @@ struct hostapd_data { struct hostapd_config *iconf; struct hostapd_bss_config *conf; struct hostapd_ubus_bss ubus; @@ -407,7 +407,7 @@ as adding/removing interfaces. int interface_added; /* virtual interface added for this BSS */ unsigned int started:1; unsigned int disabled:1; -@@ -587,6 +593,7 @@ struct hostapd_mld { +@@ -595,6 +601,7 @@ struct hostapd_mld { */ struct hostapd_iface { struct hapd_interfaces *interfaces; @@ -415,7 +415,7 @@ as adding/removing interfaces. void *owner; char *config_fname; struct hostapd_config *conf; -@@ -796,11 +803,16 @@ struct hostapd_iface * hostapd_init(stru +@@ -804,11 +811,16 @@ struct hostapd_iface * hostapd_init(stru struct hostapd_iface * hostapd_interface_init_bss(struct hapd_interfaces *interfaces, const char *phy, const char *config_fname, int debug); @@ -432,7 +432,7 @@ as adding/removing interfaces. int hostapd_enable_iface(struct hostapd_iface *hapd_iface); int hostapd_reload_iface(struct hostapd_iface *hapd_iface); int hostapd_reload_bss_only(struct hostapd_data *bss); -@@ -826,6 +838,7 @@ hostapd_switch_channel_fallback(struct h +@@ -834,6 +846,7 @@ hostapd_switch_channel_fallback(struct h void hostapd_cleanup_cs_params(struct hostapd_data *hapd); void hostapd_periodic_iface(struct hostapd_iface *iface); int hostapd_owe_trans_get_info(struct hostapd_data *hapd); @@ -442,7 +442,7 @@ as adding/removing interfaces. void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap); --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -668,12 +668,17 @@ const char * sae_get_password(struct hos +@@ -763,12 +763,17 @@ const char * sae_get_password(struct hos struct sae_pt **s_pt, const struct sae_pk **s_pk) { @@ -461,7 +461,7 @@ as adding/removing interfaces. /* With sae_track_password functionality enabled, try to first find the * next viable wildcard-address password if a password identifier was * not used. Select an wildcard-addr entry if the STA is known to have -@@ -735,12 +740,30 @@ const char * sae_get_password(struct hos +@@ -830,12 +835,30 @@ const char * sae_get_password(struct hos pt = hapd->conf->ssid.pt; } @@ -494,7 +494,7 @@ as adding/removing interfaces. } } -@@ -3744,6 +3767,12 @@ static void handle_auth(struct hostapd_d +@@ -4466,6 +4489,12 @@ static void handle_auth(struct hostapd_d goto fail; } @@ -509,9 +509,9 @@ as adding/removing interfaces. --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -535,6 +535,11 @@ void ap_free_sta(struct hostapd_data *ha - - wpabuf_free(sta->sae_pw_id); +@@ -541,6 +541,11 @@ void ap_free_sta(struct hostapd_data *ha + os_free(sta->eap_auth_data.rsnxe); + #endif /* CONFIG_IEEE8021X_AUTH */ +#ifdef CONFIG_SAE + if (sta->sae_pt) @@ -521,7 +521,7 @@ as adding/removing interfaces. os_free(sta); } -@@ -1758,6 +1763,8 @@ void ap_sta_set_authorized_event(struct +@@ -1764,6 +1769,8 @@ void ap_sta_set_authorized_event(struct #endif /* CONFIG_P2P */ const u8 *ip_ptr = NULL; @@ -532,7 +532,7 @@ as adding/removing interfaces. if (sta->p2p_ie != NULL && --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -190,6 +190,9 @@ struct sta_info { +@@ -209,6 +209,9 @@ struct sta_info { int vlan_id_bound; /* updated by ap_sta_bind_vlan() */ /* PSKs from RADIUS authentication server */ struct hostapd_sta_wpa_psk_short *psk; @@ -588,7 +588,7 @@ as adding/removing interfaces. } --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -4174,6 +4174,25 @@ struct wpa_driver_ops { +@@ -4176,6 +4176,25 @@ struct wpa_driver_ops { const char *ifname); /** @@ -614,7 +614,7 @@ as adding/removing interfaces. * set_sta_vlan - Bind a station into a specific interface (AP only) * @priv: Private driver interface data * @ifname: Interface (main or virtual BSS or VLAN) -@@ -7023,6 +7042,7 @@ union wpa_event_data { +@@ -7027,6 +7046,7 @@ union wpa_event_data { /** * struct ch_switch @@ -622,7 +622,7 @@ as adding/removing interfaces. * @freq: Frequency of new channel in MHz * @ht_enabled: Whether this is an HT channel * @ch_offset: Secondary channel offset -@@ -7033,6 +7053,7 @@ union wpa_event_data { +@@ -7037,6 +7057,7 @@ union wpa_event_data { * @punct_bitmap: Puncturing bitmap */ struct ch_switch { @@ -702,7 +702,7 @@ as adding/removing interfaces. nl_cb_set(bss->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(bss->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -9178,6 +9199,7 @@ static void *i802_init(struct hostapd_da +@@ -9180,6 +9201,7 @@ static void *i802_init(struct hostapd_da char master_ifname[IFNAMSIZ]; int ifindex, br_ifindex = 0; int br_added = 0; @@ -710,7 +710,7 @@ as adding/removing interfaces. bss = wpa_driver_nl80211_drv_init(hapd, params->ifname, params->global_priv, 1, -@@ -9238,21 +9260,17 @@ static void *i802_init(struct hostapd_da +@@ -9240,21 +9262,17 @@ static void *i802_init(struct hostapd_da (params->num_bridge == 0 || !params->bridge[0])) add_ifidx(drv, br_ifindex, drv->ifindex); @@ -742,7 +742,7 @@ as adding/removing interfaces. } if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) { -@@ -9639,6 +9657,50 @@ static int wpa_driver_nl80211_if_remove( +@@ -9641,6 +9659,50 @@ static int wpa_driver_nl80211_if_remove( return 0; } @@ -793,7 +793,7 @@ as adding/removing interfaces. static int cookie_handler(struct nl_msg *msg, void *arg) { -@@ -11538,6 +11600,37 @@ static bool nl80211_is_drv_shared(void * +@@ -11540,6 +11602,37 @@ static bool nl80211_is_drv_shared(void * #endif /* CONFIG_IEEE80211BE */ @@ -831,7 +831,7 @@ as adding/removing interfaces. static int driver_nl80211_send_mlme(void *priv, const u8 *data, size_t data_len, int noack, unsigned int freq, -@@ -15544,6 +15637,8 @@ const struct wpa_driver_ops wpa_driver_n +@@ -15546,6 +15639,8 @@ const struct wpa_driver_ops wpa_driver_n .set_acl = wpa_driver_nl80211_set_acl, .if_add = wpa_driver_nl80211_if_add, .if_remove = driver_nl80211_if_remove, @@ -842,7 +842,7 @@ as adding/removing interfaces. .sta_add = wpa_driver_nl80211_sta_add, --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c -@@ -1261,6 +1261,7 @@ static void mlme_event_ch_switch(struct +@@ -1263,6 +1263,7 @@ static void mlme_event_ch_switch(struct struct nlattr *bw, struct nlattr *cf1, struct nlattr *cf2, struct nlattr *punct_bitmap, @@ -850,7 +850,7 @@ as adding/removing interfaces. int finished) { struct i802_bss *bss; -@@ -1326,6 +1327,8 @@ static void mlme_event_ch_switch(struct +@@ -1328,6 +1329,8 @@ static void mlme_event_ch_switch(struct data.ch_switch.cf1 = nla_get_u32(cf1); if (cf2) data.ch_switch.cf2 = nla_get_u32(cf2); @@ -859,7 +859,7 @@ as adding/removing interfaces. if (link) { data.ch_switch.link_id = nla_get_u8(link); -@@ -4421,6 +4424,7 @@ static void do_process_drv_event(struct +@@ -4423,6 +4426,7 @@ static void do_process_drv_event(struct tb[NL80211_ATTR_CENTER_FREQ1], tb[NL80211_ATTR_CENTER_FREQ2], tb[NL80211_ATTR_PUNCT_BITMAP], @@ -867,7 +867,7 @@ as adding/removing interfaces. 0); break; case NL80211_CMD_CH_SWITCH_NOTIFY: -@@ -4433,6 +4437,7 @@ static void do_process_drv_event(struct +@@ -4435,6 +4439,7 @@ static void do_process_drv_event(struct tb[NL80211_ATTR_CENTER_FREQ1], tb[NL80211_ATTR_CENTER_FREQ2], tb[NL80211_ATTR_PUNCT_BITMAP], @@ -941,7 +941,7 @@ as adding/removing interfaces. ifdef CONFIG_CODE_COVERAGE CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE LIBS += -lgcov -@@ -1077,6 +1085,9 @@ ifdef CONFIG_CTRL_IFACE_MIB +@@ -1082,6 +1090,9 @@ ifdef CONFIG_CTRL_IFACE_MIB CFLAGS += -DCONFIG_CTRL_IFACE_MIB endif OBJS += ../src/ap/ctrl_iface_ap.o @@ -1001,7 +1001,7 @@ as adding/removing interfaces. MULTI_AP_FRONTHAUL_BSS); wpa_s->multi_ap_ie = 1; } -@@ -5848,6 +5855,13 @@ static void wpas_event_rx_mgmt_action(st +@@ -5857,6 +5864,13 @@ static void wpas_event_rx_mgmt_action(st } #endif /* CONFIG_WNM */ @@ -1015,7 +1015,7 @@ as adding/removing interfaces. #ifdef CONFIG_GAS if ((mgmt->u.action.category == WLAN_ACTION_PUBLIC || mgmt->u.action.category == WLAN_ACTION_PROTECTED_DUAL) && -@@ -6654,6 +6668,7 @@ void supplicant_event(void *ctx, enum wp +@@ -6663,6 +6677,7 @@ void supplicant_event(void *ctx, enum wp event_to_string(event), event); #endif /* CONFIG_NO_STDOUT_DEBUG */ diff --git a/package/network/services/hostapd/patches/701-reload_config_inline.patch b/package/network/services/hostapd/patches/701-reload_config_inline.patch index 0efd3e2db07..86ee0e49527 100644 --- a/package/network/services/hostapd/patches/701-reload_config_inline.patch +++ b/package/network/services/hostapd/patches/701-reload_config_inline.patch @@ -58,7 +58,7 @@ as adding/removing interfaces. return NULL; --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -3410,8 +3410,13 @@ hostapd_interface_init_bss(struct hapd_i +@@ -3413,8 +3413,13 @@ hostapd_interface_init_bss(struct hapd_i } } diff --git a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch index b09115ed595..2817c2a114b 100644 --- a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch +++ b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch @@ -79,7 +79,7 @@ full device, e.g. in order to deal with hardware/driver limitations { --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h -@@ -840,6 +840,7 @@ void hostapd_periodic_iface(struct hosta +@@ -848,6 +848,7 @@ void hostapd_periodic_iface(struct hosta int hostapd_owe_trans_get_info(struct hostapd_data *hapd); void hostapd_owe_update_trans(struct hostapd_iface *iface);; void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx); diff --git a/package/network/services/hostapd/patches/740-snoop_iface.patch b/package/network/services/hostapd/patches/740-snoop_iface.patch index eecdbe9f85a..3a372e63d7b 100644 --- a/package/network/services/hostapd/patches/740-snoop_iface.patch +++ b/package/network/services/hostapd/patches/740-snoop_iface.patch @@ -112,7 +112,7 @@ untagged DHCP packets hapd->x_snoop_initialized = false; --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -4588,7 +4588,7 @@ struct wpa_driver_ops { +@@ -4590,7 +4590,7 @@ struct wpa_driver_ops { * Returns: 0 on success, negative (<0) on failure */ int (*br_set_net_param)(void *priv, enum drv_br_net_param param, @@ -123,7 +123,7 @@ untagged DHCP packets * get_wowlan - Get wake-on-wireless status --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -13236,7 +13236,7 @@ static const char * drv_br_net_param_str +@@ -13238,7 +13238,7 @@ static const char * drv_br_net_param_str static int wpa_driver_br_set_net_param(void *priv, enum drv_br_net_param param, @@ -132,7 +132,7 @@ untagged DHCP packets { struct i802_bss *bss = priv; char path[128]; -@@ -13262,8 +13262,11 @@ static int wpa_driver_br_set_net_param(v +@@ -13264,8 +13264,11 @@ static int wpa_driver_br_set_net_param(v return -EINVAL; } diff --git a/package/network/services/hostapd/patches/763-radius-wispr.patch b/package/network/services/hostapd/patches/763-radius-wispr.patch index b2fe10d6c8a..8de45ae1cc8 100644 --- a/package/network/services/hostapd/patches/763-radius-wispr.patch +++ b/package/network/services/hostapd/patches/763-radius-wispr.patch @@ -1,6 +1,6 @@ --- a/src/ap/ieee802_1x.c +++ b/src/ap/ieee802_1x.c -@@ -2005,6 +2005,25 @@ static int ieee802_1x_update_vlan(struct +@@ -2021,6 +2021,25 @@ static int ieee802_1x_update_vlan(struct } #endif /* CONFIG_NO_VLAN */ @@ -26,7 +26,7 @@ /** * ieee802_1x_receive_auth - Process RADIUS frames from Authentication Server -@@ -2121,6 +2140,7 @@ ieee802_1x_receive_auth(struct radius_ms +@@ -2137,6 +2156,7 @@ ieee802_1x_receive_auth(struct radius_ms ieee802_1x_check_hs20(hapd, sta, msg, session_timeout_set ? (int) session_timeout : -1); @@ -36,7 +36,7 @@ sm->eap_if->aaaFail = true; --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -95,6 +95,7 @@ struct sta_info { +@@ -114,6 +114,7 @@ struct sta_info { u8 supported_rates[WLAN_SUPP_RATES_MAX]; int supported_rates_len; u8 qosinfo; /* Valid when WLAN_STA_WMM is set */ diff --git a/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch b/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch index 542a1162a8b..ae548c54e87 100644 --- a/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch +++ b/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch @@ -39,7 +39,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -1449,6 +1449,11 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION +@@ -1454,6 +1454,11 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION OBJS += ../src/common/proc_coord.o endif @@ -373,7 +373,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 #ifdef CONFIG_FILS static struct wpabuf * -@@ -4138,8 +4141,8 @@ static u16 check_multi_ap(struct hostapd +@@ -4868,8 +4871,8 @@ static u16 check_multi_ap(struct hostapd } @@ -384,7 +384,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 { /* Supported rates not used in IEEE 802.11ad/DMG */ if (hapd->iface->current_mode && -@@ -4604,7 +4607,7 @@ static int __check_assoc_ies(struct host +@@ -5337,7 +5340,7 @@ static int __check_assoc_ies(struct host elems->ext_capab_len); if (resp != WLAN_STATUS_SUCCESS) goto out; @@ -393,7 +393,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 if (resp != WLAN_STATUS_SUCCESS) goto out; -@@ -6909,6 +6912,11 @@ static void handle_beacon(struct hostapd +@@ -7719,6 +7722,11 @@ static void handle_beacon(struct hostapd 0); ap_list_process_beacon(hapd->iface, mgmt, &elems, fi); @@ -407,7 +407,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 --- a/src/ap/ieee802_11.h +++ b/src/ap/ieee802_11.h -@@ -145,6 +145,8 @@ int hostapd_process_ml_assoc_req_addr(st +@@ -146,6 +146,8 @@ int hostapd_process_ml_assoc_req_addr(st const u8 *basic_mle, size_t basic_mle_len, u8 *mld_addr); int hostapd_get_aid(struct hostapd_data *hapd, struct sta_info *sta); @@ -418,7 +418,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 u16 copy_sta_vendor_vht(struct hostapd_data *hapd, struct sta_info *sta, --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -4282,7 +4282,7 @@ struct wpa_driver_ops { +@@ -4284,7 +4284,7 @@ struct wpa_driver_ops { * Returns: 0 on success, -1 on failure */ int (*set_wds_sta)(void *priv, const u8 *addr, int aid, int val, @@ -429,7 +429,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 * send_action - Transmit an Action frame --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -9030,25 +9030,15 @@ int nl80211_has_ifidx(struct wpa_driver_ +@@ -9032,25 +9032,15 @@ int nl80211_has_ifidx(struct wpa_driver_ static int i802_set_wds_sta(void *priv, const u8 *addr, int aid, int val, diff --git a/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch b/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch index 82f1cef29fd..e3ad5ee40c5 100644 --- a/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch +++ b/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch @@ -1,6 +1,6 @@ --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -2166,3 +2166,22 @@ void ap_sta_free_sta_profile(struct mld_ +@@ -2172,3 +2172,22 @@ void ap_sta_free_sta_profile(struct mld_ } } #endif /* CONFIG_IEEE80211BE */ @@ -25,7 +25,7 @@ + --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -430,23 +430,8 @@ int ap_sta_re_add(struct hostapd_data *h +@@ -453,23 +453,8 @@ int ap_sta_re_add(struct hostapd_data *h void ap_free_sta_pasn(struct hostapd_data *hapd, struct sta_info *sta);