-@@ -11,6 +11,7 @@
- * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
- * Copyright 2008 Colin McCabe <colin@cozybit.com>
- * Copyright 2015-2017 Intel Deutschland GmbH
-+ * Copyright (C) 2018 Intel Corporation
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
-@@ -203,7 +204,8 @@
- * 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.
-+ * parameters should be given to driver in %NL80211_CMD_CONNECT and/or in
-+ * %NL80211_CMD_UPDATE_CONNECT_PARAMS.
- * %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
-@@ -214,7 +216,8 @@
- * as specified in IETF RFC 6696.
- *
- * When FILS shared key authentication is completed, driver needs to provide the
-- * below additional parameters to userspace.
-+ * below additional parameters to userspace, which can be either after setting
-+ * up a connection or after roaming.
- * %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
-@@ -542,7 +545,8 @@
- * 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,
-- * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and
-+ * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
-+ * %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %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
-@@ -977,21 +981,58 @@
- * 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
-+ * 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_ATTR_MAC.
- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way
- * handshake was completed successfully by the driver. The BSSID is
-- * specified with &NL80211_ATTR_MAC. Drivers that support 4 way handshake
-+ * specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
- * offload should send this event after indicating 802.11 association with
-- * &NL80211_CMD_CONNECT or &NL80211_CMD_ROAM. If the 4 way handshake failed
-- * &NL80211_CMD_DISCONNECT should be indicated instead.
-+ * %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
-+ * %NL80211_CMD_DISCONNECT should be indicated instead.
-+ *
-+ * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
-+ * and RX notification. This command is used both as a request to transmit
-+ * a control port frame and as a notification that a control port frame
-+ * has been received. %NL80211_ATTR_FRAME is used to specify the
-+ * frame contents. The frame is the raw EAPoL data, without ethernet or
-+ * 802.11 headers.
-+ * When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
-+ * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added
-+ * indicating the protocol type of the received frame; whether the frame
-+ * was received unencrypted and the MAC address of the peer respectively.
- *
- * @NL80211_CMD_RELOAD_REGDB: Request that the regdb firmware file is reloaded.
- *
-+ * @NL80211_CMD_EXTERNAL_AUTH: This interface is exclusively defined for host
-+ * drivers that do not define separate commands for authentication and
-+ * association, but rely on user space for the authentication to happen.
-+ * This interface acts both as the event request (driver to user space)
-+ * to trigger the authentication and command response (userspace to
-+ * driver) to indicate the authentication status.
-+ *
-+ * User space uses the %NL80211_CMD_CONNECT command to the host driver to
-+ * trigger a connection. The host driver selects a BSS and further uses
-+ * this interface to offload only the authentication part to the user
-+ * space. Authentication frames are passed between the driver and user
-+ * space through the %NL80211_CMD_FRAME interface. Host driver proceeds
-+ * further with the association after getting successful authentication
-+ * status. User space indicates the authentication status through
-+ * %NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
-+ * command interface.
-+ *
-+ * Host driver reports this status on an authentication failure to the
-+ * user space through the connect result as the user space would have
-+ * initiated the connection through the connect request.
-+ *
-+ * @NL80211_CMD_STA_OPMODE_CHANGED: An event that notify station's
-+ * ht opmode or vht opmode changes using any of %NL80211_ATTR_SMPS_MODE,
-+ * %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its
-+ * address(specified in %NL80211_ATTR_MAC).
-+ *
- * @NL80211_CMD_MAX: highest used command number
- * @__NL80211_CMD_AFTER_LAST: internal use
- */
-@@ -1198,6 +1239,12 @@ enum nl80211_commands {
-
- NL80211_CMD_RELOAD_REGDB,