+@@ -3554,6 +3669,8 @@ enum nl80211_wmm_rule {
+ * @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations.
+ * This is a nested attribute that contains the wmm limitation per AC.
+ * (see &enum nl80211_wmm_rule)
++ * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
++ * in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
+ * currently defined
+ * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
+@@ -3583,6 +3700,7 @@ enum nl80211_frequency_attr {
+ NL80211_FREQUENCY_ATTR_NO_20MHZ,
+ NL80211_FREQUENCY_ATTR_NO_10MHZ,
+ NL80211_FREQUENCY_ATTR_WMM,
++ NL80211_FREQUENCY_ATTR_NO_HE,
+
+ /* keep last */
+ __NL80211_FREQUENCY_ATTR_AFTER_LAST,
+@@ -3780,6 +3898,7 @@ enum nl80211_sched_scan_match_attr {
+ * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
+ * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
+ * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
++ * @NL80211_RRF_NO_HE: HE operation not allowed
+ */
+ enum nl80211_reg_rule_flags {
+ NL80211_RRF_NO_OFDM = 1<<0,
+@@ -3797,6 +3916,7 @@ enum nl80211_reg_rule_flags {
+ NL80211_RRF_NO_HT40PLUS = 1<<14,
+ NL80211_RRF_NO_80MHZ = 1<<15,
+ NL80211_RRF_NO_160MHZ = 1<<16,
++ NL80211_RRF_NO_HE = 1<<17,
+ };
+
+ #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
+@@ -4503,6 +4623,7 @@ enum nl80211_key_default_types {
+ * See &enum nl80211_key_default_types.
+ * @NL80211_KEY_MODE: the mode from enum nl80211_key_mode.
+ * Defaults to @NL80211_KEY_RX_TX.
++ * @NL80211_KEY_DEFAULT_BEACON: flag indicating default Beacon frame key
+ *
+ * @__NL80211_KEY_AFTER_LAST: internal
+ * @NL80211_KEY_MAX: highest key attribute
+@@ -4518,6 +4639,7 @@ enum nl80211_key_attributes {
+ NL80211_KEY_TYPE,
+ NL80211_KEY_DEFAULT_TYPES,
+ NL80211_KEY_MODE,
++ NL80211_KEY_DEFAULT_BEACON,
+
+ /* keep last */
+ __NL80211_KEY_AFTER_LAST,
+@@ -4674,6 +4796,69 @@ enum nl80211_tx_power_setting {
+ };
+
+ /**
++ * enum nl80211_tid_config - TID config state
++ * @NL80211_TID_CONFIG_ENABLE: Enable config for the TID
++ * @NL80211_TID_CONFIG_DISABLE: Disable config for the TID
++ */
++enum nl80211_tid_config {
++ NL80211_TID_CONFIG_ENABLE,
++ NL80211_TID_CONFIG_DISABLE,
++};
++
++/* enum nl80211_tid_config_attr - TID specific configuration.
++ * @NL80211_TID_CONFIG_ATTR_PAD: pad attribute for 64-bit values
++ * @NL80211_TID_CONFIG_ATTR_VIF_SUPP: a bitmap (u64) of attributes supported
++ * for per-vif configuration; doesn't list the ones that are generic
++ * (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
++ * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
++ * per peer instead.
++ * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if no peer
++ * is selected, if set indicates that the new configuration overrides
++ * all previous peer configurations, otherwise previous peer specific
++ * configurations should be left untouched. If peer is selected then
++ * it will reset particular TID configuration of that peer and it will
++ * not accept other TID config attributes along with peer.
++ * @NL80211_TID_CONFIG_ATTR_TIDS: a bitmask value of TIDs (bit 0 to 7)
++ * Its type is u16.
++ * @NL80211_TID_CONFIG_ATTR_NOACK: Configure ack policy for the TID.
++ * specified in %NL80211_TID_CONFIG_ATTR_TID. see %enum nl80211_tid_config.
++ * Its type is u8.
++ * @NL80211_TID_CONFIG_ATTR_RETRY_SHORT: Number of retries used with data frame
++ * transmission, user-space sets this configuration in
++ * &NL80211_CMD_SET_TID_CONFIG. It is u8 type, min value is 1 and
++ * the max value is advertised by the driver in this attribute on
++ * output in wiphy capabilities.
++ * @NL80211_TID_CONFIG_ATTR_RETRY_LONG: Number of retries used with data frame
++ * transmission, user-space sets this configuration in
++ * &NL80211_CMD_SET_TID_CONFIG. Its type is u8, min value is 1 and
++ * the max value is advertised by the driver in this attribute on
++ * output in wiphy capabilities.
++ * @NL80211_TID_CONFIG_ATTR_AMPDU_CTRL: Enable/Disable aggregation for the TIDs
++ * specified in %NL80211_TID_CONFIG_ATTR_TIDS. Its type is u8, using
++ * the values from &nl80211_tid_config.
++ * @NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL: Enable/Disable RTS_CTS for the TIDs
++ * specified in %NL80211_TID_CONFIG_ATTR_TIDS. It is u8 type, using
++ * the values from &nl80211_tid_config.
++ */
++enum nl80211_tid_config_attr {
++ __NL80211_TID_CONFIG_ATTR_INVALID,
++ NL80211_TID_CONFIG_ATTR_PAD,
++ NL80211_TID_CONFIG_ATTR_VIF_SUPP,
++ NL80211_TID_CONFIG_ATTR_PEER_SUPP,
++ NL80211_TID_CONFIG_ATTR_OVERRIDE,
++ NL80211_TID_CONFIG_ATTR_TIDS,
++ NL80211_TID_CONFIG_ATTR_NOACK,
++ NL80211_TID_CONFIG_ATTR_RETRY_SHORT,
++ NL80211_TID_CONFIG_ATTR_RETRY_LONG,
++ NL80211_TID_CONFIG_ATTR_AMPDU_CTRL,
++ NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL,
++
++ /* keep last */
++ __NL80211_TID_CONFIG_ATTR_AFTER_LAST,
++ NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1
++};
++
++/**
+ * enum nl80211_packet_pattern_attr - packet pattern attribute
+ * @__NL80211_PKTPAT_INVALID: invalid number for nested attribute
+ * @NL80211_PKTPAT_PATTERN: the pattern, values where the mask has
+@@ -5484,6 +5669,26 @@ enum nl80211_feature_flags {