+@@ -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 @@