From 13224f8b7327f714c8eca4e5a016d7ee252e081f Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 24 Feb 2018 11:43:28 +0100 Subject: [PATCH] iw: update to version 4.14 Signed-off-by: Felix Fietkau --- package/network/utils/iw/Makefile | 4 +- .../utils/iw/patches/001-nl80211_h_sync.patch | 669 +----------------- .../utils/iw/patches/120-antenna_gain.patch | 2 +- .../utils/iw/patches/200-reduce_size.patch | 102 ++- 4 files changed, 101 insertions(+), 676 deletions(-) diff --git a/package/network/utils/iw/Makefile b/package/network/utils/iw/Makefile index 9b3c12beca..912fc3e28d 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:=4.9 +PKG_VERSION:=4.14 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/iw -PKG_HASH:=324cc805fad52cba2c16b9ab569906889fb645cc962aac4cfda1db85d2de97ce +PKG_HASH:=f01671c0074bfdec082a884057edba1b9efd35c89eda554638496f03b769ad89 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 25ec1263ad..2052cb2afa 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -1,662 +1,39 @@ --- a/nl80211.h +++ b/nl80211.h -@@ -10,7 +10,7 @@ - * Copyright 2008, 2009 Luis R. Rodriguez - * Copyright 2008 Jouni Malinen - * Copyright 2008 Colin McCabe -- * Copyright 2015 Intel Deutschland GmbH -+ * Copyright 2015-2017 Intel Deutschland GmbH +@@ -2153,6 +2153,9 @@ enum nl80211_commands { + * @NL80211_ATTR_PMKR0_NAME: PMK-R0 Name for offloaded FT. + * @NL80211_ATTR_PORT_AUTHORIZED: (reserved) * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -173,6 +173,65 @@ - */ - - /** -+ * DOC: WPA/WPA2 EAPOL handshake offload -+ * -+ * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers -+ * can indicate they support offloading EAPOL handshakes for WPA/WPA2 -+ * preshared key authentication. In %NL80211_CMD_CONNECT the preshared -+ * key should be specified using %NL80211_ATTR_PMK. Drivers supporting -+ * this offload may reject the %NL80211_CMD_CONNECT when no preshared -+ * key material is provided, for example when that driver does not -+ * support setting the temporal keys through %CMD_NEW_KEY. -+ * -+ * Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be -+ * set by drivers indicating offload support of the PTK/GTK EAPOL -+ * handshakes during 802.1X authentication. In order to use the offload -+ * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS -+ * attribute flag. Drivers supporting this offload may reject the -+ * %NL80211_CMD_CONNECT when the attribute flag is not present. -+ * -+ * For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK -+ * using %NL80211_CMD_SET_PMK. For offloaded FT support also -+ * %NL80211_ATTR_PMKR0_NAME must be provided. -+ */ -+ -+/** -+ * DOC: FILS shared key authentication offload -+ * -+ * FILS shared key authentication offload can be advertized by drivers by -+ * setting @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD flag. The drivers that support -+ * FILS shared key authentication offload should be able to construct the -+ * authentication and association frames for FILS shared key authentication and -+ * eventually do a key derivation as per IEEE 802.11ai. The below additional -+ * parameters should be given to driver in %NL80211_CMD_CONNECT. -+ * %NL80211_ATTR_FILS_ERP_USERNAME - used to construct keyname_nai -+ * %NL80211_ATTR_FILS_ERP_REALM - used to construct keyname_nai -+ * %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used to construct erp message -+ * %NL80211_ATTR_FILS_ERP_RRK - used to generate the rIK and rMSK -+ * rIK should be used to generate an authentication tag on the ERP message and -+ * rMSK should be used to derive a PMKSA. -+ * rIK, rMSK should be generated and keyname_nai, sequence number should be used -+ * as specified in IETF RFC 6696. -+ * -+ * When FILS shared key authentication is completed, driver needs to provide the -+ * below additional parameters to userspace. -+ * %NL80211_ATTR_FILS_KEK - used for key renewal -+ * %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used in further EAP-RP exchanges -+ * %NL80211_ATTR_PMKID - used to identify the PMKSA used/generated -+ * %Nl80211_ATTR_PMK - used to update PMKSA cache in userspace -+ * The PMKSA can be maintained in userspace persistently so that it can be used -+ * later after reboots or wifi turn off/on also. -+ * -+ * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertized by a FILS -+ * capable AP supporting PMK caching. It specifies the scope within which the -+ * PMKSAs are cached in an ESS. %NL80211_CMD_SET_PMKSA and -+ * %NL80211_CMD_DEL_PMKSA are enhanced to allow support for PMKSA caching based -+ * on FILS cache identifier. Additionally %NL80211_ATTR_PMK is used with -+ * %NL80211_SET_PMKSA to specify the PMK corresponding to a PMKSA for driver to -+ * use in a FILS shared key connection with PMKSA caching. -+ */ -+ -+/** - * enum nl80211_commands - supported nl80211 commands - * - * @NL80211_CMD_UNSPEC: unspecified command to catch errors -@@ -323,7 +382,7 @@ - * @NL80211_CMD_GET_SCAN: get scan results - * @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters - * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the -- * probe requests at CCK rate or not. %NL80211_ATTR_MAC can be used to -+ * probe requests at CCK rate or not. %NL80211_ATTR_BSSID can be used to - * specify a BSSID to scan for; if not included, the wildcard BSSID will - * be used. - * @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to -@@ -351,7 +410,9 @@ - * are used. Extra IEs can also be passed from the userspace by - * using the %NL80211_ATTR_IE attribute. The first cycle of the - * scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY -- * is supplied. -+ * is supplied. If the device supports multiple concurrent scheduled -+ * scans, it will allow such when the caller provides the flag attribute -+ * %NL80211_ATTR_SCHED_SCAN_MULTI to indicate user-space support for it. - * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if - * scheduled scan is not running. The caller may assume that as soon - * as the call returns, it is safe to start a new scheduled scan again. -@@ -370,10 +431,18 @@ - * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to - * NL80211_CMD_GET_SURVEY and on the "scan" multicast group) - * -- * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry, using %NL80211_ATTR_MAC -- * (for the BSSID) and %NL80211_ATTR_PMKID. -+ * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry using %NL80211_ATTR_MAC -+ * (for the BSSID), %NL80211_ATTR_PMKID, and optionally %NL80211_ATTR_PMK -+ * (PMK is used for PTKSA derivation in case of FILS shared key offload) or -+ * using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID, -+ * %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS -+ * authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier -+ * advertized by a FILS capable AP identifying the scope of PMKSA in an -+ * ESS. - * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC -- * (for the BSSID) and %NL80211_ATTR_PMKID. -+ * (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID, -+ * %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS -+ * authentication. - * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries. - * - * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain -@@ -500,8 +569,13 @@ - * 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. -- * @NL80211_CMD_ROAM: request that the card roam (currently not implemented), -- * sent as an event when the card/driver roamed by itself. -+ * @NL80211_CMD_ROAM: notifcation indicating the card/driver roamed by itself. -+ * When the driver roamed in a network that requires 802.1X authentication, -+ * %NL80211_ATTR_PORT_AUTHORIZED should be set if the 802.1X authentication -+ * was done by the driver or if roaming was done using Fast Transition -+ * protocol (in which case 802.1X authentication is not needed). If -+ * %NL80211_ATTR_PORT_AUTHORIZED is not set, user space is responsible for -+ * the 802.1X authentication. - * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify - * userspace that a connection was dropped by the AP or due to other - * reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and -@@ -600,6 +674,20 @@ - * - * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface. - * -+ * @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform -+ * multicast to unicast conversion. When enabled, all multicast packets -+ * with ethertype ARP, IPv4 or IPv6 (possibly within an 802.1Q header) -+ * will be sent out to each station once with the destination (multicast) -+ * MAC address replaced by the station's MAC address. Note that this may -+ * break certain expectations of the receiver, e.g. the ability to drop -+ * unicast IP packets encapsulated in multicast L2 frames, or the ability -+ * to not send destination unreachable messages in such cases. -+ * This can only be toggled per BSS. Configure this on an interface of -+ * type %NL80211_IFTYPE_AP. It applies to all its VLAN interfaces -+ * (%NL80211_IFTYPE_AP_VLAN), except for those in 4addr (WDS) mode. -+ * If %NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED is not present with this -+ * command, the feature is disabled. -+ * - * @NL80211_CMD_JOIN_MESH: Join a mesh. The mesh ID must be given, and initial - * mesh config parameters may be given. - * @NL80211_CMD_LEAVE_MESH: Leave the mesh network -- no special arguments, the -@@ -840,12 +928,15 @@ - * cfg80211_scan_done(). - * - * @NL80211_CMD_START_NAN: Start NAN operation, identified by its -- * %NL80211_ATTR_WDEV interface. This interface must have been previously -- * created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the -- * NAN interface will create or join a cluster. This command must have a -- * valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional -- * %NL80211_ATTR_NAN_DUAL attributes. -- * After this command NAN functions can be added. -+ * %NL80211_ATTR_WDEV interface. This interface must have been -+ * previously created with %NL80211_CMD_NEW_INTERFACE. After it -+ * has been started, the NAN interface will create or join a -+ * cluster. This command must have a valid -+ * %NL80211_ATTR_NAN_MASTER_PREF attribute and optional -+ * %NL80211_ATTR_BANDS attributes. If %NL80211_ATTR_BANDS is -+ * omitted or set to 0, it means don't-care and the device will -+ * decide what to use. After this command NAN functions can be -+ * added. - * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by - * its %NL80211_ATTR_WDEV interface. - * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined -@@ -866,14 +957,32 @@ - * This command is also used as a notification sent when a NAN function is - * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID - * and %NL80211_ATTR_COOKIE attributes. -- * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN configuration. NAN -- * must be operational (%NL80211_CMD_START_NAN was executed). -- * It must contain at least one of the following attributes: -- * %NL80211_ATTR_NAN_MASTER_PREF, %NL80211_ATTR_NAN_DUAL. -+ * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN -+ * configuration. NAN must be operational (%NL80211_CMD_START_NAN -+ * was executed). It must contain at least one of the following -+ * attributes: %NL80211_ATTR_NAN_MASTER_PREF, -+ * %NL80211_ATTR_BANDS. If %NL80211_ATTR_BANDS is omitted, the -+ * current configuration is not changed. If it is present but -+ * set to zero, the configuration is changed to don't-care -+ * (i.e. the device can decide what to do). - * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported. - * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and - * %NL80211_ATTR_COOKIE. - * -+ * @NL80211_CMD_UPDATE_CONNECT_PARAMS: Update one or more connect parameters -+ * for subsequent roaming cases if the driver or firmware uses internal -+ * BSS selection. This command can be issued only while connected and it -+ * does not result in a change for the current association. Currently, -+ * only the %NL80211_ATTR_IE data is used and updated with this command. -+ * -+ * @NL80211_CMD_SET_PMK: For offloaded 4-Way handshake, set the PMK or PMK-R0 -+ * for the given authenticator address (specified with &NL80211_ATTR_MAC). -+ * When &NL80211_ATTR_PMKR0_NAME is set, &NL80211_ATTR_PMK specifies the -+ * PMK-R0, otherwise it specifies the PMK. -+ * @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_MAX: highest used command number - * @__NL80211_CMD_AFTER_LAST: internal use - */ -@@ -1069,6 +1178,13 @@ enum nl80211_commands { - NL80211_CMD_CHANGE_NAN_CONFIG, - NL80211_CMD_NAN_MATCH, - -+ NL80211_CMD_SET_MULTICAST_TO_UNICAST, -+ -+ NL80211_CMD_UPDATE_CONNECT_PARAMS, -+ -+ NL80211_CMD_SET_PMK, -+ NL80211_CMD_DEL_PMK, -+ - /* add new commands above here */ - - /* used to define NL80211_CMD_MAX below */ -@@ -1638,8 +1754,16 @@ enum nl80211_commands { - * the connection request from a station. nl80211_connect_failed_reason - * enum has different reasons of connection failure. - * -- * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts -- * with the Authentication transaction sequence number field. -+ * @NL80211_ATTR_AUTH_DATA: Fields and elements in Authentication frames. -+ * This contains the authentication frame body (non-IE and IE data), -+ * excluding the Authentication algorithm number, i.e., starting at the -+ * Authentication transaction sequence number field. It is used with -+ * authentication algorithms that need special fields to be added into -+ * the frames (SAE and FILS). Currently, only the SAE cases use the -+ * initial two fields (Authentication transaction sequence number and -+ * Status code). However, those fields are included in the attribute data -+ * for all authentication algorithms to keep the attribute definition -+ * consistent. - * - * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from - * association request when used with NL80211_CMD_NEW_STATION) -@@ -1740,7 +1864,9 @@ enum nl80211_commands { - * - * @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode - * Notification Element based on association request when used with -- * %NL80211_CMD_NEW_STATION; u8 attribute. -+ * %NL80211_CMD_NEW_STATION or %NL80211_CMD_SET_STATION (only when -+ * %NL80211_FEATURE_FULL_AP_CLIENT_STATE is supported, or with TDLS); -+ * u8 attribute. - * - * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if - * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet) -@@ -1783,11 +1909,12 @@ enum nl80211_commands { - * that configured the indoor setting, and the indoor operation would be - * cleared when the socket is closed. - * If set during NAN interface creation, the interface will be destroyed -- * if the socket is closed just like any other interface. Moreover, only -- * the netlink socket that created the interface will be allowed to add -- * and remove functions. NAN notifications will be sent in unicast to that -- * socket. Without this attribute, any socket can add functions and the -- * notifications will be sent to the %NL80211_MCGRP_NAN multicast group. -+ * if the socket is closed just like any other interface. Moreover, NAN -+ * notifications will be sent in unicast to that socket. Without this -+ * attribute, the notifications will be sent to the %NL80211_MCGRP_NAN -+ * multicast group. -+ * If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the -+ * station will deauthenticate when the socket is closed. - * - * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is - * the TDLS link initiator. -@@ -1927,15 +2054,93 @@ enum nl80211_commands { - * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0. - * Also, values 1 and 255 are reserved for certification purposes and - * should not be used during a normal device operation. -- * @NL80211_ATTR_NAN_DUAL: NAN dual band operation config (see -- * &enum nl80211_nan_dual_band_conf). This attribute is used with -- * %NL80211_CMD_START_NAN and optionally with -- * %NL80211_CMD_CHANGE_NAN_CONFIG. -+ * @NL80211_ATTR_BANDS: operating bands configuration. This is a u32 -+ * bitmask of BIT(NL80211_BAND_*) as described in %enum -+ * nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0 -+ * would be set. This attribute is used with -+ * %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG, and -+ * it is optional. If no bands are set, it means don't-care and -+ * the device will decide what to use. - * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See - * &enum nl80211_nan_func_attributes for description of this nested - * attribute. - * @NL80211_ATTR_NAN_MATCH: used to report a match. This is a nested attribute. - * See &enum nl80211_nan_match_attributes. -+ * @NL80211_ATTR_FILS_KEK: KEK for FILS (Re)Association Request/Response frame -+ * protection. -+ * @NL80211_ATTR_FILS_NONCES: Nonces (part of AAD) for FILS (Re)Association -+ * Request/Response frame protection. This attribute contains the 16 octet -+ * STA Nonce followed by 16 octets of AP Nonce. -+ * -+ * @NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED: Indicates whether or not multicast -+ * packets should be send out as unicast to all stations (flag attribute). -+ * -+ * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also -+ * used in various commands/events for specifying the BSSID. -+ * -+ * @NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI: Relative RSSI threshold by which -+ * other BSSs has to be better or slightly worse than the current -+ * connected BSS so that they get reported to user space. -+ * This will give an opportunity to userspace to consider connecting to -+ * other matching BSSs which have better or slightly worse RSSI than -+ * the current connected BSS by using an offloaded operation to avoid -+ * unnecessary wakeups. -+ * -+ * @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in -+ * the specified band is to be adjusted before doing -+ * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparision to figure out -+ * better BSSs. The attribute value is a packed structure -+ * value as specified by &struct nl80211_bss_select_rssi_adjust. -+ * -+ * @NL80211_ATTR_TIMEOUT_REASON: The reason for which an operation timed out. -+ * u32 attribute with an &enum nl80211_timeout_reason value. This is used, -+ * e.g., with %NL80211_CMD_CONNECT event. -+ * -+ * @NL80211_ATTR_FILS_ERP_USERNAME: EAP Re-authentication Protocol (ERP) -+ * username part of NAI used to refer keys rRK and rIK. This is used with -+ * %NL80211_CMD_CONNECT. -+ * -+ * @NL80211_ATTR_FILS_ERP_REALM: EAP Re-authentication Protocol (ERP) realm part -+ * of NAI specifying the domain name of the ER server. This is used with -+ * %NL80211_CMD_CONNECT. -+ * -+ * @NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM: Unsigned 16-bit ERP next sequence number -+ * to use in ERP messages. This is used in generating the FILS wrapped data -+ * for FILS authentication and is used with %NL80211_CMD_CONNECT. -+ * -+ * @NL80211_ATTR_FILS_ERP_RRK: ERP re-authentication Root Key (rRK) for the -+ * NAI specified by %NL80211_ATTR_FILS_ERP_USERNAME and -+ * %NL80211_ATTR_FILS_ERP_REALM. This is used for generating rIK and rMSK -+ * from successful FILS authentication and is used with -+ * %NL80211_CMD_CONNECT. -+ * -+ * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertized by a FILS AP -+ * identifying the scope of PMKSAs. This is used with -+ * @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA. -+ * -+ * @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with -+ * %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID. -+ * For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way -+ * handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is -+ * used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute -+ * specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well. -+ * -+ * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to -+ * indicate that it supports multiple active scheduled scan requests. -+ * @NL80211_ATTR_SCHED_SCAN_MAX_REQS: indicates maximum number of scheduled -+ * scan request that may be active for the device (u32). -+ * -+ * @NL80211_ATTR_WANT_1X_4WAY_HS: flag attribute which user-space can include -+ * in %NL80211_CMD_CONNECT to indicate that for 802.1X authentication it -+ * wants to use the supported offload of the 4-way handshake. -+ * @NL80211_ATTR_PMKR0_NAME: PMK-R0 Name for offloaded FT. -+ * @NL80211_ATTR_PORT_AUTHORIZED: flag attribute used in %NL80211_CMD_ROAMED -+ * notification indicating that that 802.1X authentication was done by -+ * the driver or is not needed (because roaming used the Fast Transition -+ * protocol). -+ * + * @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 -@@ -2195,7 +2400,7 @@ enum nl80211_attrs { - - NL80211_ATTR_CONN_FAILED_REASON, + * @__NL80211_ATTR_AFTER_LAST: internal use +@@ -2579,6 +2582,8 @@ enum nl80211_attrs { + NL80211_ATTR_PMKR0_NAME, + NL80211_ATTR_PORT_AUTHORIZED, -- NL80211_ATTR_SAE_DATA, -+ NL80211_ATTR_AUTH_DATA, - - NL80211_ATTR_VHT_CAPABILITY, - -@@ -2332,10 +2537,39 @@ enum nl80211_attrs { - NL80211_ATTR_MESH_PEER_AID, - - NL80211_ATTR_NAN_MASTER_PREF, -- NL80211_ATTR_NAN_DUAL, -+ NL80211_ATTR_BANDS, - NL80211_ATTR_NAN_FUNC, - NL80211_ATTR_NAN_MATCH, - -+ NL80211_ATTR_FILS_KEK, -+ NL80211_ATTR_FILS_NONCES, -+ -+ NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED, -+ -+ NL80211_ATTR_BSSID, -+ -+ NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI, -+ NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST, -+ -+ NL80211_ATTR_TIMEOUT_REASON, -+ -+ NL80211_ATTR_FILS_ERP_USERNAME, -+ NL80211_ATTR_FILS_ERP_REALM, -+ NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM, -+ NL80211_ATTR_FILS_ERP_RRK, -+ NL80211_ATTR_FILS_CACHE_ID, -+ -+ NL80211_ATTR_PMK, -+ -+ NL80211_ATTR_SCHED_SCAN_MULTI, -+ NL80211_ATTR_SCHED_SCAN_MAX_REQS, -+ -+ NL80211_ATTR_WANT_1X_4WAY_HS, -+ NL80211_ATTR_PMKR0_NAME, -+ NL80211_ATTR_PORT_AUTHORIZED, -+ + NL80211_ATTR_WIPHY_ANTENNA_GAIN, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -2347,6 +2581,7 @@ enum nl80211_attrs { - #define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION - #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 - - /* - * Allow user space programs to use #ifdef on new attributes by defining them -@@ -3019,6 +3254,7 @@ enum nl80211_reg_rule_attr { - * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved - * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, - * only report BSS with matching SSID. -+ * (This cannot be used together with BSSID.) - * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a - * BSS in scan results. Filtering is turned off if not specified. Note that - * if this attribute is in a match set of its own, then it is treated as -@@ -3027,6 +3263,15 @@ enum nl80211_reg_rule_attr { - * how this API was implemented in the past. Also, due to the same problem, - * the only way to create a matchset with only an RSSI filter (with this - * attribute) is if there's only a single matchset with the RSSI attribute. -+ * @NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI: Flag indicating whether -+ * %NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to be used as absolute RSSI or -+ * relative to current bss's RSSI. -+ * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST: When present the RSSI level for -+ * BSS-es in the specified band is to be adjusted before doing -+ * RSSI-based BSS selection. The attribute value is a packed structure -+ * value as specified by &struct nl80211_bss_select_rssi_adjust. -+ * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching -+ * (this cannot be used together with SSID). - * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter - * attribute number currently defined - * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use -@@ -3036,6 +3281,9 @@ enum nl80211_sched_scan_match_attr { - - NL80211_SCHED_SCAN_MATCH_ATTR_SSID, - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, -+ NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI, -+ NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST, -+ NL80211_SCHED_SCAN_MATCH_ATTR_BSSID, - - /* keep last */ - __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, -@@ -3660,6 +3908,9 @@ enum nl80211_bss_status { - * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) - * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) - * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals -+ * @NL80211_AUTHTYPE_FILS_SK: Fast Initial Link Setup shared key -+ * @NL80211_AUTHTYPE_FILS_SK_PFS: Fast Initial Link Setup shared key with PFS -+ * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key - * @__NL80211_AUTHTYPE_NUM: internal - * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm - * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by -@@ -3672,6 +3923,9 @@ enum nl80211_auth_type { - NL80211_AUTHTYPE_FT, - NL80211_AUTHTYPE_NETWORK_EAP, - NL80211_AUTHTYPE_SAE, -+ NL80211_AUTHTYPE_FILS_SK, -+ NL80211_AUTHTYPE_FILS_SK_PFS, -+ NL80211_AUTHTYPE_FILS_PK, - - /* keep last */ - __NL80211_AUTHTYPE_NUM, -@@ -3839,7 +4093,10 @@ enum nl80211_ps_state { - * @__NL80211_ATTR_CQM_INVALID: invalid - * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm. This value specifies - * the threshold for the RSSI level at which an event will be sent. Zero -- * to disable. -+ * to disable. Alternatively, if %NL80211_EXT_FEATURE_CQM_RSSI_LIST is -+ * set, multiple values can be supplied as a low-to-high sorted array of -+ * threshold values in dBm. Events will be sent when the RSSI value -+ * crosses any of the thresholds. - * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm. This value specifies - * the minimum amount the RSSI level must change after an event before a - * new event may be issued (to reduce effects of RSSI oscillation). -@@ -3859,6 +4116,8 @@ enum nl80211_ps_state { - * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. - * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon - * loss event -+ * @NL80211_ATTR_CQM_RSSI_LEVEL: the RSSI value in dBm that triggered the -+ * RSSI threshold event. - * @__NL80211_ATTR_CQM_AFTER_LAST: internal - * @NL80211_ATTR_CQM_MAX: highest key attribute +@@ -3862,9 +3867,6 @@ enum nl80211_bss_scan_width { + * @NL80211_BSS_PARENT_BSSID. (u64). + * @NL80211_BSS_PARENT_BSSID: the BSS according to which @NL80211_BSS_PARENT_TSF + * is set. +- * @NL80211_BSS_CHAIN_SIGNAL: per-chain signal strength of last BSS update. +- * Contains a nested array of signal strength attributes (u8, dBm), +- * using the nesting index as the antenna number. + * @__NL80211_BSS_AFTER_LAST: internal + * @NL80211_BSS_MAX: highest BSS attribute */ -@@ -3872,6 +4131,7 @@ enum nl80211_attr_cqm { - NL80211_ATTR_CQM_TXE_PKTS, - NL80211_ATTR_CQM_TXE_INTVL, - NL80211_ATTR_CQM_BEACON_LOSS_EVENT, -+ NL80211_ATTR_CQM_RSSI_LEVEL, +@@ -3888,7 +3890,6 @@ enum nl80211_bss { + NL80211_BSS_PAD, + NL80211_BSS_PARENT_TSF, + NL80211_BSS_PARENT_BSSID, +- NL80211_BSS_CHAIN_SIGNAL, /* keep last */ - __NL80211_ATTR_CQM_AFTER_LAST, -@@ -4280,6 +4540,9 @@ enum nl80211_iface_limit_attrs { - * of supported channel widths for radar detection. - * @NL80211_IFACE_COMB_RADAR_DETECT_REGIONS: u32 attribute containing the bitmap - * of supported regulatory regions for radar detection. -+ * @NL80211_IFACE_COMB_BI_MIN_GCD: u32 attribute specifying the minimum GCD of -+ * different beacon intervals supported by all the interface combinations -+ * in this group (if not present, all beacon intervals be identical). - * @NUM_NL80211_IFACE_COMB: number of attributes - * @MAX_NL80211_IFACE_COMB: highest attribute number - * -@@ -4287,8 +4550,8 @@ enum nl80211_iface_limit_attrs { - * limits = [ #{STA} <= 1, #{AP} <= 1 ], matching BI, channels = 1, max = 2 - * => allows an AP and a STA that must match BIs - * -- * numbers = [ #{AP, P2P-GO} <= 8 ], channels = 1, max = 8 -- * => allows 8 of AP/GO -+ * numbers = [ #{AP, P2P-GO} <= 8 ], BI min gcd, channels = 1, max = 8, -+ * => allows 8 of AP/GO that can have BI gcd >= min gcd - * - * numbers = [ #{STA} <= 2 ], channels = 2, max = 2 - * => allows two STAs on different channels -@@ -4314,6 +4577,7 @@ enum nl80211_if_combination_attrs { - NL80211_IFACE_COMB_NUM_CHANNELS, - NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, - NL80211_IFACE_COMB_RADAR_DETECT_REGIONS, -+ NL80211_IFACE_COMB_BI_MIN_GCD, - - /* keep last */ - NUM_NL80211_IFACE_COMB, -@@ -4634,6 +4898,27 @@ enum nl80211_feature_flags { - * configuration (AP/mesh) with HT rates. - * @NL80211_EXT_FEATURE_BEACON_RATE_VHT: Driver supports beacon rate - * configuration (AP/mesh) with VHT rates. -+ * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup -+ * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode. -+ * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA: This driver supports randomized TA -+ * in @NL80211_CMD_FRAME while not associated. -+ * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED: This driver supports -+ * randomized TA in @NL80211_CMD_FRAME while associated. -+ * @NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI: The driver supports sched_scan -+ * for reporting BSSs with better RSSI than the current connected BSS -+ * (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI). -+ * @NL80211_EXT_FEATURE_CQM_RSSI_LIST: With this driver the -+ * %NL80211_ATTR_CQM_RSSI_THOLD attribute accepts a list of zero or more -+ * RSSI threshold values to monitor rather than exactly one threshold. -+ * @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD: Driver SME supports FILS shared key -+ * authentication with %NL80211_CMD_CONNECT. -+ * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK: Device wants to do 4-way -+ * handshake with PSK in station mode (PSK is passed as part of the connect -+ * and associate commands), doing it in the host might not be supported. -+ * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X: Device wants to do doing 4-way -+ * handshake with 802.1X in station mode (will pass EAP frames to the host -+ * and accept the set_pmk/del_pmk commands), doing it in the host might not -+ * be supported. - * - * @NUM_NL80211_EXT_FEATURES: number of extended features. - * @MAX_NL80211_EXT_FEATURES: highest extended feature index. -@@ -4648,6 +4933,14 @@ enum nl80211_ext_feature_index { - NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, - NL80211_EXT_FEATURE_BEACON_RATE_HT, - NL80211_EXT_FEATURE_BEACON_RATE_VHT, -+ NL80211_EXT_FEATURE_FILS_STA, -+ NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA, -+ NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED, -+ NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI, -+ NL80211_EXT_FEATURE_CQM_RSSI_LIST, -+ NL80211_EXT_FEATURE_FILS_SK_OFFLOAD, -+ NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK, -+ NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X, - - /* add new features before the definition below */ - NUM_NL80211_EXT_FEATURES, -@@ -4687,6 +4980,21 @@ enum nl80211_connect_failed_reason { - }; - - /** -+ * enum nl80211_timeout_reason - timeout reasons -+ * -+ * @NL80211_TIMEOUT_UNSPECIFIED: Timeout reason unspecified. -+ * @NL80211_TIMEOUT_SCAN: Scan (AP discovery) timed out. -+ * @NL80211_TIMEOUT_AUTH: Authentication timed out. -+ * @NL80211_TIMEOUT_ASSOC: Association timed out. -+ */ -+enum nl80211_timeout_reason { -+ NL80211_TIMEOUT_UNSPECIFIED, -+ NL80211_TIMEOUT_SCAN, -+ NL80211_TIMEOUT_AUTH, -+ NL80211_TIMEOUT_ASSOC, -+}; -+ -+/** - * enum nl80211_scan_flags - scan request control flags - * - * Scan request control flags are used to control the handling -@@ -4768,12 +5076,17 @@ enum nl80211_smps_mode { - * change to the channel status. - * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is - * over, channel becomes usable. -+ * @NL80211_RADAR_PRE_CAC_EXPIRED: Channel Availability Check done on this -+ * non-operating channel is expired and no longer valid. New CAC must -+ * be done on this channel before starting the operation. This is not -+ * applicable for ETSI dfs domain where pre-CAC is valid for ever. - */ - enum nl80211_radar_event { - NL80211_RADAR_DETECTED, - NL80211_RADAR_CAC_FINISHED, - NL80211_RADAR_CAC_ABORTED, - NL80211_RADAR_NOP_FINISHED, -+ NL80211_RADAR_PRE_CAC_EXPIRED, - }; - - /** -@@ -4900,8 +5213,9 @@ enum nl80211_sched_scan_plan { - /** - * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters. - * -- * @band: band of BSS that must match for RSSI value adjustment. -- * @delta: value used to adjust the RSSI value of matching BSS. -+ * @band: band of BSS that must match for RSSI value adjustment. The value -+ * of this field is according to &enum nl80211_band. -+ * @delta: value used to adjust the RSSI value of matching BSS in dB. - */ - struct nl80211_bss_select_rssi_adjust { - __u8 band; -@@ -4942,21 +5256,6 @@ enum nl80211_bss_select_attr { - }; - - /** -- * enum nl80211_nan_dual_band_conf - NAN dual band configuration -- * -- * Defines the NAN dual band mode of operation -- * -- * @NL80211_NAN_BAND_DEFAULT: device default mode -- * @NL80211_NAN_BAND_2GHZ: 2.4GHz mode -- * @NL80211_NAN_BAND_5GHZ: 5GHz mode -- */ --enum nl80211_nan_dual_band_conf { -- NL80211_NAN_BAND_DEFAULT = 1 << 0, -- NL80211_NAN_BAND_2GHZ = 1 << 1, -- NL80211_NAN_BAND_5GHZ = 1 << 2, --}; -- --/** - * enum nl80211_nan_function_type - NAN function type - * - * Defines the function type of a NAN function + __NL80211_BSS_AFTER_LAST, diff --git a/package/network/utils/iw/patches/120-antenna_gain.patch b/package/network/utils/iw/patches/120-antenna_gain.patch index b219437364..27ba390c7f 100644 --- a/package/network/utils/iw/patches/120-antenna_gain.patch +++ b/package/network/utils/iw/patches/120-antenna_gain.patch @@ -1,6 +1,6 @@ --- a/phy.c +++ b/phy.c -@@ -675,3 +675,30 @@ COMMAND(set, antenna, " | all | +@@ -727,3 +727,30 @@ COMMAND(set, antenna, " | all | NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_antenna, "Set a bitmap of allowed antennas to use for TX and RX.\n" "The driver may reject antenna configurations it cannot support."); diff --git a/package/network/utils/iw/patches/200-reduce_size.patch b/package/network/utils/iw/patches/200-reduce_size.patch index 3f92982a4a..36fe0ff746 100644 --- a/package/network/utils/iw/patches/200-reduce_size.patch +++ b/package/network/utils/iw/patches/200-reduce_size.patch @@ -1,16 +1,3 @@ ---- a/Makefile -+++ b/Makefile -@@ -16,8 +16,8 @@ CFLAGS += -Wall -Wundef -Wstrict-prototy - OBJS = iw.o genl.o event.o info.o phy.o \ - interface.o ibss.o station.o survey.o util.o ocb.o \ - mesh.o mpath.o mpp.o scan.o reg.o version.o \ -- reason.o status.o connect.o link.o offch.o ps.o cqm.o \ -- bitrate.o wowlan.o coalesce.o roc.o p2p.o vendor.o -+ reason.o status.o link.o offch.o ps.o cqm.o \ -+ bitrate.o vendor.o - OBJS += sections.o - - OBJS-$(HWSIM) += hwsim.o --- a/event.c +++ b/event.c @@ -342,6 +342,7 @@ static int print_event(struct nl_msg *ms @@ -37,7 +24,7 @@ case NL80211_CMD_JOIN_IBSS: mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC])); printf("IBSS %s joined\n", macbuf); -@@ -612,9 +615,9 @@ static int print_event(struct nl_msg *ms +@@ -618,9 +621,9 @@ static int print_event(struct nl_msg *ms case NL80211_CMD_DEL_WIPHY: printf("delete wiphy\n"); break; @@ -147,7 +134,7 @@ { --- a/scan.c +++ b/scan.c -@@ -1147,6 +1147,7 @@ static void print_ht_op(const uint8_t ty +@@ -1170,6 +1170,7 @@ static void print_ht_op(const uint8_t ty printf("\t\t * secondary channel offset: %s\n", ht_secondary_offset[data[1] & 0x3]); printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]); @@ -155,7 +142,7 @@ printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3); printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]); printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2); -@@ -1380,6 +1381,14 @@ static void print_ie(const struct ie_pri +@@ -1497,6 +1498,14 @@ static void print_ie(const struct ie_pri static const struct ie_print ieprinters[] = { [0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), }, @@ -170,7 +157,7 @@ [1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), }, [3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), }, [5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), }, -@@ -1389,21 +1398,15 @@ static const struct ie_print ieprinters[ +@@ -1506,21 +1515,15 @@ static const struct ie_print ieprinters[ [32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), }, [35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), }, [42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), }, @@ -192,16 +179,16 @@ +#endif }; - static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data) -@@ -1835,6 +1838,7 @@ void print_ies(unsigned char *ie, int ie - ieprinters[ie[0]].name && + static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data, +@@ -1968,6 +1971,7 @@ void print_ies(unsigned char *ie, int ie ieprinters[ie[0]].flags & BIT(ptype)) { - print_ie(&ieprinters[ie[0]], ie[0], ie[1], ie + 2); + print_ie(&ieprinters[ie[0]], + ie[0], ie[1], ie + 2, &ie_buffer); +#if 0 } else if (ie[0] == 221 /* vendor */) { print_vendor(ie[1], ie + 2, unknown, ptype); } else if (unknown) { -@@ -1844,6 +1848,7 @@ void print_ies(unsigned char *ie, int ie +@@ -1977,6 +1981,7 @@ void print_ies(unsigned char *ie, int ie for (i=0; i plink_action ", + NL80211_CMD_SET_STATION, 0, CIB_NETDEV, handle_station_set_plink, + "Set mesh peer link action for this station (peer).", + select_station_cmd, station_set_plink); ++#endif + + static int handle_station_set_vlan(struct nl80211_state *state, + struct nl_msg *msg, +@@ -727,11 +729,13 @@ static int handle_station_set_mesh_power + nla_put_failure: + return -ENOBUFS; + } ++#if 0 + COMMAND_ALIAS(station, set, " mesh_power_mode " + "", NL80211_CMD_SET_STATION, 0, CIB_NETDEV, + handle_station_set_mesh_power_mode, + "Set link-specific mesh power mode for this station", + select_station_cmd, station_set_mesh_power_mode); ++#endif + + static int handle_station_dump(struct nl80211_state *state, + struct nl_msg *msg, -- 2.25.1