iw: update to version 4.14
authorFelix Fietkau <nbd@nbd.name>
Sat, 24 Feb 2018 10:43:28 +0000 (11:43 +0100)
committerFelix Fietkau <nbd@nbd.name>
Wed, 28 Feb 2018 11:46:02 +0000 (12:46 +0100)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/utils/iw/Makefile
package/network/utils/iw/patches/001-nl80211_h_sync.patch
package/network/utils/iw/patches/120-antenna_gain.patch
package/network/utils/iw/patches/200-reduce_size.patch

index 9b3c12becabfed1e0ff8fcbbcb19d7eed2996723..912fc3e28d24329acac7f59cc027eb95e1b61f03 100644 (file)
@@ -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 <nbd@nbd.name>
 PKG_LICENSE:=GPL-2.0
index 25ec1263ad9ae7e50203ddebcc7ae21f2553f475..2052cb2afaaf79fa00e07e3598cb85ab0210e7e8 100644 (file)
 --- a/nl80211.h
 +++ b/nl80211.h
-@@ -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
+@@ -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,
index b2194373648d923659bf916637f03760ac417976..27ba390c7ffeb90df5a0fbda2d4cdee52e11d7e1 100644 (file)
@@ -1,6 +1,6 @@
 --- a/phy.c
 +++ b/phy.c
-@@ -675,3 +675,30 @@ COMMAND(set, antenna, "<bitmap> | all |
+@@ -727,3 +727,30 @@ COMMAND(set, antenna, "<bitmap> | 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.");
index 3f92982a4ad4df1d286c012943f7d4b2ca2c6494..36fe0ff7461272adaf126f88f5d211b5745c7ac6 100644 (file)
@@ -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;
  {
 --- 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]);
        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), },
        [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), },
 +#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<ie[1]; i++)
                                printf(" %.2x", ie[2+i]);
                        printf("\n");
                }
                ielen -= ie[1] + 2;
                ie += ie[1] + 2;
-@@ -1884,6 +1889,7 @@ static void print_capa_non_dmg(__u16 cap
+@@ -2017,6 +2022,7 @@ static void print_capa_non_dmg(__u16 cap
                printf(" ESS");
        if (capa & WLAN_CAPABILITY_IBSS)
                printf(" IBSS");
        if (capa & WLAN_CAPABILITY_CF_POLLABLE)
                printf(" CfPollable");
        if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST)
-@@ -1912,6 +1918,7 @@ static void print_capa_non_dmg(__u16 cap
+@@ -2045,6 +2051,7 @@ static void print_capa_non_dmg(__u16 cap
                printf(" DelayedBACK");
        if (capa & WLAN_CAPABILITY_IMM_BACK)
                printf(" ImmediateBACK");
  }
  
  static int print_bss_handler(struct nl_msg *msg, void *arg)
-@@ -1996,8 +2003,10 @@ static int print_bss_handler(struct nl_m
+@@ -2129,8 +2136,10 @@ static int print_bss_handler(struct nl_m
        if (bss[NL80211_BSS_FREQUENCY]) {
                int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
                printf("\tfreq: %d\n", freq);
        }
        if (bss[NL80211_BSS_BEACON_INTERVAL])
                printf("\tbeacon interval: %d TUs\n",
+@@ -2319,6 +2328,7 @@ static int handle_stop_sched_scan(struct
+       return 0;
+ }
++#if 0
+ COMMAND(scan, sched_start,
+       SCHED_SCAN_OPTIONS,
+       NL80211_CMD_START_SCHED_SCAN, 0, CIB_NETDEV, handle_start_sched_scan,
+@@ -2329,3 +2339,4 @@ COMMAND(scan, sched_start,
+ COMMAND(scan, sched_stop, "",
+       NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
+       "Stop an ongoing scheduled scan.");
++#endif
 --- a/util.c
 +++ b/util.c
-@@ -275,6 +275,7 @@ static const char *commands[NL80211_CMD_
+@@ -281,6 +281,7 @@ static const char *commands[NL80211_CMD_
  
  static char cmdbuf[100];
  
  const char *command_name(enum nl80211_commands cmd)
  {
        if (cmd <= NL80211_CMD_MAX && commands[cmd])
-@@ -282,6 +283,7 @@ const char *command_name(enum nl80211_co
+@@ -288,6 +289,7 @@ const char *command_name(enum nl80211_co
        sprintf(cmdbuf, "Unknown command (%d)", cmd);
        return cmdbuf;
  }
  
  int ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
  {
+@@ -426,6 +428,7 @@ int parse_keys(struct nl_msg *msg, char
+       char keybuf[13];
+       int pos = 0;
++      return 1;
+       if (!argc)
+               return 1;
+--- a/Makefile
++++ b/Makefile
+@@ -25,6 +25,8 @@ OBJS-$(HWSIM) += hwsim.o
+ OBJS += $(OBJS-y) $(OBJS-Y)
++OBJS_DISABLED = ocb offch cqm wowlan coalesce roc p2p ap
++OBJS:=$(filter-out $(patsubst %,%.o,$(OBJS_DISABLED)),$(OBJS))
+ ALL = iw
+ ifeq ($(NO_PKG_CONFIG),)
+--- a/station.c
++++ b/station.c
+@@ -629,10 +629,12 @@ static int handle_station_set_plink(stru
+  nla_put_failure:
+       return -ENOBUFS;
+ }
++#if 0
+ COMMAND_ALIAS(station, set, "<MAC address> plink_action <open|block>",
+       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, "<MAC address> mesh_power_mode "
+       "<active|light|deep>", 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,