Files
wlan-ap/feeds/qca-wifi-7/iw/patches/zzz-sync-nl80211.h.patch
2025-07-11 13:29:21 +02:00

1008 lines
41 KiB
Diff

--- a/nl80211.h
+++ b/nl80211.h
@@ -11,7 +11,7 @@
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
* Copyright 2008 Colin McCabe <colin@cozybit.com>
* Copyright 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2022 Intel Corporation
+ * Copyright (C) 2018-2023 Intel Corporation
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -41,6 +41,7 @@
*/
#include <linux/types.h>
+#include <linux/kernel.h>
#define NL80211_GENL_NAME "nl80211"
@@ -395,11 +396,13 @@
* %NL80211_ATTR_MLO_LINK_ID.
*
* @NL80211_CMD_GET_BEACON: (not used)
- * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
+ * @NL80211_CMD_UPDATE_AP: Update AP parameters which can vary at the
+ * runtime of BSS. change the beacon on an access point interface
* using the %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL
* attributes. For drivers that generate the beacon and probe responses
- * internally, the following attributes must be provided: %NL80211_ATTR_IE,
- * %NL80211_ATTR_IE_PROBE_RESP and %NL80211_ATTR_IE_ASSOC_RESP.
+ * internally, the following attributes must be provided for the
+ * beacon update: %NL80211_ATTR_IE, %NL80211_ATTR_IE_PROBE_RESP and
+ * %NL80211_ATTR_IE_ASSOC_RESP.
* @NL80211_CMD_START_AP: Start AP operation on an AP interface, parameters
* are like for %NL80211_CMD_SET_BEACON, and additionally parameters that
* do not change are used, these include %NL80211_ATTR_BEACON_INTERVAL,
@@ -424,11 +427,13 @@
* interface identified by %NL80211_ATTR_IFINDEX.
* @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
* or, if no MAC address given, all stations, on the interface identified
- * by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
+ * by %NL80211_ATTR_IFINDEX. For MLD station, MLD address is used in
+ * %NL80211_ATTR_MAC. %NL80211_ATTR_MGMT_SUBTYPE and
* %NL80211_ATTR_REASON_CODE can optionally be used to specify which type
* of disconnection indication should be sent to the station
* (Deauthentication or Disassociation frame and reason code for that
- * frame).
+ * frame). %NL80211_ATTR_MLO_LINK_ID can be used optionally to remove
+ * stations connected and using at least that link.
*
* @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to
* destination %NL80211_ATTR_MAC on the interface identified by
@@ -1166,6 +1171,23 @@
* %NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
* command interface.
*
+ * Host driver sends MLD address of the AP with %NL80211_ATTR_MLD_ADDR in
+ * %NL80211_CMD_EXTERNAL_AUTH event to indicate user space to enable MLO
+ * during the authentication offload in STA mode while connecting to MLD
+ * APs. Host driver should check %NL80211_ATTR_MLO_SUPPORT flag capability
+ * in %NL80211_CMD_CONNECT to know whether the user space supports enabling
+ * MLO during the authentication offload or not.
+ * User space should enable MLO during the authentication only when it
+ * receives the AP MLD address in authentication offload request. User
+ * space shouldn't enable MLO when the authentication offload request
+ * doesn't indicate the AP MLD address even if the AP is MLO capable.
+ * User space should use %NL80211_ATTR_MLD_ADDR as peer's MLD address and
+ * interface address identified by %NL80211_ATTR_IFINDEX as self MLD
+ * address. User space and host driver to use MLD addresses in RA, TA and
+ * BSSID fields of the frames between them, and host driver translates the
+ * MLD addresses to/from link addresses based on the link chosen for the
+ * authentication.
+ *
* Host driver reports this status on an authentication failure to the
* user space through the connect result as the user space would have
* initiated the connection through the connect request.
@@ -1281,6 +1303,34 @@
* @NL80211_CMD_MODIFY_LINK_STA: Modify a link of an MLD station
* @NL80211_CMD_REMOVE_LINK_STA: Remove a link of an MLD station
*
+ * @NL80211_CMD_SET_HW_TIMESTAMP: Enable/disable HW timestamping of Timing
+ * measurement and Fine timing measurement frames. If %NL80211_ATTR_MAC
+ * is included, enable/disable HW timestamping only for frames to/from the
+ * specified MAC address. Otherwise enable/disable HW timestamping for
+ * all TM/FTM frames (including ones that were enabled with specific MAC
+ * address). If %NL80211_ATTR_HW_TIMESTAMP_ENABLED is not included, disable
+ * HW timestamping.
+ * The number of peers that HW timestamping can be enabled for concurrently
+ * is indicated by %NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS.
+ *
+ * @NL80211_CMD_LINKS_REMOVED: Notify userspace about the removal of STA MLD
+ * setup links due to AP MLD removing the corresponding affiliated APs with
+ * Multi-Link reconfiguration. %NL80211_ATTR_MLO_LINKS is used to provide
+ * information about the removed STA MLD setup links.
+ *
+ * @NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS: Updated MU-EDCA parameters from driver.
+ * This event is used to update dynamic MU-EDCA parameters in Beacon frame,
+ * coming from driver and now need to be reflected in Beacon frame.
+ *
+ *
+ * @NL80211_CMD_AWGN_DETECT: Once AWGN interference is detected on the operating
+ * channel, userspace is notified with the interference bitmap using
+ * %NL80211_ATTR_AWGN_INTERFERENCE_BITMAP
+ * @NL80211_ATTR_AWGN_INTERFERENCE_BITMAP: u32 attribute specifying the
+ * interference bitmap of operating bandwidth for %NL80211_CMD_AWGN_DETECT
+ * @NL80211_CMD_INTERFERENCE_DETECT: Once any interference is detected on the
+ * operating channel, userspace would be notified of it
+ * using %NL80211_ATTR_INTERFERENCE_TYPE.
* @NL80211_CMD_MAX: highest used command number
* @__NL80211_CMD_AFTER_LAST: internal use
*/
@@ -1305,7 +1355,7 @@ enum nl80211_commands {
NL80211_CMD_GET_BEACON,
NL80211_CMD_UPDATE_AP,
- NL80211_CMD_SET_BEACON = NL80211_CMD_UPDATE_AP,
+ NL80211_CMD_SET_BEACON = NL80211_CMD_UPDATE_AP,
NL80211_CMD_START_AP,
NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP,
NL80211_CMD_STOP_AP,
@@ -1539,9 +1589,14 @@ enum nl80211_commands {
NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS,
+ /* To be Deprecated from ATH QSDK, once we upstream
+ * NL80211_CMD_INTERFERENCE_DETECT
+ */
NL80211_CMD_AWGN_DETECT,
NL80211_CMD_STOP_BGRADAR_DETECT,
+
+ NL80211_CMD_INTERFERENCE_DETECT,
/* add new commands above here */
/* used to define NL80211_CMD_MAX below */
@@ -1886,8 +1941,9 @@ enum nl80211_commands {
* The driver must also specify support for this with the extended
* features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
* NL80211_EXT_FEATURE_BEACON_RATE_HT,
- * NL80211_EXT_FEATURE_BEACON_RATE_VHT and
- * NL80211_EXT_FEATURE_BEACON_RATE_HE.
+ * NL80211_EXT_FEATURE_BEACON_RATE_VHT,
+ * NL80211_EXT_FEATURE_BEACON_RATE_HE and
+ * NL80211_EXT_FEATURE_BEACON_RATE_EHT.
*
* @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
* at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
@@ -2012,6 +2068,10 @@ enum nl80211_commands {
* @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported
* interface combinations. In each nested item, it contains attributes
* defined in &enum nl80211_if_combination_attrs.
+ * If the wiphy uses multiple radios (@NL80211_ATTR_WIPHY_RADIOS is set),
+ * this attribute contains the interface combinations of the first radio.
+ * See @NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS for the global wiphy
+ * combinations for the sum of all radios.
* @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like
* %NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that
* are managed in software: interfaces of these types aren't subject to
@@ -2560,6 +2620,11 @@ enum nl80211_commands {
* association request when used with NL80211_CMD_NEW_STATION). Can be set
* only if %NL80211_STA_FLAG_WME is set.
*
+ * @NL80211_ATTR_AP_PS: enable/disable AP power save.
+ * This attribute type is u8 and valid range is 0 to 1.
+ * 0 for disable AP power save mode.
+ * 1 for enable AP power save mode.
+ *
* @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
* in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
* measurement (FTM) responder functionality and containing parameters as
@@ -2761,6 +2826,7 @@ enum nl80211_commands {
* the incoming frame RX timestamp.
* @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
* (re)associations.
+ *
* @NL80211_ATTR_PUNCT_BITMAP: (u32) Preamble puncturing bitmap, lowest
* bit corresponds to the lowest 20 MHz channel. Each bit set to 1
* indicates that the sub-channel is punctured. Higher 16 bits are
@@ -2790,9 +2856,32 @@ enum nl80211_commands {
* @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
* transmit power to stay within regulatory limits. u32, dBi.
*
+ * @NL80211_ATTR_HE_MUEDCA_PARAMS: MU-EDCA AC parameters for the
+ * %NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS command.
+ * @NL80211_ATTR_BEACON_TX_MODE: used to configure the beacon tx mode as
+ * staggered mode = 1 or burst mode = 2 in %NL80211_CMD_START_AP or
+ * %NL80211_CMD_JOIN_MESH from user-space.
+ *
+ * @NL80211_ATTR_RU_PUNCT_SUPP_BW: (u8) Minimum bandwidth for which
+ * the driver supports preamble puncturing, value should be of type
+ * &enum nl80211_ru_punct_supp_bw
+ *
+ * @NL80211_ATTR_RU_PUNCT_SUPP_HE: flag attribute, used to indicate that RU
+ * puncturing bitmap validation should include OFDMA bitmaps.
+ *
+ * @NL80211_ATTR_RU_PUNCT_BITMAP: (u16) RU puncturing bitmap where the lowest
+ * bit corresponds to the lowest 20 MHz channel. Each bit set to 1
+ * indicates that the sub-channel is punctured, set 0 indicates that the
+ * channel is active.
+ *
+ * @NL80211_ATTR_MULTI_HW_MACS: nested attribute to send the hardware mac
+ * specific channel capabilities to user space. Drivers registering
+ * multiple physical hardware under a wiphy can use this attribute,
+ * see &enum nl80211_multi_hw_mac_attrs.
+ *
* @NL80211_ATTR_RADAR_BITMAP: (u16) RADAR bitmap where the lowest bit
- * corresponds to the lowest 20MHZ channel. Each bit set to 1
- * indicates that radar is detected in that sub-channel.
+ * corresponds to the lowest 20MHZ channel. Each bit set to 1
+ * indicates that radar is detected in that sub-channel.
*
* @NL80211_ATTR_ADD_MULTI_CHAN: Add channel to the radio, this is used
* for monitor interface (u32).
@@ -2800,6 +2889,39 @@ enum nl80211_commands {
* @NL80211_ATTR_DEL_MULTI_CHAN: Delete channel from the radio, this is used
* for monitor interface (u32).
*
+ * @NL80211_ATTR_RXMGMT_CRITICAL_UPDATE: Nested attribute listing the critical
+ * update for each MLD. In each nested item, it contains attributes
+ * defined in &enum nl80211_cu_attrs.
+ *
+ * @NL80211_ATTR_SET_CRITICAL_UPDATE: set critical update bitmap for the BSS(s)
+ * (see &enum nl80211_set_cu_attrs).
+ *
+ * @NL80211_ATTR_CHANNEL_WIDTH_DEVICE: Device channel width (u32). Value
+ * must be zero or twice @NL80211_ATTR_CHANNEL_WIDTH which is the
+ * operating channel width. Minimum value is 40 MHz.
+ *
+ * @NL80211_ATTR_CENTER_FREQ_DEVICE: Device center frequency (u32). This
+ * value must be such that the operating bandwidth is a subset of the
+ * device bandwidth.
+ *
+ * @NL80211_ATTR_INTERFERENCE_TYPE: Different Interference Types (u32).
+ * This value indicates the below list of interference detected.
+ * 1. Continous Wave Interference, it can be from a dialer phone or microwave.
+ * 2. AWGN Interference.
+ *
+ * The above list is detailed in the enum nl80211_interference_type.
+ *
+ * @NL80211_ATTR_WIPHY_RADIOS: Nested attribute describing physical radios
+ * belonging to this wiphy. See &enum nl80211_wiphy_radio_attrs.
+ *
+ * @NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS: Nested attribute listing the
+ * supported interface combinations for all radios combined. In each
+ * nested item, it contains attributes defined in
+ * &enum nl80211_if_combination_attrs.
+ *
+ * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
+ * A value of 0 means all radios.
+ *
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3366,6 +3488,17 @@ enum nl80211_attrs {
NL80211_ATTR_ADD_MULTI_CHAN,
NL80211_ATTR_DEL_MULTI_CHAN,
+ NL80211_ATTR_RXMGMT_CRITICAL_UPDATE,
+ NL80211_ATTR_SET_CRITICAL_UPDATE,
+ NL80211_ATTR_CHANNEL_WIDTH_DEVICE,
+ NL80211_ATTR_CENTER_FREQ_DEVICE,
+ NL80211_ATTR_INTERFERENCE_TYPE,
+
+ NL80211_ATTR_WIPHY_RADIOS,
+ NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS,
+
+ NL80211_ATTR_VIF_RADIO_MASK,
+
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
@@ -3426,8 +3559,9 @@ enum nl80211_attrs {
* present in %NL80211_CMD_GET_WIPHY response.
*/
#define NL80211_MAX_NR_AKM_SUITES 2
-#define NL80211_EHT_MIN_CAPABILITY_LEN 13
+#define NL80211_EHT_MIN_CAPABILITY_LEN 12
#define NL80211_EHT_MAX_CAPABILITY_LEN 51
+#define NL80211_EHT240_MAX_CAPABILITY_LEN 10
#define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10
@@ -3506,6 +3640,7 @@ enum nl80211_iftype {
* @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers
* that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a
* previously added station into associated state
+ * @NL80211_STA_FLAG_FT_AUTH: station uses FT authentication
* @NL80211_STA_FLAG_MAX: highest station flag number currently defined
* @__NL80211_STA_FLAG_AFTER_LAST: internal use
*/
@@ -3518,6 +3653,7 @@ enum nl80211_sta_flags {
NL80211_STA_FLAG_AUTHENTICATED,
NL80211_STA_FLAG_TDLS_PEER,
NL80211_STA_FLAG_ASSOCIATED,
+ NL80211_STA_FLAG_FT_AUTH,
/* keep last */
__NL80211_STA_FLAG_AFTER_LAST,
@@ -3609,6 +3745,18 @@ enum nl80211_eht_gi {
};
/**
+ * enum nl80211_eht_ltf - EHT long training field
+ * @NL80211_RATE_INFO_EHT_1xLTF: 3.2 usec
+ * @NL80211_RATE_INFO_EHT_2xLTF: 6.4 usec
+ * @NL80211_RATE_INFO_EHT_4xLTF: 12.8 usec
+ */
+enum nl80211_eht_ltf {
+ NL80211_RATE_INFO_EHT_1XLTF,
+ NL80211_RATE_INFO_EHT_2XLTF,
+ NL80211_RATE_INFO_EHT_4XLTF,
+};
+
+/**
* enum nl80211_eht_ru_alloc - EHT RU allocation values
* @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
* @NL80211_RATE_INFO_EHT_RU_ALLOC_52: 52-tone RU allocation
@@ -3692,6 +3840,13 @@ enum nl80211_eht_ru_alloc {
* (u8, see &enum nl80211_eht_gi)
* @NL80211_RATE_INFO_EHT_RU_ALLOC: EHT RU allocation, if not present then
* non-OFDMA was used (u8, see &enum nl80211_eht_ru_alloc)
+ * @NL80211_RATE_INFO_S1G_MCS: S1G MCS index (u8, 0-10)
+ * @NL80211_RATE_INFO_S1G_NSS: S1G NSS value (u8, 1-4)
+ * @NL80211_RATE_INFO_1_MHZ_WIDTH: 1 MHz S1G rate
+ * @NL80211_RATE_INFO_2_MHZ_WIDTH: 2 MHz S1G rate
+ * @NL80211_RATE_INFO_4_MHZ_WIDTH: 4 MHz S1G rate
+ * @NL80211_RATE_INFO_8_MHZ_WIDTH: 8 MHz S1G rate
+ * @NL80211_RATE_INFO_16_MHZ_WIDTH: 16 MHz S1G rate
* @__NL80211_RATE_INFO_AFTER_LAST: internal use
*/
enum nl80211_rate_info {
@@ -3718,6 +3873,13 @@ enum nl80211_rate_info {
NL80211_RATE_INFO_EHT_NSS,
NL80211_RATE_INFO_EHT_GI,
NL80211_RATE_INFO_EHT_RU_ALLOC,
+ NL80211_RATE_INFO_S1G_MCS,
+ NL80211_RATE_INFO_S1G_NSS,
+ NL80211_RATE_INFO_1_MHZ_WIDTH,
+ NL80211_RATE_INFO_2_MHZ_WIDTH,
+ NL80211_RATE_INFO_4_MHZ_WIDTH,
+ NL80211_RATE_INFO_8_MHZ_WIDTH,
+ NL80211_RATE_INFO_16_MHZ_WIDTH,
/* keep last */
__NL80211_RATE_INFO_AFTER_LAST,
@@ -3834,6 +3996,8 @@ enum nl80211_sta_bss_param {
* of STA's association
* @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a
* authentication server (u8, 0 or 1)
+ * @NL80211_STA_INFO_RX_RETRIES: number of rx packets(MPDUs) from this station
+ * with retry bit set (u32)
* @__NL80211_STA_INFO_AFTER_LAST: internal
* @NL80211_STA_INFO_MAX: highest possible station info attribute
*/
@@ -3882,6 +4046,7 @@ enum nl80211_sta_info {
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
NL80211_STA_INFO_CONNECTED_TO_AS,
+ NL80211_STA_INFO_RX_RETRIES,
/* keep last */
__NL80211_STA_INFO_AFTER_LAST,
@@ -4014,8 +4179,6 @@ enum nl80211_mpath_info {
NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
};
-#define NL80211_EHT_NSS_MAX 16
-
/**
* enum nl80211_band_iftype_attr - Interface type data attributes
*
@@ -4088,6 +4251,10 @@ enum nl80211_band_iftype_attr {
* @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
* the allowed channel bandwidth configurations.
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
+ * @NL80211_BAND_ATTR_S1G_MCS_NSS_SET: S1G capabilities, supported S1G-MCS and NSS
+ * set subfield, as in the S1G information IE, 5 bytes
+ * @NL80211_BAND_ATTR_S1G_CAPA: S1G capabilities information subfield as in the
+ * S1G information IE, 10 bytes
* @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
* @__NL80211_BAND_ATTR_AFTER_LAST: internal use
*/
@@ -4108,6 +4275,9 @@ enum nl80211_band_attr {
NL80211_BAND_ATTR_EDMG_CHANNELS,
NL80211_BAND_ATTR_EDMG_BW_CONFIG,
+ NL80211_BAND_ATTR_S1G_MCS_NSS_SET,
+ NL80211_BAND_ATTR_S1G_CAPA,
+
/* keep last */
__NL80211_BAND_ATTR_AFTER_LAST,
NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
@@ -4115,6 +4285,10 @@ enum nl80211_band_attr {
#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
+#define NL80211_NUM_POWER_MODES_PER_IFTYPE 3
+#define GET_POWER_MODE_FOR_NON_AP_STA(pwr_mode_usr, pwr_mode_bcn) \
+ (NL80211_NUM_POWER_MODES_PER_IFTYPE * (1 + pwr_mode_usr) + pwr_mode_bcn)
+
enum nl80211_regulatory_power_modes {
NL80211_REG_AP_LPI,
NL80211_REG_AP_SP,
@@ -4221,6 +4395,8 @@ enum nl80211_wmm_rule {
* as the primary or any of the secondary channels isn't possible
* @NL80211_FREQUENCY_ATTR_NO_EHT: EHT operation is not allowed on this channel
* in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_PSD: power spectral density (in dBm)
+ * is 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
@@ -4259,6 +4435,7 @@ enum nl80211_frequency_attr {
NL80211_FREQUENCY_ATTR_16MHZ,
NL80211_FREQUENCY_ATTR_NO_320MHZ,
NL80211_FREQUENCY_ATTR_NO_EHT,
+ NL80211_FREQUENCY_ATTR_PSD,
/* keep last */
__NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4361,8 +4538,7 @@ enum nl80211_reg_type {
* If not present or 0 default CAC time will be used.
* @NL80211_ATTR_POWER_RULE_PSD: power spectral density (in dBm).
* This could be negative.
- * @NL80211_ATTR_REG_POWER_MODE: 6 GHZ power mode. Referenced from &enum
- * nl80211_regulatory_power_modes.
+ * @NL80211_ATTR_REG_POWER_MODE: the regulatory power mode for 6G rules
* @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number
* currently defined
* @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use
@@ -4466,8 +4642,8 @@ enum nl80211_sched_scan_match_attr {
* @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
* @NL80211_RRF_NO_HE: HE operation not allowed
* @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
- * @NL80211_RRF_PSD: channels has power spectral density value
* @NL80211_RRF_NO_EHT: EHT operation not allowed
+ * @NL80211_RRF_PSD: channels has power spectral density value
*/
enum nl80211_reg_rule_flags {
NL80211_RRF_NO_OFDM = 1<<0,
@@ -4487,8 +4663,8 @@ enum nl80211_reg_rule_flags {
NL80211_RRF_NO_160MHZ = 1<<16,
NL80211_RRF_NO_HE = 1<<17,
NL80211_RRF_NO_320MHZ = 1<<18,
- NL80211_RRF_PSD = 1<<19,
- NL80211_RRF_NO_EHT = 1<<20,
+ NL80211_RRF_NO_EHT = 1<<19,
+ NL80211_RRF_PSD = 1<<20,
};
#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
@@ -4661,6 +4837,7 @@ enum nl80211_mgmt_rts_cts_conf {
NL80211_MGMT_RTS_CTS_ENABLE,
NL80211_MGMT_RTS_CTS_DISABLE,
};
+
/**
* enum nl80211_meshconf_params - mesh configuration parameters
*
@@ -5275,11 +5452,11 @@ enum nl80211_key_attributes {
* see &struct nl80211_txrate_he
* @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
* @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
+ * @NL80211_TXRATE_HE_UL: HE MCS rates of connected HE STA for uplink traffic.
* @NL80211_TXRATE_EHT: EHT rates allowed for TX rate selection,
* see &struct nl80211_txrate_eht
* @NL80211_TXRATE_EHT_GI: configure EHT GI, 0.8us, 1.6us and 3.2us.
* @NL80211_TXRATE_EHT_LTF: configure EHT LTF, 1XLTF, 2XLTF and 4XLTF.
- *
* @__NL80211_TXRATE_AFTER_LAST: internal
* @NL80211_TXRATE_MAX: highest TX rate attribute
*/
@@ -5314,6 +5491,7 @@ struct nl80211_txrate_vht {
};
#define NL80211_HE_NSS_MAX 8
+#define NL80211_EHT_NSS_MAX 16
/**
* struct nl80211_txrate_he - HE MCS/NSS txrate bitmap
* @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
@@ -5337,18 +5515,6 @@ struct nl80211_txrate_eht {
};
/**
- * enum nl80211_eht_ltf - EHT long training field
- * @NL80211_RATE_INFO_EHT_1xLTF: 3.2 usec
- * @NL80211_RATE_INFO_EHT_2xLTF: 6.4 usec
- * @NL80211_RATE_INFO_EHT_4xLTF: 12.8 usec
- */
-enum nl80211_eht_ltf {
- NL80211_RATE_INFO_EHT_1XLTF,
- NL80211_RATE_INFO_EHT_2XLTF,
- NL80211_RATE_INFO_EHT_4XLTF,
-};
-
-/**
* enum nl80211_band - Frequency band
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
* @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
@@ -5379,70 +5545,12 @@ enum nl80211_ps_state {
NL80211_PS_DISABLED,
NL80211_PS_ENABLED,
};
-/*
- * @NL80211_ATTR_TID: a TID value (u8 attribute)
- * @NL80211_ATTR_TID_RETRY_CONFIG: Data frame retry count should be
- * applied with the value passed through %NL80211_ATTR_RETRY_LONG
- * and/or %NL80211_ATTR_RETRY_SHORT. This configuration is per-TID,
- * TID is specified with %NL80211_ATTR_TID. If the peer MAC address
- * is passed in %NL80211_ATTR_MAC, the retry configuration is applied
- * to the data frame for the tid to that connected station.
- * This attribute will be useful to notfiy the driver to apply default
- * retry values for the connected station (%NL80211_ATTR_MAC), when the
- * command received without %NL80211_ATTR_RETRY_LONG and/or
- * %NL80211_ATTR_RETRY_SHORT.
- * Station specific retry configuration is valid only for STA's
- * current connection. i.e. the configuration will be reset to default when
- * the station connects back after disconnection/roaming.
- * when user-space does not include %NL80211_ATTR_MAC, this configuration
- * should be treated as per-netdev configuration. This configuration will
- * be cleared when the interface goes down and on the disconnection from a
- * BSS. When retry count has never been configured using this command, the
- * other available radio level retry configuration
- * (%NL80211_ATTR_WIPHY_RETRY_SHORT and %NL80211_ATTR_WIPHY_RETRY_LONG)
- * should be used. Driver supporting this feature should advertise
- * NL80211_EXT_FEATURE_PER_TID_RETRY_CONFIG and supporting per station
- * retry count configuration should advertise
- * NL80211_EXT_FEATURE_PER_STA_RETRY_CONFIG.
- * @NL80211_ATTR_TID_RETRY_SHORT: 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 should be advertised by the driver through
- * max_data_retry_count. when this attribute is not present, the driver
- * would use the default configuration.
- * @NL80211_ATTR_TID_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 should be advertised by the driver through
- * max_data_retry_count. when this attribute is not present, the driver
- * would use the default configuration.
- * @NL80211_ATTR_TID_AMPDU_AGGR_CTRL: Enable/Disable aggregation for the TID
- * specified in %%NL80211_ATTR_TID. Its type is u8, if the peer MAC address
- * is passed in %NL80211_ATTR_MAC, the aggregation configuration is applied
- * to the data frame for the tid to that connected station.
- * Station specific aggregation configuration is valid only for STA's
- * current connection. i.e. the configuration will be reset to default when
- * the station connects back after disconnection/roaming.
- * when user-space does not include %NL80211_ATTR_MAC, this configuration
- * should be treated as per-netdev configuration. This configuration will
- * be cleared when the interface goes down and on the disconnection from a
- * BSS. Driver supporting this feature should advertise
- * NL80211_EXT_FEATURE_PER_STA_AMPDU_AGGR_CTRL and supporting per station
- * aggregation configuration should advertise
- * NL80211_EXT_FEATURE_PER_STA_AMPDU_AGGR_CTRL.
- */
-enum nl80211_attr_tid_config {
- __NL80211_ATTR_TID_INVALID,
- NL80211_ATTR_TID,
- NL80211_ATTR_TID_RETRY_CONFIG,
- NL80211_ATTR_TID_RETRY_SHORT,
- NL80211_ATTR_TID_RETRY_LONG,
- NL80211_ATTR_TID_AMPDU_AGGR_CTRL,
- /* keep last */
- __NL80211_ATTR_TID_AFTER_LAST,
- NL80211_ATTR_TID_MAX = __NL80211_ATTR_TID_AFTER_LAST - 1
+enum nl80211_mpath_change_notify {
+ NL80211_MPATH_METRIC_CHANGE,
+ NL80211_MPATH_BROKEN_NOTIFY,
};
+
/**
* enum nl80211_attr_cqm - connection quality monitor attributes
* @__NL80211_ATTR_CQM_INVALID: invalid
@@ -5487,6 +5595,7 @@ enum nl80211_attr_cqm {
NL80211_ATTR_CQM_TXE_INTVL,
NL80211_ATTR_CQM_BEACON_LOSS_EVENT,
NL80211_ATTR_CQM_RSSI_LEVEL,
+ NL80211_ATTR_CQM_MPATH_CHANGE_EVENT,
/* keep last */
__NL80211_ATTR_CQM_AFTER_LAST,
@@ -5987,9 +6096,9 @@ enum nl80211_iface_limit_attrs {
* different beacon intervals supported by all the interface combinations
* in this group (if not present, all beacon intervals be identical).
* @NL80211_IFACE_COMB_PER_HW_COMB: nested attribute specifying the interface
- * combination for each underlying hardware when multiple hardware are
- * registered under a single wiphy,
- * see &enum nl80211_if_combination_per_hw_comb_attrs.
+ * combination for each underlying hardware when multiple hardware are
+ * registered under a single wiphy,
+ * see &enum nl80211_if_combination_per_hw_comb_attrs.
* @NUM_NL80211_IFACE_COMB: number of attributes
* @MAX_NL80211_IFACE_COMB: highest attribute number
*
@@ -6005,18 +6114,19 @@ enum nl80211_iface_limit_attrs {
*
* numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
* => allows a STA plus three P2P interfaces
- * When describing per-hw combinations, the first possibility can
- * further include the finer capabilities like below
- * hw_chan_idx = 0, numbers = [ #{STA} <= 1, #{AP} <= 1 ],
- * channels = 1, max = 2
- * => allows a STA plus an AP interface on the underlying hw mac
- * advertised at index 0 in wiphy @hw_chans array.
- * hw_chan_idx = 1, numbers = [ #{STA} <= 1, #{AP} <= 2 ],
- * channels = 1, max = 3
- * => allows a STA plus two AP interfaces on the underlying hw mac
- * advertised at index 1 in wiphy @hw_chans array.
*
- * The list of these four possibilities could completely be contained
+ * When describing per-hw combinations, the first possibility can
+ * further include the finer capabilities like below
+ * hw_chan_idx = 0, numbers = [ #{STA} <= 1, #{AP} <= 1 ],
+ * channels = 1, max = 2
+ * => allows a STA plus an AP interface on the underlying hw mac
+ * advertised at index 0 in wiphy @hw_chans array.
+ * hw_chan_idx = 1, numbers = [ #{STA} <= 1, #{AP} <= 2 ],
+ * channels = 1, max = 3
+ * => allows a STA plus two AP interfaces on the underlying hw mac
+ * advertised at index 1 in wiphy @hw_chans array.
+ *
+ * The list of these five possibilities could completely be contained
* within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate
* that any of these groups must match.
*
@@ -6036,6 +6146,7 @@ enum nl80211_if_combination_attrs {
NL80211_IFACE_COMB_RADAR_DETECT_REGIONS,
NL80211_IFACE_COMB_BI_MIN_GCD,
NL80211_IFACE_COMB_PER_HW_COMB,
+
/* keep last */
NUM_NL80211_IFACE_COMB,
MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1
@@ -6047,16 +6158,16 @@ enum nl80211_if_combination_attrs {
*
* @NL80211_IFACE_COMB_PER_HW_COMB_UNSPEC: (reserved)
* @NL80211_IFACE_COMB_PER_HW_COMB_HW_IDX: u8 attribute specifying the index
- * to the wiphy @hw_chans list for which the iface combination is being
- * described.
+ * to the wiphy @hw_chans list for which the iface combination is being
+ * described.
* @NL80211_IFACE_COMB_PER_HW_COMB_LIMITS: nested attribute containing the
- * limits for the given interface types, see
- * &enum nl80211_iface_limit_attrs.
+ * limits for the given interface types, see
+ * &enum nl80211_iface_limit_attrs.
* @NL80211_IFACE_COMB_PER_HW_COMB_MAXIMUM: u32 attribute giving the maximum
- * number of interfaces that can be created in this group. This number
- * does not apply to the interfaces purely managed in software.
+ * number of interfaces that can be created in this group. This number
+ * does not apply to the interfaces purely managed in software.
* @NL80211_IFACE_COMB_PER_HW_COMB_NUM_CHANNELS: u32 attribute specifying the
- * number of different channels that can be used in this group.
+ * number of different channels that can be used in this group.
* @NUM_NL80211_IFACE_COMB_PER_HW_COMB: number of attributes
* @MAX_NL80211_IFACE_COMB_PER_HW_COMB: highest attribute number
*/
@@ -6126,6 +6237,7 @@ enum plink_actions {
#define NL80211_KEK_LEN 16
#define NL80211_KCK_EXT_LEN 24
#define NL80211_KEK_EXT_LEN 32
+#define NL80211_KCK_EXT_LEN_32 32
#define NL80211_REPLAY_CTR_LEN 8
/**
@@ -6551,8 +6663,23 @@ enum nl80211_feature_flags {
* might apply, e.g. no scans in progress, no offchannel operations
* in progress, and no active connections.
*
+ * @NL80211_EXT_FEATURE_PUNCT: Driver supports preamble puncturing in AP mode.
+ *
+ * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables
+ * authentication, data encryption and message integrity.
+ *
+ * @NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA: Device supports randomized TA
+ * in authentication and deauthentication frames sent to unassociated peer
+ * using @NL80211_CMD_FRAME.
+ *
* @NL80211_EXT_FEATURE_WIDE_BAND_SCAN: Driver/device supports wide band scan
- * on a frequency along with its corresponding phymode (40Mhz, 80Mhz)
+ * on a frequency along with its corresponding phymode (40Mhz, 80Mhz)
+ *
+ * @NL80211_EXT_FEATURE_BEACON_RATE_EHT: Driver supports beacon rate
+ * configuration (AP/mesh) with EHT rates.
+ *
+ * @NL80211_EXT_FEATURE_DEVICE_BW: Driver/device supports different parameters
+ * for device bandwidth compared to the operating bandwidth.
*
* @NUM_NL80211_EXT_FEATURES: number of extended features.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -6622,8 +6749,13 @@ enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
NL80211_EXT_FEATURE_WIDE_BAND_SCAN,
NL80211_EXT_FEATURE_RADAR_BACKGROUND,
- NL80211_EXT_FEATURE_STA_MGMT_RTS_CTS,
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
+ NL80211_EXT_FEATURE_PUNCT,
+ NL80211_EXT_FEATURE_SECURE_NAN,
+ NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA,
+ NL80211_EXT_FEATURE_STA_MGMT_RTS_CTS,
+ NL80211_EXT_FEATURE_BEACON_RATE_EHT,
+ NL80211_EXT_FEATURE_DEVICE_BW,
/* add new features before the definition below */
NUM_NL80211_EXT_FEATURES,
@@ -6738,8 +6870,18 @@ enum nl80211_timeout_reason {
* @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with
* %NL80211_ATTR_SCAN_FREQ_KHZ. This also means
* %NL80211_ATTR_SCAN_FREQUENCIES will not be included.
- * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by
- * 2.4/5 GHz APs
+ * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for collocated APs reported by
+ * 2.4/5 GHz APs. When the flag is set, the scan logic will use the
+ * information from the RNR element found in beacons/probe responses
+ * received on the 2.4/5 GHz channels to actively scan only the 6GHz
+ * channels on which APs are expected to be found. Note that when not set,
+ * the scan logic would scan all 6GHz channels, but since transmission of
+ * probe requests on non PSC channels is limited, it is highly likely that
+ * these channels would passively be scanned. Also note that when the flag
+ * is set, in addition to the colocated APs, PSC channels would also be
+ * scanned if the user space has asked for it.
+ * @NL80211_SCAN_FLAG_WIDE_BAND_SCAN: This flag intends the driver to perform
+ * wide band scan only if the driver supports it.
*/
enum nl80211_scan_flags {
NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
@@ -6757,6 +6899,7 @@ enum nl80211_scan_flags {
NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13,
NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14,
+ NL80211_SCAN_FLAG_WIDE_BAND_SCAN = 1<<15,
};
/**
@@ -7702,6 +7845,8 @@ enum nl80211_obss_pd_attributes {
* @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color.
* @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled.
* @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used..
+ * @NL80211_HE_BSS_COLOR_ATTR_COLLISION_DETECTION_DISABLED: is BSS
+ * color collision detection disabled.
*
* @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal
* @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute.
@@ -7712,6 +7857,7 @@ enum nl80211_bss_color_attributes {
NL80211_HE_BSS_COLOR_ATTR_COLOR,
NL80211_HE_BSS_COLOR_ATTR_DISABLED,
NL80211_HE_BSS_COLOR_ATTR_PARTIAL,
+ NL80211_HE_BSS_COLOR_ATTR_COLLISION_DETECTION_DISABLED,
/* keep last */
__NL80211_HE_BSS_COLOR_ATTR_LAST,
@@ -7952,6 +8098,11 @@ enum nl80211_sar_specs_attrs {
* Setting this flag is permitted only if the driver advertises EMA support
* by setting wiphy->ema_max_profile_periodicity to non-zero.
*
+ * @NL80211_MBSSID_CONFIG_ATTR_TX_LINK_ID: Mandatory parameter for a non-transmitted profile
+ * which provides the interface index (u32) of the transmitted profile which
+ * is an MLD. The link id must be valid in the wdev of given Transmitting interface
+ * index.
+ *
* @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
* @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
*/
@@ -7963,6 +8114,7 @@ enum nl80211_mbssid_config_attributes {
NL80211_MBSSID_CONFIG_ATTR_INDEX,
NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
NL80211_MBSSID_CONFIG_ATTR_EMA,
+ NL80211_MBSSID_CONFIG_ATTR_TX_LINK_ID,
/* keep last */
__NL80211_MBSSID_CONFIG_ATTR_LAST,
@@ -7986,8 +8138,35 @@ enum nl80211_ap_settings_flags {
};
/**
+ * enum nl80211_ru_punct_supp_bw - Bandwidths supporting preamble puncturing
+ *
+ * @NL80211_RU_PUNCT_NOT_SUPP: preamble puncturing is not supported
+ * @NL80211_RU_PUNCT_SUPP_BW_80: puncturing supported within channels of at
+ * least 80 MHz bandwidth
+ * @NL80211_RU_PUNCT_SUPP_BW_160: puncturing supported within channels of at
+ * least 160 MHz bandwidth
+ * @NL80211_RU_PUNCT_SUPP_BW_320: puncturing supported within 320 MHz.
+ */
+enum nl80211_ru_punct_supp_bw {
+ NL80211_RU_PUNCT_NOT_SUPP,
+ NL80211_RU_PUNCT_SUPP_BW_80,
+ NL80211_RU_PUNCT_SUPP_BW_160,
+ NL80211_RU_PUNCT_SUPP_BW_320,
+};
+
+/**
+ * enum nl80211_beacon_tx_mode - Beacon Tx Mode enum.
+ * Used to configure beacon staggered mode or beacon burst mode.
+ */
+enum nl80211_beacon_tx_mode {
+ NL80211_BEACON_STAGGERED_MODE = 1,
+ NL80211_BEACON_BURST_MODE = 2,
+};
+
+/**
* nl80211_multi_hw_mac_attrs - multi-hw mac attributes
*
+ *
* @NL80211_MULTI_HW_MAC_ATTR_INVALID: invalid
* @NL80211_MULTI_HW_MAC_ATTR_IDX: (u8) array index in wiphy @hw_chans to refer an
* underlying hw mac for which the supported channel list is advertised.
@@ -7997,15 +8176,14 @@ enum nl80211_ap_settings_flags {
* @NL80211_MULTI_HW_MAC_ATTR_MAX: maximum multi-hw mac attribute
*/
enum nl80211_multi_hw_mac_attrs {
- __NL80211_MULTI_HW_MAC_ATTR_INVALID,
+ __NL80211_MULTI_HW_MAC_ATTR_INVALID,
- NL80211_MULTI_HW_MAC_ATTR_IDX,
- NL80211_MULTI_HW_MAC_ATTR_CHAN_LIST,
+ NL80211_MULTI_HW_MAC_ATTR_IDX,
+ NL80211_MULTI_HW_MAC_ATTR_CHAN_LIST,
- /* keep last */
- __NL80211_MULTI_HW_MAC_ATTR_LAST,
- NL80211_MULTI_HW_MAC_ATTR_MAX =
- __NL80211_MULTI_HW_MAC_ATTR_LAST - 1
+ /* keep last */
+ __NL80211_MULTI_HW_MAC_ATTR_LAST,
+ NL80211_MULTI_HW_MAC_ATTR_MAX = __NL80211_MULTI_HW_MAC_ATTR_LAST - 1
};
/**
@@ -8017,13 +8195,171 @@ enum nl80211_multi_hw_mac_attrs {
* @NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_MAX: maximum channel attribute
*/
enum nl80211_multi_hw_mac_chan_list_attrs {
- __NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_INVALID,
+ __NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_INVALID,
+
+ NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_FREQ,
+
+ /* keep last */
+ __NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_LAST,
+ NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_MAX =
+ __NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_LAST - 1
+};
+
+/**
+ * nl80211_cu_attrs - critical update attributes
+ *
+ *
+ * @__NL80211_CU_ATTR_INVALID: invalid
+ * @NL80211_CU_ATTR_MLD_LIST: nested attribute specifying list of mld,
+ * see &enum nl80211_mld_list_cu_attrs
+ * @__NL80211_CU_ATTR_LAST: internal use
+ * @NL80211_CU_ATTR_MAX: maximum critical update attribute
+ */
+enum nl80211_cu_attrs {
+ __NL80211_CU_ATTR_INVALID,
+
+ NL80211_CU_ATTR_MLD_LIST,
+
+ /* keep last */
+ __NL80211_CU_ATTR_LAST,
+ NL80211_CU_ATTR_MAX = __NL80211_CU_ATTR_LAST - 1
+};
- NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_FREQ,
+/**
+ * nl80211_cu_mld_attrs - per mld critical update attributes
+ *
+ * @__NL80211_CU_MLD_ATTR_INVALID: invalid
+ * @NL80211_CU_MLD_ATTR_IFINDEX: network interface index of the device to operate on
+ * @NL80211_CU_MLD_ATTR_LINK_LIST: nested attribute specifying list of links
+ * on each mld, see &enum nl80211_cu_mld_link_attrs
+ * @__NL80211_CU_MLD_ATTR_LAST: internal use
+ * @NL80211_CU_MLD_ATTR_MAX: maximum per mld critical update attribute
+ */
+enum nl80211_cu_mld_attrs {
+ __NL80211_CU_MLD_ATTR_INVALID,
+
+ NL80211_CU_MLD_ATTR_IFINDEX,
+ NL80211_CU_MLD_ATTR_LINK_LIST,
/* keep last */
- __NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_LAST,
- NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_MAX =
- __NL80211_MULTI_HW_MAC_CHAN_LIST_ATTR_LAST - 1
+ __NL80211_CU_MLD_ATTR_LAST,
+ NL80211_CU_MLD_ATTR_MAX = __NL80211_CU_MLD_ATTR_LAST - 1
};
+
+/**
+ * nl80211_cu_mld_link_attrs - per link critical update attributes
+ *
+ * @__NL80211_CU_MLD_LINK_ATTR_INVALID: invalid
+ * @NL80211_CU_MLD_LINK_ATTR_ID: Link Id
+ * @NL80211_CU_MLD_LINK_ATTR_CRITICAL_FLAG: critical flag value
+ * @NL80211_CU_MLD_LINK_ATTR_BPCC: BSS parameter change count value
+ * @NL80211_CU_MLD_LINK_ATTR_SWITCH_COUNT: CSA/CCA switch count
+ * @__NL80211_CU_MLD_LINK_ATTR_LAST: internal use
+ * @NL80211_CU_MLD_LINK ATTR_MAX: maximum per link critical update attribute
+ */
+enum nl80211_cu_mld_link_attrs {
+ __NL80211_CU_MLD_LINK_ATTR_INVALID,
+
+ NL80211_CU_MLD_LINK_ATTR_ID,
+ NL80211_CU_MLD_LINK_ATTR_CRITICAL_FLAG,
+ NL80211_CU_MLD_LINK_ATTR_BPCC,
+ NL80211_CU_MLD_LINK_ATTR_SWITCH_COUNT,
+
+ /* keep last */
+ __NL80211_CU_MLD_LINK_ATTR_LAST,
+ NL80211_CU_MLD_LINK_ATTR_MAX = __NL80211_CU_MLD_LINK_ATTR_LAST - 1
+};
+
+/**
+ * enum nl80211_set_cu_attrs - set critical update attributes
+ *
+ * @NL80211_ATTR_SET_CU_ELEM_ADDED_BMAP: Bitmap of interfaces to which critical update
+ * happened due to addition of new beacon element. Bit 0 represents the (TX) interface
+ * in which the attribute is received. Other bits represents the MBSSID index of NON-TX
+ * BSSes in case this attribute is carried as part of set/update beacon for an
+ * MBSSID group's TX VAP.
+ *
+ * @NL80211_ATTR_SET_CU_ELEM_MODIFIED_BMAP: Bitmap of interfaces to which critical update
+ * happened due to modification of existing beacon element.
+ *
+ * @__NL80211_CU_MLD_LINK_ATTR_LAST : internal use
+ * @NL80211_SET_CU_ATTR_MAX : maximum set critical update attributes
+ *
+ */
+enum nl80211_set_cu_attrs {
+ __NL80211_SET_CU_ATTR_INVALID,
+
+ NL80211_SET_CU_ATTR_ELEM_ADDED_BMAP,
+ NL80211_SET_CU_ATTR_ELEM_MODIFIED_BMAP,
+
+ /* keep last */
+ __NL80211_SET_CU_ATTR_LAST,
+ NL80211_SET_CU_ATTR_MAX = __NL80211_SET_CU_ATTR_LAST - 1
+};
+
+/**
+ * enum nl80211_interference_type -
+ *
+ * @NL80211_CW_INTERFERENCE_DETECTED : Continous Wave Interference Detected.
+ * @NL80211_AWGN_INTERFERENCE_DETECTED : AWGN Interference Detected.
+*/
+enum nl80211_interference_type {
+ NL80211_INTERFERENCE_TYPE_INVALID,
+ NL80211_INTERFERENCE_TYPE_CW,
+ NL80211_INTERFERENCE_TYPE_AWGN,
+
+ NL80211_INTERFERENCE_TYPE_LAST,
+ NL80211_INTERFERENCE_TYPE_MAX = NL80211_INTERFERENCE_TYPE_LAST - 1,
+};
+
+/**
+ * enum nl80211_wiphy_radio_attrs - wiphy radio attributes
+ *
+ * @__NL80211_WIPHY_RADIO_ATTR_INVALID: Invalid
+ *
+ * @NL80211_WIPHY_RADIO_ATTR_INDEX: Index of this radio (u32)
+ * @NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE: Frequency range supported by this
+ * radio. Attribute may be present multiple times.
+ * @NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION: Supported interface
+ * combination for this radio. Attribute may be present multiple times
+ * and contains attributes defined in &enum nl80211_if_combination_attrs.
+ *
+ * @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal
+ * @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute
+ */
+enum nl80211_wiphy_radio_attrs {
+ __NL80211_WIPHY_RADIO_ATTR_INVALID,
+
+ NL80211_WIPHY_RADIO_ATTR_INDEX,
+ NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE,
+ NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION,
+
+ /* keep last */
+ __NL80211_WIPHY_RADIO_ATTR_LAST,
+ NL80211_WIPHY_RADIO_ATTR_MAX = __NL80211_WIPHY_RADIO_ATTR_LAST - 1,
+};
+
+/**
+ * enum nl80211_wiphy_radio_freq_range - wiphy radio frequency range
+ *
+ * @__NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID: Invalid
+ *
+ * @NL80211_WIPHY_RADIO_FREQ_ATTR_START: Frequency range start (u32).
+ * The unit is kHz.
+ * @NL80211_WIPHY_RADIO_FREQ_ATTR_END: Frequency range end (u32).
+ * The unit is kHz.
+ *
+ * @__NL80211_WIPHY_RADIO_FREQ_ATTR_LAST: Internal
+ * @NL80211_WIPHY_RADIO_FREQ_ATTR_MAX: Highest attribute
+ */
+enum nl80211_wiphy_radio_freq_range {
+ __NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID,
+
+ NL80211_WIPHY_RADIO_FREQ_ATTR_START,
+ NL80211_WIPHY_RADIO_FREQ_ATTR_END,
+
+ __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST,
+ NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1,
+};
+
#endif /* __LINUX_NL80211_H */