diff --git a/feeds/qca-wifi-7/iw/patches/zzz-sync-nl80211.h.patch b/feeds/qca-wifi-7/iw/patches/zzz-sync-nl80211.h.patch new file mode 100644 index 000000000..f6ad6e58f --- /dev/null +++ b/feeds/qca-wifi-7/iw/patches/zzz-sync-nl80211.h.patch @@ -0,0 +1,1007 @@ +--- a/nl80211.h ++++ b/nl80211.h +@@ -11,7 +11,7 @@ + * Copyright 2008 Jouni Malinen + * Copyright 2008 Colin McCabe + * 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 ++#include + + #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 */