diff --git a/package/network/utils/iw/Makefile b/package/network/utils/iw/Makefile index 6eb10c837f..6db9aaf105 100644 --- a/package/network/utils/iw/Makefile +++ b/package/network/utils/iw/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iw -PKG_VERSION:=5.8 -PKG_RELEASE:=2 +PKG_VERSION:=5.9 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/iw -PKG_HASH:=b59c4bacb0b6675cc09f2f30ebdceb91174cb65443d0a062fba2c09fad772db4 +PKG_HASH:=293a07109aeb7e36267cf59e3ce52857e9ffae3a6666eb8ac77894b1839fe1f2 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/iw/patches/001-nl80211_h_sync.patch b/package/network/utils/iw/patches/001-nl80211_h_sync.patch index 394acbd0e7..c944e02ba6 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -1,363 +1,21 @@ --- a/nl80211.h +++ b/nl80211.h -@@ -252,9 +252,13 @@ - * DOC: SAE authentication offload +@@ -2527,6 +2527,9 @@ enum nl80211_commands { + * override mask. Used with NL80211_ATTR_S1G_CAPABILITY in + * NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT. * - * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they -- * support offloading SAE authentication for WPA3-Personal networks. In -- * %NL80211_CMD_CONNECT the password for SAE should be specified using -- * %NL80211_ATTR_SAE_PASSWORD. -+ * support offloading SAE authentication for WPA3-Personal networks in station -+ * mode. Similarly @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP flag can be set by -+ * drivers indicating the offload support in AP mode. -+ * -+ * The password for SAE should be specified using %NL80211_ATTR_SAE_PASSWORD in -+ * %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP for station and AP mode -+ * respectively. - */ - - /** -@@ -647,13 +651,9 @@ - * authentication/association or not receiving a response from the AP. - * Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as - * well to remain backwards compatible. -- * When establishing a security association, drivers that support 4 way -- * handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when -- * the 4 way handshake is completed successfully. - * @NL80211_CMD_ROAM: Notification indicating the card/driver roamed by itself. -- * When a security association was established with the new AP (e.g. if -- * the FT protocol was used for roaming or the driver completed the 4 way -- * handshake), this event should be followed by an -+ * When a security association was established on an 802.1X network using -+ * fast transition, this event should be followed by an - * %NL80211_CMD_PORT_AUTHORIZED event. - * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify - * userspace that a connection was dropped by the AP or due to other -@@ -1067,13 +1067,11 @@ - * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously - * configured PMK for the authenticator address identified by - * %NL80211_ATTR_MAC. -- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way -- * handshake was completed successfully by the driver. The BSSID is -- * specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake -- * offload should send this event after indicating 802.11 association with -- * %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed -- * %NL80211_CMD_DISCONNECT should be indicated instead. -- * -+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was -+ * completed successfully. Drivers that support 4 way handshake offload -+ * should send this event after indicating 802.1X FT assocation with -+ * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT -+ * should be indicated instead. - * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request - * and RX notification. This command is used both as a request to transmit - * a control port frame and as a notification that a control port frame -@@ -2082,10 +2080,10 @@ enum nl80211_commands { - * operation). - * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information - * for the time while performing a channel switch. -- * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel -- * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL). -- * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel -- * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP). -+ * @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel -+ * switch or color change counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL). -+ * @NL80211_ATTR_CNTDWN_OFFS_PRESP: An array of offsets (u16) to the channel -+ * switch or color change counters in the probe response (%NL80211_ATTR_PROBE_RESP). - * - * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32. - * As specified in the &enum nl80211_rxmgmt_flags. -@@ -2515,6 +2513,23 @@ enum nl80211_commands { - * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from - * association request when used with NL80211_CMD_NEW_STATION). - * -+ * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS -+ * discovery. It is a nested attribute, see -+ * &enum nl80211_fils_discovery_attributes. -+ * -+ * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure -+ * unsolicited broadcast probe response. It is a nested attribute, see -+ * &enum nl80211_unsol_bcast_probe_resp_attributes. -+ * -+ * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from -+ * association request when used with NL80211_CMD_NEW_STATION) -+ * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element -+ * override mask. Used with NL80211_ATTR_S1G_CAPABILITY in -+ * NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT. -+ * + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce + * transmit power to stay within regulatory limits. u32, dBi. + * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use -@@ -2821,8 +2836,8 @@ enum nl80211_attrs { - NL80211_ATTR_CH_SWITCH_COUNT, - NL80211_ATTR_CH_SWITCH_BLOCK_TX, - NL80211_ATTR_CSA_IES, -- NL80211_ATTR_CSA_C_OFF_BEACON, -- NL80211_ATTR_CSA_C_OFF_PRESP, -+ NL80211_ATTR_CNTDWN_OFFS_BEACON, -+ NL80211_ATTR_CNTDWN_OFFS_PRESP, +@@ -3016,6 +3019,8 @@ enum nl80211_attrs { + NL80211_ATTR_S1G_CAPABILITY, + NL80211_ATTR_S1G_CAPABILITY_MASK, - NL80211_ATTR_RXMGMT_FLAGS, - -@@ -2997,6 +3012,15 @@ enum nl80211_attrs { - - NL80211_ATTR_HE_6GHZ_CAPABILITY, - -+ NL80211_ATTR_FILS_DISCOVERY, -+ -+ NL80211_ATTR_UNSOL_BCAST_PROBE_RESP, -+ -+ NL80211_ATTR_S1G_CAPABILITY, -+ NL80211_ATTR_S1G_CAPABILITY_MASK, -+ + NL80211_ATTR_WIPHY_ANTENNA_GAIN, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -3009,6 +3033,8 @@ enum nl80211_attrs { - #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG - #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER - #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA -+#define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON -+#define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP - - /* - * Allow user space programs to use #ifdef on new attributes by defining them -@@ -3186,6 +3212,18 @@ enum nl80211_he_gi { - NL80211_RATE_INFO_HE_GI_3_2, - }; - -+/** -+ * enum nl80211_he_ltf - HE long training field -+ * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec -+ * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec -+ * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec -+ */ -+enum nl80211_he_ltf { -+ NL80211_RATE_INFO_HE_1XLTF, -+ NL80211_RATE_INFO_HE_2XLTF, -+ NL80211_RATE_INFO_HE_4XLTF, -+}; -+ - /** - * enum nl80211_he_ru_alloc - HE RU allocation values - * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation -@@ -3725,6 +3763,16 @@ enum nl80211_wmm_rule { - * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel - * in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_OFFSET: frequency offset in KHz -+ * @NL80211_FREQUENCY_ATTR_1MHZ: 1 MHz operation is allowed -+ * on this channel in current regulatory domain. -+ * @NL80211_FREQUENCY_ATTR_2MHZ: 2 MHz operation is allowed -+ * on this channel in current regulatory domain. -+ * @NL80211_FREQUENCY_ATTR_4MHZ: 4 MHz operation is allowed -+ * on this channel in current regulatory domain. -+ * @NL80211_FREQUENCY_ATTR_8MHZ: 8 MHz operation is allowed -+ * on this channel in current regulatory domain. -+ * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed -+ * on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number - * currently defined - * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use -@@ -3756,6 +3804,11 @@ enum nl80211_frequency_attr { - NL80211_FREQUENCY_ATTR_WMM, - NL80211_FREQUENCY_ATTR_NO_HE, - NL80211_FREQUENCY_ATTR_OFFSET, -+ NL80211_FREQUENCY_ATTR_1MHZ, -+ NL80211_FREQUENCY_ATTR_2MHZ, -+ NL80211_FREQUENCY_ATTR_4MHZ, -+ NL80211_FREQUENCY_ATTR_8MHZ, -+ NL80211_FREQUENCY_ATTR_16MHZ, - - /* keep last */ - __NL80211_FREQUENCY_ATTR_AFTER_LAST, -@@ -4049,6 +4102,7 @@ enum nl80211_user_reg_hint_type { - * receiving frames destined to the local BSS - * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number - * currently defined -+ * @NL80211_SURVEY_INFO_FREQUENCY_OFFSET: center frequency offset in KHz - * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use - */ - enum nl80211_survey_info { -@@ -4064,6 +4118,7 @@ enum nl80211_survey_info { - NL80211_SURVEY_INFO_TIME_SCAN, - NL80211_SURVEY_INFO_PAD, - NL80211_SURVEY_INFO_TIME_BSS_RX, -+ NL80211_SURVEY_INFO_FREQUENCY_OFFSET, - - /* keep last */ - __NL80211_SURVEY_INFO_AFTER_LAST, -@@ -4741,6 +4796,10 @@ enum nl80211_key_attributes { - * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, - * see &struct nl80211_txrate_vht - * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi -+ * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection, -+ * see &struct nl80211_txrate_he -+ * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us. -+ * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF. - * @__NL80211_TXRATE_AFTER_LAST: internal - * @NL80211_TXRATE_MAX: highest TX rate attribute - */ -@@ -4750,6 +4809,9 @@ enum nl80211_tx_rate_attributes { - NL80211_TXRATE_HT, - NL80211_TXRATE_VHT, - NL80211_TXRATE_GI, -+ NL80211_TXRATE_HE, -+ NL80211_TXRATE_HE_GI, -+ NL80211_TXRATE_HE_LTF, - - /* keep last */ - __NL80211_TXRATE_AFTER_LAST, -@@ -4767,6 +4829,15 @@ struct nl80211_txrate_vht { - __u16 mcs[NL80211_VHT_NSS_MAX]; - }; - -+#define NL80211_HE_NSS_MAX 8 -+/** -+ * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap -+ * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.) -+ */ -+struct nl80211_txrate_he { -+ __u16 mcs[NL80211_HE_NSS_MAX]; -+}; -+ - enum nl80211_txrate_gi { - NL80211_TXRATE_DEFAULT_GI, - NL80211_TXRATE_FORCE_SGI, -@@ -5821,6 +5892,15 @@ enum nl80211_feature_flags { - * handshake with PSK in AP mode (PSK is passed as part of the start AP - * command). - * -+ * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication -+ * in AP mode (SAE password is passed as part of the start AP command). -+ * -+ * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery -+ * frames transmission -+ * -+ * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports -+ * unsolicited broadcast probe response transmission -+ * - * @NUM_NL80211_EXT_FEATURES: number of extended features. - * @MAX_NL80211_EXT_FEATURES: highest extended feature index. - */ -@@ -5878,6 +5958,9 @@ enum nl80211_ext_feature_index { - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS, - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK, -+ NL80211_EXT_FEATURE_SAE_OFFLOAD_AP, -+ NL80211_EXT_FEATURE_FILS_DISCOVERY, -+ NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP, - - /* add new features before the definition below */ - NUM_NL80211_EXT_FEATURES, -@@ -5992,6 +6075,8 @@ enum nl80211_timeout_reason { - * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with - * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means - * %NL80211_ATTR_SCAN_FREQUENCIES will not be included. -+ * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by -+ * 2.4/5 GHz APs - */ - enum nl80211_scan_flags { - NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, -@@ -6008,6 +6093,7 @@ enum nl80211_scan_flags { - NL80211_SCAN_FLAG_RANDOM_SN = 1<<11, - NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12, - NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13, -+ NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14, - }; - - /** -@@ -6910,6 +6996,13 @@ enum nl80211_peer_measurement_ftm_resp { - * - * @NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET: the OBSS PD minimum tx power offset. - * @NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET: the OBSS PD maximum tx power offset. -+ * @NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET: the non-SRG OBSS PD maximum -+ * tx power offset. -+ * @NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP: bitmap that indicates the BSS color -+ * values used by members of the SRG. -+ * @NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP: bitmap that indicates the partial -+ * BSSID values used by members of the SRG. -+ * @NL80211_HE_OBSS_PD_ATTR_SR_CTRL: The SR Control field of SRP element. - * - * @__NL80211_HE_OBSS_PD_ATTR_LAST: Internal - * @NL80211_HE_OBSS_PD_ATTR_MAX: highest OBSS PD attribute. -@@ -6919,6 +7012,10 @@ enum nl80211_obss_pd_attributes { - - NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET, - NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET, -+ NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET, -+ NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP, -+ NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP, -+ NL80211_HE_OBSS_PD_ATTR_SR_CTRL, - - /* keep last */ - __NL80211_HE_OBSS_PD_ATTR_LAST, -@@ -6972,4 +7069,64 @@ enum nl80211_iftype_akm_attributes { - NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1, - }; - -+/** -+ * enum nl80211_fils_discovery_attributes - FILS discovery configuration -+ * from IEEE Std 802.11ai-2016, Annex C.3 MIB detail. -+ * -+ * @__NL80211_FILS_DISCOVERY_ATTR_INVALID: Invalid -+ * -+ * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU). -+ * Allowed range: 0..10000 (TU = Time Unit) -+ * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU). -+ * Allowed range: 0..10000 (TU = Time Unit) -+ * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action -+ * frame including the headers. -+ * -+ * @__NL80211_FILS_DISCOVERY_ATTR_LAST: Internal -+ * @NL80211_FILS_DISCOVERY_ATTR_MAX: highest attribute -+ */ -+enum nl80211_fils_discovery_attributes { -+ __NL80211_FILS_DISCOVERY_ATTR_INVALID, -+ -+ NL80211_FILS_DISCOVERY_ATTR_INT_MIN, -+ NL80211_FILS_DISCOVERY_ATTR_INT_MAX, -+ NL80211_FILS_DISCOVERY_ATTR_TMPL, -+ -+ /* keep last */ -+ __NL80211_FILS_DISCOVERY_ATTR_LAST, -+ NL80211_FILS_DISCOVERY_ATTR_MAX = __NL80211_FILS_DISCOVERY_ATTR_LAST - 1 -+}; -+ -+/* -+ * FILS discovery template minimum length with action frame headers and -+ * mandatory fields. -+ */ -+#define NL80211_FILS_DISCOVERY_TMPL_MIN_LEN 42 -+ -+/** -+ * enum nl80211_unsol_bcast_probe_resp_attributes - Unsolicited broadcast probe -+ * response configuration. Applicable only in 6GHz. -+ * -+ * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID: Invalid -+ * -+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU). -+ * Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0 -+ * 26.17.2.3.2 (AP behavior for fast passive scanning). -+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response -+ * frame template (binary). -+ * -+ * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST: Internal -+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX: highest attribute -+ */ -+enum nl80211_unsol_bcast_probe_resp_attributes { -+ __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID, -+ -+ NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT, -+ NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL, -+ -+ /* keep last */ -+ __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST, -+ NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = -+ __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1 -+}; - #endif /* __LINUX_NL80211_H */ diff --git a/package/network/utils/iw/patches/200-reduce_size.patch b/package/network/utils/iw/patches/200-reduce_size.patch index 1e8286300b..af30876012 100644 --- a/package/network/utils/iw/patches/200-reduce_size.patch +++ b/package/network/utils/iw/patches/200-reduce_size.patch @@ -337,9 +337,9 @@ SECTION(switch); COMMAND(switch, freq, " [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz] [beacons ] [block-tx]\n" -@@ -956,3 +959,4 @@ COMMAND(set, tidconf, "[peer