mac80211: update to backports-4.14-rc2
[openwrt/staging/chunkeey.git] / package / network / utils / iw / patches / 001-nl80211_h_sync.patch
index cbae38abcbe6bdb642398b7388f3aae37d18ce4c..25ec1263ad9ae7e50203ddebcc7ae21f2553f475 100644 (file)
 --- a/nl80211.h
 +++ b/nl80211.h
-@@ -303,8 +303,9 @@
-  *    passed, all channels allowed for the current regulatory domain
+@@ -10,7 +10,7 @@
+  * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
+  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
+  * Copyright 2008 Colin McCabe <colin@cozybit.com>
+- * 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
+- *    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.
-- * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan.  Returns -ENOENT
-- *    if scheduled scan is not running.
-+ * @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.
-  * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan
-  *    results available.
-  * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has
-@@ -418,8 +419,18 @@
-  *    %NL80211_ATTR_SSID attribute, and can optionally specify the association
-  *    IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
-  *    %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
-- *    %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and
-- *    %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT.
-+ *    %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
-+ *    %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and
-+ *    %NL80211_ATTR_WIPHY_FREQ_HINT.
-+ *    If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are
-+ *    restrictions on BSS selection, i.e., they effectively prevent roaming
-+ *    within the ESS. %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT
-+ *    can be included to provide a recommendation of the initial BSS while
-+ *    allowing the driver to roam to other BSSes within the ESS and also to
-+ *    ignore this recommendation if the indicated BSS is not ideal. Only one
-+ *    set of BSSID,frequency parameters is used (i.e., either the enforcing
-+ *    %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
-+ *    %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
-  *    Background scan period can optionally be
-  *    specified in %NL80211_ATTR_BG_SCAN_PERIOD,
-  *    if not specified default background scan configuration
-@@ -1555,6 +1566,22 @@ enum nl80211_commands {
-  *    data is in the format defined for the payload of the QoS Map Set element
-  *    in IEEE Std 802.11-2012, 8.4.2.97.
-  *
-+ * @NL80211_ATTR_MAC_HINT: MAC address recommendation as initial BSS
-+ * @NL80211_ATTR_WIPHY_FREQ_HINT: frequency of the recommended initial BSS
-+ *
-+ * @NL80211_ATTR_MAX_AP_ASSOC_STA: Device attribute that indicates how many
-+ *    associated stations are supported in AP mode (including P2P GO); u32.
-+ *    Since drivers may not have a fixed limit on the maximum number (e.g.,
-+ *    other concurrent operations may affect this), drivers are allowed to
-+ *    advertise values that cannot always be met. In such cases, an attempt
-+ *    to add a new station entry with @NL80211_CMD_NEW_STATION may fail.
-+ *
-+ * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32.
-+ *    As specified in the &enum nl80211_tdls_peer_capability.
+  *    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
-  * @__NL80211_ATTR_AFTER_LAST: internal use
-  */
-@@ -1883,6 +1910,15 @@ enum nl80211_attrs {
+@@ -2195,7 +2400,7 @@ enum nl80211_attrs {
+       NL80211_ATTR_CONN_FAILED_REASON,
+-      NL80211_ATTR_SAE_DATA,
++      NL80211_ATTR_AUTH_DATA,
+       NL80211_ATTR_VHT_CAPABILITY,
  
-       NL80211_ATTR_QOS_MAP,
+@@ -2332,10 +2537,39 @@ enum nl80211_attrs {
+       NL80211_ATTR_MESH_PEER_AID,
  
-+      NL80211_ATTR_MAC_HINT,
-+      NL80211_ATTR_WIPHY_FREQ_HINT,
+       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_MAX_AP_ASSOC_STA,
++      NL80211_ATTR_PMK,
 +
-+      NL80211_ATTR_TDLS_PEER_CAPABILITY,
++      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,
-@@ -2304,6 +2340,7 @@ enum nl80211_band_attr {
-  * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel
-  *    using this channel as the primary or any of the secondary channels
-  *    isn't possible
-+ * @NL80211_FREQUENCY_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds.
-  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
-  *    currently defined
-  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
-@@ -2322,6 +2359,7 @@ enum nl80211_frequency_attr {
-       NL80211_FREQUENCY_ATTR_NO_HT40_PLUS,
-       NL80211_FREQUENCY_ATTR_NO_80MHZ,
-       NL80211_FREQUENCY_ATTR_NO_160MHZ,
-+      NL80211_FREQUENCY_ATTR_DFS_CAC_TIME,
+@@ -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
  
-       /* keep last */
-       __NL80211_FREQUENCY_ATTR_AFTER_LAST,
-@@ -2412,12 +2450,14 @@ enum nl80211_reg_type {
-  *    in KHz. This is not a center a frequency but an actual regulatory
-  *    band edge.
-  * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this
-- *    frequency range, in KHz.
-+ *    frequency range, in KHz.
-  * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain
-  *    for a given frequency range. The value is in mBi (100 * dBi).
-  *    If you don't have one then don't send this.
-  * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for
-  *    a given frequency range. The value is in mBm (100 * dBm).
-+ * @NL80211_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds.
-+ *    If not present or 0 default CAC time will be used.
-  * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number
-  *    currently defined
-  * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use
-@@ -2433,6 +2473,8 @@ enum nl80211_reg_rule_attr {
-       NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN,
-       NL80211_ATTR_POWER_RULE_MAX_EIRP,
-+      NL80211_ATTR_DFS_CAC_TIME,
-+
-       /* keep last */
-       __NL80211_REG_RULE_ATTR_AFTER_LAST,
-       NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
-@@ -2442,9 +2484,15 @@ enum nl80211_reg_rule_attr {
-  * enum nl80211_sched_scan_match_attr - scheduled scan match attributes
+ /*
+  * 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.
-+ *    only report BSS with matching SSID.
+  *    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.
-+ *    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
-+ *    the default value for all matchsets with an SSID, rather than being a
-+ *    matchset of its own without an RSSI filter. This is due to problems with
-+ *    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.
+  *    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
-@@ -2477,6 +2525,9 @@ enum nl80211_sched_scan_match_attr {
-  * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed,
-  *    this includes probe requests or modes of operation that require
-  *    beaconing.
-+ * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated
-+ *    base on contiguous rules and wider channels will be allowed to cross
-+ *    multiple contiguous/overlapping frequency ranges.
-  */
- enum nl80211_reg_rule_flags {
-       NL80211_RRF_NO_OFDM             = 1<<0,
-@@ -2488,6 +2539,7 @@ enum nl80211_reg_rule_flags {
-       NL80211_RRF_PTMP_ONLY           = 1<<6,
-       NL80211_RRF_NO_IR               = 1<<7,
-       __NL80211_RRF_NO_IBSS           = 1<<8,
-+      NL80211_RRF_AUTO_BW             = 1<<11,
- };
+@@ -3036,6 +3281,9 @@ enum nl80211_sched_scan_match_attr {
  
- #define NL80211_RRF_PASSIVE_SCAN      NL80211_RRF_NO_IR
-@@ -3131,6 +3183,7 @@ enum nl80211_key_attributes {
-  *    in an array of MCS numbers.
-  * @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_AFTER_LAST: internal
-  * @NL80211_TXRATE_MAX: highest TX rate attribute
+       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
   */
-@@ -3139,6 +3192,7 @@ enum nl80211_tx_rate_attributes {
-       NL80211_TXRATE_LEGACY,
-       NL80211_TXRATE_HT,
-       NL80211_TXRATE_VHT,
-+      NL80211_TXRATE_GI,
+@@ -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_TXRATE_AFTER_LAST,
-@@ -3156,6 +3210,12 @@ struct nl80211_txrate_vht {
-       __u16 mcs[NL80211_VHT_NSS_MAX];
- };
+       __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,
  
-+enum nl80211_txrate_gi {
-+      NL80211_TXRATE_DEFAULT_GI,
-+      NL80211_TXRATE_FORCE_SGI,
-+      NL80211_TXRATE_FORCE_LGI,
-+};
-+
- /**
-  * enum nl80211_band - Frequency band
-  * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
-@@ -3801,11 +3861,6 @@ enum nl80211_ap_sme_features {
-  * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested
-  *    to work properly to suppport receiving regulatory hints from
-  *    cellular base stations.
-- * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: If this is set, an active
-- *    P2P Device (%NL80211_IFTYPE_P2P_DEVICE) requires its own channel
-- *    in the interface combinations, even when it's only used for scan
-- *    and remain-on-channel. This could be due to, for example, the
-- *    remain-on-channel implementation requiring a channel context.
-  * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of
-  *    equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station
-  *    mode
-@@ -3847,7 +3902,7 @@ enum nl80211_feature_flags {
-       NL80211_FEATURE_HT_IBSS                         = 1 << 1,
-       NL80211_FEATURE_INACTIVITY_TIMER                = 1 << 2,
-       NL80211_FEATURE_CELL_BASE_REG_HINTS             = 1 << 3,
--      NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL        = 1 << 4,
-+      /* bit 4 is reserved - don't use */
-       NL80211_FEATURE_SAE                             = 1 << 5,
-       NL80211_FEATURE_LOW_PRIORITY_SCAN               = 1 << 6,
-       NL80211_FEATURE_SCAN_FLUSH                      = 1 << 7,
-@@ -4037,4 +4092,20 @@ struct nl80211_vendor_cmd_info {
-       __u32 subcmd;
+       /* 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_tdls_peer_capability - TDLS peer flags.
-+ *
-+ * Used by tdls_mgmt() to determine which conditional elements need
-+ * to be added to TDLS Setup frames.
+ /**
++ * enum nl80211_timeout_reason - timeout reasons
 + *
-+ * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable.
-+ * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable.
-+ * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable.
++ * @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_tdls_peer_capability {
-+      NL80211_TDLS_PEER_HT = 1<<0,
-+      NL80211_TDLS_PEER_VHT = 1<<1,
-+      NL80211_TDLS_PEER_WMM = 1<<2,
++enum nl80211_timeout_reason {
++      NL80211_TIMEOUT_UNSPECIFIED,
++      NL80211_TIMEOUT_SCAN,
++      NL80211_TIMEOUT_AUTH,
++      NL80211_TIMEOUT_ASSOC,
 +};
 +
- #endif /* __LINUX_NL80211_H */
++/**
+  * 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