+@@ -2347,6 +2429,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
+@@ -3027,6 +3110,13 @@ 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_MAX: highest scheduled scan filter
+ * attribute number currently defined
+ * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
+@@ -3036,6 +3126,8 @@ 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,
+
+ /* keep last */
+ __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
+@@ -3660,6 +3752,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 +3767,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,
+@@ -4280,6 +4378,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 +4388,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 +4415,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 +4736,15 @@ 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).
+ *
+ * @NUM_NL80211_EXT_FEATURES: number of extended features.
+ * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
+@@ -4648,6 +4759,10 @@ 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,
+
+ /* add new features before the definition below */
+ NUM_NL80211_EXT_FEATURES,
+@@ -4687,6 +4802,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
+@@ -4900,8 +5030,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;