-@@ -2385,6 +2481,15 @@ enum nl80211_ac {
- #define NL80211_TXQ_Q_BE NL80211_AC_BE
- #define NL80211_TXQ_Q_BK NL80211_AC_BK
-
-+/**
-+ * enum nl80211_channel_type - channel type
-+ * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel
-+ * @NL80211_CHAN_HT20: 20 MHz HT channel
-+ * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel
-+ * below the control channel
-+ * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel
-+ * above the control channel
-+ */
- enum nl80211_channel_type {
- NL80211_CHAN_NO_HT,
- NL80211_CHAN_HT20,
-@@ -2393,6 +2498,32 @@ enum nl80211_channel_type {
- };
-
- /**
-+ * enum nl80211_chan_width - channel width definitions
-+ *
-+ * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH
-+ * attribute.
-+ *
-+ * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel
-+ * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel
-+ * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
-+ * attribute must be provided as well
-+ * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
-+ * attribute must be provided as well
-+ * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
-+ * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well
-+ * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
-+ * attribute must be provided as well
-+ */
-+enum nl80211_chan_width {
-+ NL80211_CHAN_WIDTH_20_NOHT,
-+ NL80211_CHAN_WIDTH_20,
-+ NL80211_CHAN_WIDTH_40,
-+ NL80211_CHAN_WIDTH_80,
-+ NL80211_CHAN_WIDTH_80P80,
-+ NL80211_CHAN_WIDTH_160,
-+};
-+
-+/**
- * enum nl80211_bss - netlink attributes for a BSS
- *
- * @__NL80211_BSS_INVALID: invalid
-@@ -2460,6 +2591,7 @@ enum nl80211_bss_status {
- * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only)
- * @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_NUM: internal
- * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm
- * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by
-@@ -2471,6 +2603,7 @@ enum nl80211_auth_type {
- NL80211_AUTHTYPE_SHARED_KEY,
- NL80211_AUTHTYPE_FT,
- NL80211_AUTHTYPE_NETWORK_EAP,
-+ NL80211_AUTHTYPE_SAE,
-
- /* keep last */
- __NL80211_AUTHTYPE_NUM,
-@@ -2994,12 +3127,40 @@ 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
-+ * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan
-+ * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported
-+ * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif
-+ * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting
-+ * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform
-+ * OBSS scans and generate 20/40 BSS coex reports. This flag is used only
-+ * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied.
-+ * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window
-+ * setting
-+ * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic
-+ * powersave
- */
- enum nl80211_feature_flags {
-- NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
-- NL80211_FEATURE_HT_IBSS = 1 << 1,
-- NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
-- NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3,
-+ NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
-+ 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,
-+ NL80211_FEATURE_SAE = 1 << 5,
-+ NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6,
-+ NL80211_FEATURE_SCAN_FLUSH = 1 << 7,
-+ NL80211_FEATURE_AP_SCAN = 1 << 8,
-+ NL80211_FEATURE_VIF_TXPOWER = 1 << 9,
-+ NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10,
-+ NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11,
-+ NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12,
- };
-
- /**
-@@ -3023,4 +3184,36 @@ enum nl80211_probe_resp_offload_support_
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3,
- };
-
-+/**
-+ * enum nl80211_connect_failed_reason - connection request failed reasons
-+ * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be
-+ * handled by the AP is reached.
-+ * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Client's MAC is in the AP's blocklist.
-+ */
-+enum nl80211_connect_failed_reason {
-+ NL80211_CONN_FAIL_MAX_CLIENTS,
-+ NL80211_CONN_FAIL_BLOCKED_CLIENT,
-+};
-+
-+/**
-+ * enum nl80211_scan_flags - scan request control flags
-+ *
-+ * Scan request control flags are used to control the handling
-+ * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN
-+ * requests.
-+ *
-+ * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority
-+ * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning
-+ * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured
-+ * as AP and the beaconing has already been configured. This attribute is
-+ * dangerous because will destroy stations performance as a lot of frames
-+ * will be lost while scanning off-channel, therefore it must be used only
-+ * when really needed
-+ */
-+enum nl80211_scan_flags {
-+ NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
-+ NL80211_SCAN_FLAG_FLUSH = 1<<1,
-+ NL80211_SCAN_FLAG_AP = 1<<2,
-+};
-+
- #endif /* __LINUX_NL80211_H */