X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=package%2Fnetwork%2Futils%2Fiw%2Fpatches%2F001-nl80211_h_sync.patch;h=25ec1263ad9ae7e50203ddebcc7ae21f2553f475;hp=88e47cce82c8e2d36d7dde9d6d06e85ab1e4009b;hb=a8f63a0717f553e0a1b37ee9212fc4cb2a801426;hpb=1114f5dc10755e3c92b5711b420818cf9e366874 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 88e47cce82..25ec1263ad 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -1,6 +1,81 @@ --- a/nl80211.h +++ b/nl80211.h -@@ -323,7 +323,7 @@ +@@ -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 + * + * 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 @@ -9,7 +84,56 @@ * 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 -@@ -600,6 +600,20 @@ +@@ -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. * @@ -30,7 +154,45 @@ * @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 -@@ -874,6 +888,12 @@ +@@ -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. * @@ -39,22 +201,33 @@ + * 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 +1089,10 @@ enum nl80211_commands { +@@ -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 +1662,16 @@ enum nl80211_commands { +@@ -1638,8 +1754,16 @@ enum nl80211_commands { * the connection request from a station. nl80211_connect_failed_reason * enum has different reasons of connection failure. * @@ -73,7 +246,7 @@ * * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from * association request when used with NL80211_CMD_NEW_STATION) -@@ -1740,7 +1772,9 @@ enum nl80211_commands { +@@ -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 @@ -84,16 +257,41 @@ * * @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) -@@ -1788,6 +1822,8 @@ enum nl80211_commands { - * 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. +@@ -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. -@@ -1936,6 +1972,38 @@ enum nl80211_commands { +@@ -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. @@ -127,12 +325,55 @@ + * 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 +2263,7 @@ enum nl80211_attrs { +@@ -2195,7 +2400,7 @@ enum nl80211_attrs { NL80211_ATTR_CONN_FAILED_REASON, @@ -141,7 +382,12 @@ NL80211_ATTR_VHT_CAPABILITY, -@@ -2336,6 +2404,20 @@ enum nl80211_attrs { +@@ -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, @@ -157,12 +403,27 @@ + + 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 +2429,7 @@ enum nl80211_attrs { +@@ -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 @@ -170,7 +431,15 @@ /* * Allow user space programs to use #ifdef on new attributes by defining them -@@ -3027,6 +3110,13 @@ enum nl80211_reg_rule_attr { +@@ -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. @@ -181,19 +450,22 @@ + * 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 +3126,8 @@ enum nl80211_sched_scan_match_attr { +@@ -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 +3752,9 @@ enum nl80211_bss_status { +@@ -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 @@ -203,7 +475,7 @@ * @__NL80211_AUTHTYPE_NUM: internal * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by -@@ -3672,6 +3767,9 @@ enum nl80211_auth_type { +@@ -3672,6 +3923,9 @@ enum nl80211_auth_type { NL80211_AUTHTYPE_FT, NL80211_AUTHTYPE_NETWORK_EAP, NL80211_AUTHTYPE_SAE, @@ -213,7 +485,36 @@ /* keep last */ __NL80211_AUTHTYPE_NUM, -@@ -4280,6 +4378,9 @@ enum nl80211_iface_limit_attrs { +@@ -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 + */ +@@ -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, + + /* 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. @@ -223,7 +524,7 @@ * @NUM_NL80211_IFACE_COMB: number of attributes * @MAX_NL80211_IFACE_COMB: highest attribute number * -@@ -4287,8 +4388,8 @@ enum nl80211_iface_limit_attrs { +@@ -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 * @@ -234,7 +535,7 @@ * * numbers = [ #{STA} <= 2 ], channels = 2, max = 2 * => allows two STAs on different channels -@@ -4314,6 +4415,7 @@ enum nl80211_if_combination_attrs { +@@ -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, @@ -242,7 +543,7 @@ /* keep last */ NUM_NL80211_IFACE_COMB, -@@ -4634,6 +4736,15 @@ enum nl80211_feature_flags { +@@ -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. @@ -255,10 +556,22 @@ + * @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 +4759,10 @@ enum nl80211_ext_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, @@ -266,10 +579,14 @@ + 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 +4802,21 @@ enum nl80211_connect_failed_reason { +@@ -4687,6 +4980,21 @@ enum nl80211_connect_failed_reason { }; /** @@ -291,7 +608,25 @@ * enum nl80211_scan_flags - scan request control flags * * Scan request control flags are used to control the handling -@@ -4900,8 +5030,9 @@ enum nl80211_sched_scan_plan { +@@ -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. * @@ -303,3 +638,25 @@ */ 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