@ -1,5 +1,3 @@
diff --git a/nl80211.h b/nl80211.h
index 31ae5c7..9fb7370 100644
--- a/nl80211.h
--- a/nl80211.h
+++ b/nl80211.h
+++ b/nl80211.h
@@ -11,7 +11,7 @@
@@ -11,7 +11,7 @@
@ -11,7 +9,23 @@ index 31ae5c7..9fb7370 100644
*
*
* Permission to use, copy, modify, and/or distribute this software for any
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* purpose with or without fee is hereby granted, provided that the above
@@ -1065,6 +1065,26 @@
@@ -235,6 +235,15 @@
*/
/**
+ * DOC: SAE authentication offload
+ *
+ * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
+ * support offloading SAE authentication for WPA3-Personal networks. In
+ * %NL80211_CMD_CONNECT the password for SAE should be specified using
+ * %NL80211_ATTR_SAE_PASSWORD.
+ */
+
+/**
* enum nl80211_commands - supported nl80211 commands
*
* @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -1065,6 +1074,26 @@
* indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes
* indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes
* determining the width and type.
* determining the width and type.
*
*
@ -38,7 +52,7 @@ index 31ae5c7..9fb7370 100644
* @NL80211_CMD_MAX: highest used command number
* @NL80211_CMD_MAX: highest used command number
* @__NL80211_CMD_AFTER_LAST: internal use
* @__NL80211_CMD_AFTER_LAST: internal use
*/
*/
@@ -1285,6 +13 05 ,10 @@ enum nl80211_commands {
@@ -1285,6 +13 14 ,10 @@ enum nl80211_commands {
NL80211_CMD_NOTIFY_RADAR,
NL80211_CMD_NOTIFY_RADAR,
@ -49,7 +63,7 @@ index 31ae5c7..9fb7370 100644
/* add new commands above here */
/* add new commands above here */
/* used to define NL80211_CMD_MAX below */
/* used to define NL80211_CMD_MAX below */
@@ -1565,6 +15 8 9,12 @@ enum nl80211_commands {
@@ -1565,6 +15 98 ,12 @@ enum nl80211_commands {
* (a u32 with flags from &enum nl80211_wpa_versions).
* (a u32 with flags from &enum nl80211_wpa_versions).
* @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
* @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
* indicate which key management algorithm(s) to use (an array of u32).
* indicate which key management algorithm(s) to use (an array of u32).
@ -62,7 +76,7 @@ index 31ae5c7..9fb7370 100644
*
*
* @NL80211_ATTR_REQ_IE: (Re)association request information elements as
* @NL80211_ATTR_REQ_IE: (Re)association request information elements as
* sent out by the card, for ROAM and successful CONNECT events.
* sent out by the card, for ROAM and successful CONNECT events.
@@ -2260,10 +229 0 ,10 @@ enum nl80211_commands {
@@ -2260,10 +229 9 ,10 @@ enum nl80211_commands {
* &enum nl80211_external_auth_action value). This is used with the
* &enum nl80211_external_auth_action value). This is used with the
* %NL80211_CMD_EXTERNAL_AUTH request event.
* %NL80211_CMD_EXTERNAL_AUTH request event.
* @NL80211_ATTR_EXTERNAL_AUTH_SUPPORT: Flag attribute indicating that the user
* @NL80211_ATTR_EXTERNAL_AUTH_SUPPORT: Flag attribute indicating that the user
@ -77,7 +91,7 @@ index 31ae5c7..9fb7370 100644
*
*
* @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this
* @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this
* u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
* u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
@@ -2299,6 +23 29,21 @@ enum nl80211_commands {
@@ -2299,6 +23 38,27 @@ enum nl80211_commands {
* This is also used for capability advertisement in the wiphy information,
* This is also used for capability advertisement in the wiphy information,
* with the appropriate sub-attributes.
* with the appropriate sub-attributes.
*
*
@ -93,13 +107,19 @@ index 31ae5c7..9fb7370 100644
+ * should be picking up the lowest tx power, either tx power per-interface
+ * should be picking up the lowest tx power, either tx power per-interface
+ * or per-station.
+ * or per-station.
+ *
+ *
+ * @NL80211_ATTR_SAE_PASSWORD: attribute for passing SAE password material. It
+ * is used with %NL80211_CMD_CONNECT to provide password for offloading
+ * SAE authentication for WPA3-Personal networks.
+ *
+ * @NL80211_ATTR_TWT_RESPONDER: Enable target wait time responder support.
+ *
+ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
+ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
+ * transmit power to stay within regulatory limits. u32, dBi.
+ * transmit power to stay within regulatory limits. u32, dBi.
+ *
+ *
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
* @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2748,6 +2 793,12 @@ enum nl80211_attrs {
@@ -2748,6 +2 808,16 @@ enum nl80211_attrs {
NL80211_ATTR_PEER_MEASUREMENTS,
NL80211_ATTR_PEER_MEASUREMENTS,
@ -107,12 +127,16 @@ index 31ae5c7..9fb7370 100644
+ NL80211_ATTR_STA_TX_POWER_SETTING,
+ NL80211_ATTR_STA_TX_POWER_SETTING,
+ NL80211_ATTR_STA_TX_POWER,
+ NL80211_ATTR_STA_TX_POWER,
+
+
+ NL80211_ATTR_SAE_PASSWORD,
+
+ NL80211_ATTR_TWT_RESPONDER,
+
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
+
+
/* add attributes here, update the policy in nl80211.c */
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
__NL80211_ATTR_AFTER_LAST,
@@ -2791, 7 +2842,7 @@ enum nl80211_attrs {
@@ -2791, 14 +2861,14 @@ enum nl80211_attrs {
#define NL80211_MAX_SUPP_RATES 32
#define NL80211_MAX_SUPP_RATES 32
#define NL80211_MAX_SUPP_HT_RATES 77
#define NL80211_MAX_SUPP_HT_RATES 77
@ -121,7 +145,15 @@ index 31ae5c7..9fb7370 100644
#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
@@ -3125,6 +3176,10 @@ enum nl80211_sta_bss_param {
#define NL80211_HT_CAPABILITY_LEN 26
#define NL80211_VHT_CAPABILITY_LEN 12
#define NL80211_HE_MIN_CAPABILITY_LEN 16
-#define NL80211_HE_MAX_CAPABILITY_LEN 51
+#define NL80211_HE_MAX_CAPABILITY_LEN 54
#define NL80211_MAX_NR_CIPHER_SUITES 5
#define NL80211_MAX_NR_AKM_SUITES 2
@@ -3125,6 +3195,10 @@ enum nl80211_sta_bss_param {
* might not be fully accurate.
* might not be fully accurate.
* @NL80211_STA_INFO_CONNECTED_TO_GATE: set to true if STA has a path to a
* @NL80211_STA_INFO_CONNECTED_TO_GATE: set to true if STA has a path to a
* mesh gate (u8, 0 or 1)
* mesh gate (u8, 0 or 1)
@ -132,7 +164,7 @@ index 31ae5c7..9fb7370 100644
* @__NL80211_STA_INFO_AFTER_LAST: internal
* @__NL80211_STA_INFO_AFTER_LAST: internal
* @NL80211_STA_INFO_MAX: highest possible station info attribute
* @NL80211_STA_INFO_MAX: highest possible station info attribute
*/
*/
@@ -3168,6 +32 23 ,9 @@ enum nl80211_sta_info {
@@ -3168,6 +32 4 2,9 @@ enum nl80211_sta_info {
NL80211_STA_INFO_RX_MPDUS,
NL80211_STA_INFO_RX_MPDUS,
NL80211_STA_INFO_FCS_ERROR_COUNT,
NL80211_STA_INFO_FCS_ERROR_COUNT,
NL80211_STA_INFO_CONNECTED_TO_GATE,
NL80211_STA_INFO_CONNECTED_TO_GATE,
@ -142,7 +174,7 @@ index 31ae5c7..9fb7370 100644
/* keep last */
/* keep last */
__NL80211_STA_INFO_AFTER_LAST,
__NL80211_STA_INFO_AFTER_LAST,
@@ -3277,8 +33 3 5,10 @@ enum nl80211_mpath_flags {
@@ -3277,8 +33 54 ,10 @@ enum nl80211_mpath_flags {
* &enum nl80211_mpath_flags;
* &enum nl80211_mpath_flags;
* @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
* @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
* @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries
* @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries
@ -154,7 +186,7 @@ index 31ae5c7..9fb7370 100644
* @__NL80211_MPATH_INFO_AFTER_LAST: internal use
* @__NL80211_MPATH_INFO_AFTER_LAST: internal use
*/
*/
enum nl80211_mpath_info {
enum nl80211_mpath_info {
@@ -3290,6 +33 50 ,8 @@ enum nl80211_mpath_info {
@@ -3290,6 +33 69 ,8 @@ enum nl80211_mpath_info {
NL80211_MPATH_INFO_FLAGS,
NL80211_MPATH_INFO_FLAGS,
NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
NL80211_MPATH_INFO_DISCOVERY_RETRIES,
NL80211_MPATH_INFO_DISCOVERY_RETRIES,
@ -163,7 +195,7 @@ index 31ae5c7..9fb7370 100644
/* keep last */
/* keep last */
__NL80211_MPATH_INFO_AFTER_LAST,
__NL80211_MPATH_INFO_AFTER_LAST,
@@ -3618,6 +36 80 ,14 @@ enum nl80211_reg_rule_attr {
@@ -3618,6 +36 99 ,14 @@ enum nl80211_reg_rule_attr {
* value as specified by &struct nl80211_bss_select_rssi_adjust.
* value as specified by &struct nl80211_bss_select_rssi_adjust.
* @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching
* @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching
* (this cannot be used together with SSID).
* (this cannot be used together with SSID).
@ -178,7 +210,7 @@ index 31ae5c7..9fb7370 100644
* @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
* @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
* attribute number currently defined
* attribute number currently defined
* @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
* @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
@@ -3630,6 +37 00 ,7 @@ enum nl80211_sched_scan_match_attr {
@@ -3630,6 +37 19 ,7 @@ enum nl80211_sched_scan_match_attr {
NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,
NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,
@ -186,11 +218,10 @@ index 31ae5c7..9fb7370 100644
/* keep last */
/* keep last */
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
@@ -4114,6 +4185,27 @@ enum nl80211_channel_type {
@@ -4115,6 +4205,27 @@ enum nl80211_channel_type {
NL80211_CHAN_HT40PLUS
};
};
+/**
/**
+ * enum nl80211_key_mode - Key mode
+ * enum nl80211_key_mode - Key mode
+ *
+ *
+ * @NL80211_KEY_RX_TX: (Default)
+ * @NL80211_KEY_RX_TX: (Default)
@ -211,10 +242,19 @@ index 31ae5c7..9fb7370 100644
+ NL80211_KEY_SET_TX
+ NL80211_KEY_SET_TX
+};
+};
+
+
/**
+/**
* enum nl80211_chan_width - channel width definitions
* enum nl80211_chan_width - channel width definitions
*
*
@@ -4357,6 +4449,9 @@ enum nl80211_key_default_types {
* These values are used with the %NL80211_ATTR_CHANNEL_WIDTH
@@ -4319,6 +4430,7 @@ enum nl80211_mfp {
enum nl80211_wpa_versions {
NL80211_WPA_VERSION_1 = 1 << 0,
NL80211_WPA_VERSION_2 = 1 << 1,
+ NL80211_WPA_VERSION_3 = 1 << 2,
};
/**
@@ -4357,6 +4469,9 @@ enum nl80211_key_default_types {
* @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags
* @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags
* attributes, specifying what a key should be set as default as.
* attributes, specifying what a key should be set as default as.
* See &enum nl80211_key_default_types.
* See &enum nl80211_key_default_types.
@ -224,7 +264,7 @@ index 31ae5c7..9fb7370 100644
* @__NL80211_KEY_AFTER_LAST: internal
* @__NL80211_KEY_AFTER_LAST: internal
* @NL80211_KEY_MAX: highest key attribute
* @NL80211_KEY_MAX: highest key attribute
*/
*/
@@ -4370,6 +44 6 5,7 @@ enum nl80211_key_attributes {
@@ -4370,6 +44 8 5,7 @@ enum nl80211_key_attributes {
NL80211_KEY_DEFAULT_MGMT,
NL80211_KEY_DEFAULT_MGMT,
NL80211_KEY_TYPE,
NL80211_KEY_TYPE,
NL80211_KEY_DEFAULT_TYPES,
NL80211_KEY_DEFAULT_TYPES,
@ -232,7 +272,16 @@ index 31ae5c7..9fb7370 100644
/* keep last */
/* keep last */
__NL80211_KEY_AFTER_LAST,
__NL80211_KEY_AFTER_LAST,
@@ -5315,6 +5411,21 @@ enum nl80211_feature_flags {
@@ -5223,7 +5339,7 @@ enum nl80211_feature_flags {
NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
- NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
+ NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1U << 31,
};
/**
@@ -5315,6 +5431,24 @@ enum nl80211_feature_flags {
* able to rekey an in-use key correctly. Userspace must not rekey PTK keys
* able to rekey an in-use key correctly. Userspace must not rekey PTK keys
* if this flag is not set. Ignoring this can leak clear text packets and/or
* if this flag is not set. Ignoring this can leak clear text packets and/or
* freeze the connection.
* freeze the connection.
@ -251,10 +300,13 @@ index 31ae5c7..9fb7370 100644
+ *
+ *
+ * @NL80211_EXT_FEATURE_STA_TX_PWR: This driver supports controlling tx power
+ * @NL80211_EXT_FEATURE_STA_TX_PWR: This driver supports controlling tx power
+ * to a station.
+ * to a station.
+ *
+ * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
+ * station mode (SAE password is passed as part of the connect command).
*
*
* @NUM_NL80211_EXT_FEATURES: number of extended features.
* @NUM_NL80211_EXT_FEATURES: number of extended features.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -5355,6 +54 66,11 @@ enum nl80211_ext_feature_index {
@@ -5355,6 +54 89,12 @@ enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
@ -263,10 +315,11 @@ index 31ae5c7..9fb7370 100644
+ NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD,
+ NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD,
+ NL80211_EXT_FEATURE_EXT_KEY_ID,
+ NL80211_EXT_FEATURE_EXT_KEY_ID,
+ NL80211_EXT_FEATURE_STA_TX_PWR,
+ NL80211_EXT_FEATURE_STA_TX_PWR,
+ NL80211_EXT_FEATURE_SAE_OFFLOAD,
/* add new features before the definition below */
/* add new features before the definition below */
NUM_NL80211_EXT_FEATURES,
NUM_NL80211_EXT_FEATURES,
@@ -5606,9 +57 22 ,14 @@ enum nl80211_crit_proto_id {
@@ -5606,9 +57 46 ,14 @@ enum nl80211_crit_proto_id {
* Used by cfg80211_rx_mgmt()
* Used by cfg80211_rx_mgmt()
*
*
* @NL80211_RXMGMT_FLAG_ANSWERED: frame was answered by device/driver.
* @NL80211_RXMGMT_FLAG_ANSWERED: frame was answered by device/driver.