]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
update nl80211.h
authorJohannes Berg <johannes.berg@intel.com>
Thu, 21 Dec 2023 11:47:01 +0000 (12:47 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 21 Dec 2023 11:47:09 +0000 (12:47 +0100)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
info.c
nl80211.h

diff --git a/info.c b/info.c
index 4c5f4637e1d6af316081fb10c6e3b7e1921e849d..317e7a3be6168968a6b6106b5eef5f309f7ccd1c 100644 (file)
--- a/info.c
+++ b/info.c
@@ -170,6 +170,8 @@ static void ext_feat_print(enum nl80211_ext_feature_index idx)
        ext_feat_case(PUNCT, "preamble puncturing in AP mode");
        ext_feat_case(SECURE_NAN, "secure NAN support");
        ext_feat_case(AUTH_AND_DEAUTH_RANDOM_TA, "random auth/deauth transmitter address");
+       ext_feat_case(OWE_OFFLOAD, "OWE DH element handling offload (client)");
+       ext_feat_case(OWE_OFFLOAD_AP, "OWE DH element handling offload (AP)");
        }
 }
 
index 88eb85c63029b311351062709fbad385085f9382..a682b54bd3badea415a234dec76d53ccd7ea1c54 100644 (file)
--- a/nl80211.h
+++ b/nl80211.h
@@ -72,7 +72,7 @@
  * For drivers supporting TDLS with external setup (WIPHY_FLAG_SUPPORTS_TDLS
  * and WIPHY_FLAG_TDLS_EXTERNAL_SETUP), the station lifetime is as follows:
  *  - a setup station entry is added, not yet authorized, without any rate
- *    or capability information, this just exists to avoid race conditions
+ *    or capability information; this just exists to avoid race conditions
  *  - when the TDLS setup is done, a single NL80211_CMD_SET_STATION is valid
  *    to add rate and capability information to the station and at the same
  *    time mark it authorized.
@@ -87,7 +87,7 @@
  * DOC: Frame transmission/registration support
  *
  * Frame transmission and registration support exists to allow userspace
- * management entities such as wpa_supplicant react to management frames
+ * management entities such as wpa_supplicant to react to management frames
  * that are not being handled by the kernel. This includes, for example,
  * certain classes of action frames that cannot be handled in the kernel
  * for various reasons.
  *
  * Frame transmission allows userspace to send for example the required
  * responses to action frames. It is subject to some sanity checking,
- * but many frames can be transmitted. When a frame was transmitted, its
+ * but many frames can be transmitted. When a frame is transmitted, its
  * status is indicated to the sending socket.
  *
  * For more technical details, see the corresponding command descriptions
 /**
  * DOC: Virtual interface / concurrency capabilities
  *
- * Some devices are able to operate with virtual MACs, they can have
+ * Some devices are able to operate with virtual MACs; they can have
  * more than one virtual interface. The capability handling for this
  * is a bit complex though, as there may be a number of restrictions
  * on the types of concurrency that are supported.
  * Once concurrency is desired, more attributes must be observed:
  * To start with, since some interface types are purely managed in
  * software, like the AP-VLAN type in mac80211 for example, there's
- * an additional list of these, they can be added at any time and
+ * an additional list of these; they can be added at any time and
  * are only restricted by some semantic restrictions (e.g. AP-VLAN
  * cannot be added without a corresponding AP interface). This list
  * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute.
  * Packet coalesce feature helps to reduce number of received interrupts
  * to host by buffering these packets in firmware/hardware for some
  * predefined time. Received interrupt will be generated when one of the
- * following events occur.
+ * following events occurs.
  * a) Expiration of hardware timer whose expiration time is set to maximum
  * coalescing delay of matching coalesce rule.
- * b) Coalescing buffer in hardware reaches it's limit.
+ * b) Coalescing buffer in hardware reaches its limit.
  * c) Packet doesn't match any of the configured coalesce rules.
  *
  * User needs to configure following parameters for creating a coalesce
  * rule.
  * a) Maximum coalescing delay
  * b) List of packet patterns which needs to be matched
- * c) Condition for coalescence. pattern 'match' or 'no match'
+ * c) Condition for coalescence: pattern 'match' or 'no match'
  * Multiple such rules can be created.
  */
 
 /**
  * DOC: FILS shared key authentication offload
  *
- * FILS shared key authentication offload can be advertized by drivers by
+ * FILS shared key authentication offload can be advertised by drivers by
  * setting @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD flag. The drivers that support
  * FILS shared key authentication offload should be able to construct the
  * authentication and association frames for FILS shared key authentication and
  * The PMKSA can be maintained in userspace persistently so that it can be used
  * later after reboots or wifi turn off/on also.
  *
- * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertized by a FILS
+ * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertised by a FILS
  * capable AP supporting PMK caching. It specifies the scope within which the
  * PMKSAs are cached in an ESS. %NL80211_CMD_SET_PMKSA and
  * %NL80211_CMD_DEL_PMKSA are enhanced to allow support for PMKSA caching based
  * If the configuration needs to be applied for specific peer then the MAC
  * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
  * configuration will be applied for all the connected peers in the vif except
- * any peers that have peer specific configuration for the TID by default; if
- * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
+ * any peers that have peer-specific configuration for the TID by default; if
+ * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer-specific values
  * will be overwritten.
  *
- * All this configuration is valid only for STA's current connection
- * i.e. the configuration will be reset to default when the STA connects back
+ * All this configuration is valid only for STA's current connection,
+ * i.e., the configuration will be reset to default when the STA connects back
  * after disconnection/roaming, and this configuration will be cleared when
  * the interface goes down.
  */
 /**
  * DOC: Multi-Link Operation
  *
- * In Multi-Link Operation, a connection between to MLDs utilizes multiple
+ * In Multi-Link Operation, a connection between two MLDs utilizes multiple
  * links. To use this in nl80211, various commands and responses now need
  * to or will include the new %NL80211_ATTR_MLO_LINKS attribute.
  * Additionally, various commands that need to operate on a specific link
  * use %NL80211_CMD_START_AP or similar functions.
  */
 
+/**
+ * DOC: OWE DH IE handling offload
+ *
+ * By setting @NL80211_EXT_FEATURE_OWE_OFFLOAD flag, drivers can indicate
+ * kernel/application space to avoid DH IE handling. When this flag is
+ * advertised, the driver/device will take care of DH IE inclusion and
+ * processing of peer DH IE to generate PMK.
+ */
+
 /**
  * enum nl80211_commands - supported nl80211 commands
  *
  *     %NL80211_ATTR_SCHED_SCAN_PLANS. If %NL80211_ATTR_SCHED_SCAN_PLANS is
  *     not specified and only %NL80211_ATTR_SCHED_SCAN_INTERVAL is specified,
  *     scheduled scan will run in an infinite loop with the specified interval.
- *     These attributes are mutually exculsive,
+ *     These attributes are mutually exclusive,
  *     i.e. NL80211_ATTR_SCHED_SCAN_INTERVAL must not be passed if
  *     NL80211_ATTR_SCHED_SCAN_PLANS is defined.
  *     If for some reason scheduled scan is aborted by the driver, all scan
  *     %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface
  *     is brought down while a scheduled scan was running.
  *
- * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation
+ * @NL80211_CMD_GET_SURVEY: get survey results, e.g. channel occupation
  *      or noise level
  * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
  *     NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
  *     using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID,
  *     %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS
  *     authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier
- *     advertized by a FILS capable AP identifying the scope of PMKSA in an
+ *     advertised by a FILS capable AP identifying the scope of PMKSA in an
  *     ESS.
  * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
  *     (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID,
  *     %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS
- *     authentication.
+ *     authentication. Additionally in case of SAE offload and OWE offloads
+ *     PMKSA entry can be deleted using %NL80211_ATTR_SSID.
  * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries.
  *
  * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
  *     BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
  *     the SSID (mainly for association, but is included in authentication
  *     request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ +
- *     %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequence of the
+ *     %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequency of the
  *     channel in MHz. %NL80211_ATTR_AUTH_TYPE is used to specify the
  *     authentication type. %NL80211_ATTR_IE is used to define IEs
  *     (VendorSpecificInfo, but also including RSN IE and FT IEs) to be added
  *     reached.
  * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ
  *     and the attributes determining channel width) the given interface
- *     (identifed by %NL80211_ATTR_IFINDEX) shall operate on.
+ *     (identified by %NL80211_ATTR_IFINDEX) shall operate on.
  *     In case multiple channels are supported by the device, the mechanism
  *     with which it switches channels is implementation-defined.
  *     When a monitor interface is given, it can only switch channel while
  *     inform userspace of the new replay counter.
  *
  * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace
- *     of PMKSA caching dandidates.
+ *     of PMKSA caching candidates.
  *
  * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
  *     In addition, this can be used as an event to request userspace to take
  *
  * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface
  *     by sending a null data frame to it and reporting when the frame is
- *     acknowleged. This is used to allow timing out inactive clients. Uses
+ *     acknowledged. This is used to allow timing out inactive clients. Uses
  *     %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a
  *     direct reply with an %NL80211_ATTR_COOKIE that is later used to match
  *     up the event with the request. The event includes the same data and
  * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
  *     configured PMK for the authenticator address identified by
  *     %NL80211_ATTR_MAC.
- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
- *     completed successfully. Drivers that support 4 way handshake offload
- *     should send this event after indicating 802.1X FT assocation with
- *     %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
- *     should be indicated instead.
+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates port is authorized and
+ *     open for regular data traffic. For STA/P2P-client, this event is sent
+ *     with AP MAC address and for AP/P2P-GO, the event carries the STA/P2P-
+ *     client MAC address.
+ *     Drivers that support 4 way handshake offload should send this event for
+ *     STA/P2P-client after successful 4-way HS or after 802.1X FT following
+ *     NL80211_CMD_CONNECT or NL80211_CMD_ROAM. Drivers using AP/P2P-GO 4-way
+ *     handshake offload should send this event on successful completion of
+ *     4-way handshake with the peer (STA/P2P-client).
  * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
  *     and RX notification.  This command is used both as a request to transmit
  *     a control port frame and as a notification that a control port frame
  *     Multi-Link reconfiguration. %NL80211_ATTR_MLO_LINKS is used to provide
  *     information about the removed STA MLD setup links.
  *
+ * @NL80211_CMD_SET_TID_TO_LINK_MAPPING: Set the TID to Link Mapping for a
+ *      non-AP MLD station. The %NL80211_ATTR_MLO_TTLM_DLINK and
+ *      %NL80211_ATTR_MLO_TTLM_ULINK attributes are used to specify the
+ *      TID to Link mapping for downlink/uplink traffic.
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1569,6 +1588,8 @@ enum nl80211_commands {
 
        NL80211_CMD_LINKS_REMOVED,
 
+       NL80211_CMD_SET_TID_TO_LINK_MAPPING,
+
        /* add new commands above here */
 
        /* used to define NL80211_CMD_MAX below */
@@ -1826,7 +1847,7 @@ enum nl80211_commands {
  *     using %CMD_CONTROL_PORT_FRAME.  If control port routing over NL80211 is
  *     to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
  *     flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
- *     frames are not forwared over the control port.
+ *     frames are not forwarded over the control port.
  *
  * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
  *     We recommend using nested, driver-specific attributes within this.
@@ -1963,10 +1984,10 @@ enum nl80211_commands {
  *     bit. Depending on which antennas are selected in the bitmap, 802.11n
  *     drivers can derive which chainmasks to use (if all antennas belonging to
  *     a particular chain are disabled this chain should be disabled) and if
- *     a chain has diversity antennas wether diversity should be used or not.
+ *     a chain has diversity antennas whether diversity should be used or not.
  *     HT capabilities (STBC, TX Beamforming, Antenna selection) can be
  *     derived from the available chains after applying the antenna mask.
- *     Non-802.11n drivers can derive wether to use diversity or not.
+ *     Non-802.11n drivers can derive whether to use diversity or not.
  *     Drivers may reject configurations or RX/TX mask combinations they cannot
  *     support by returning -EINVAL.
  *
@@ -2536,7 +2557,7 @@ enum nl80211_commands {
  *     from successful FILS authentication and is used with
  *     %NL80211_CMD_CONNECT.
  *
- * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertized by a FILS AP
+ * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertised by a FILS AP
  *     identifying the scope of PMKSAs. This is used with
  *     @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA.
  *
@@ -2690,11 +2711,13 @@ enum nl80211_commands {
  *
  * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
  *     discovery. It is a nested attribute, see
- *     &enum nl80211_fils_discovery_attributes.
+ *     &enum nl80211_fils_discovery_attributes. Userspace should pass an empty
+ *     nested attribute to disable this feature and delete the templates.
  *
  * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
  *     unsolicited broadcast probe response. It is a nested attribute, see
- *     &enum nl80211_unsol_bcast_probe_resp_attributes.
+ *     &enum nl80211_unsol_bcast_probe_resp_attributes. Userspace should pass an empty
+ *     nested attribute to disable this feature and delete the templates.
  *
  * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
  *     association request when used with NL80211_CMD_NEW_STATION)
@@ -2815,6 +2838,19 @@ enum nl80211_commands {
  * @NL80211_ATTR_MLO_LINK_DISABLED: Flag attribute indicating that the link is
  *     disabled.
  *
+ * @NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA: Include BSS usage data, i.e.
+ *     include BSSes that can only be used in restricted scenarios and/or
+ *     cannot be used at all.
+ *
+ * @NL80211_ATTR_MLO_TTLM_DLINK: Binary attribute specifying the downlink TID to
+ *      link mapping. The length is 8 * sizeof(u16). For each TID the link
+ *      mapping is as defined in section 9.4.2.314 (TID-To-Link Mapping element)
+ *      in Draft P802.11be_D4.0.
+ * @NL80211_ATTR_MLO_TTLM_ULINK: Binary attribute specifying the uplink TID to
+ *      link mapping. The length is 8 * sizeof(u16). For each TID the link
+ *      mapping is as defined in section 9.4.2.314 (TID-To-Link Mapping element)
+ *      in Draft P802.11be_D4.0.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3353,6 +3389,11 @@ enum nl80211_attrs {
 
        NL80211_ATTR_MLO_LINK_DISABLED,
 
+       NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA,
+
+       NL80211_ATTR_MLO_TTLM_DLINK,
+       NL80211_ATTR_MLO_TTLM_ULINK,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -4159,7 +4200,7 @@ enum nl80211_wmm_rule {
  *     (100 * dBm).
  * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS
  *     (enum nl80211_dfs_state)
- * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long
+ * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in milliseconds for how long
  *     this channel is in this DFS state.
  * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this
  *     channel as the control channel
@@ -4213,6 +4254,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) that
+ *     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
@@ -4251,6 +4294,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,
@@ -4351,6 +4395,8 @@ enum nl80211_reg_type {
  *     a given frequency range. The value is in mBm (100 * dBm).
  * @NL80211_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds.
  *     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_REG_RULE_ATTR_MAX: highest regulatory rule attribute number
  *     currently defined
  * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use
@@ -4368,6 +4414,8 @@ enum nl80211_reg_rule_attr {
 
        NL80211_ATTR_DFS_CAC_TIME,
 
+       NL80211_ATTR_POWER_RULE_PSD,
+
        /* keep last */
        __NL80211_REG_RULE_ATTR_AFTER_LAST,
        NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
@@ -4451,6 +4499,7 @@ enum nl80211_sched_scan_match_attr {
  * @NL80211_RRF_NO_HE: HE operation not allowed
  * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
  * @NL80211_RRF_NO_EHT: EHT operation not allowed
+ * @NL80211_RRF_PSD: Ruleset has power spectral density value
  */
 enum nl80211_reg_rule_flags {
        NL80211_RRF_NO_OFDM             = 1<<0,
@@ -4471,6 +4520,7 @@ enum nl80211_reg_rule_flags {
        NL80211_RRF_NO_HE               = 1<<17,
        NL80211_RRF_NO_320MHZ           = 1<<18,
        NL80211_RRF_NO_EHT              = 1<<19,
+       NL80211_RRF_PSD                 = 1<<20,
 };
 
 #define NL80211_RRF_PASSIVE_SCAN       NL80211_RRF_NO_IR
@@ -5007,6 +5057,30 @@ enum nl80211_bss_scan_width {
        NL80211_BSS_CHAN_WIDTH_2,
 };
 
+/**
+ * enum nl80211_bss_use_for - bitmap indicating possible BSS use
+ * @NL80211_BSS_USE_FOR_NORMAL: Use this BSS for normal "connection",
+ *     including IBSS/MBSS depending on the type.
+ * @NL80211_BSS_USE_FOR_MLD_LINK: This BSS can be used as a link in an
+ *     MLO connection. Note that for an MLO connection, all links including
+ *     the assoc link must have this flag set, and the assoc link must
+ *     additionally have %NL80211_BSS_USE_FOR_NORMAL set.
+ */
+enum nl80211_bss_use_for {
+       NL80211_BSS_USE_FOR_NORMAL = 1 << 0,
+       NL80211_BSS_USE_FOR_MLD_LINK = 1 << 1,
+};
+
+/**
+ * enum nl80211_bss_cannot_use_reasons - reason(s) connection to a
+ *     BSS isn't possible
+ * @NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY: NSTR nonprimary links aren't
+ *     supported by the device, and this BSS entry represents one.
+ */
+enum nl80211_bss_cannot_use_reasons {
+       NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY  = 1 << 0,
+};
+
 /**
  * enum nl80211_bss - netlink attributes for a BSS
  *
@@ -5038,7 +5112,7 @@ enum nl80211_bss_scan_width {
  *     elements from a Beacon frame (bin); not present if no Beacon frame has
  *     yet been received
  * @NL80211_BSS_CHAN_WIDTH: channel width of the control channel
- *     (u32, enum nl80211_bss_scan_width)
+ *     (u32, enum nl80211_bss_scan_width) - No longer used!
  * @NL80211_BSS_BEACON_TSF: TSF of the last received beacon (u64)
  *     (not present if no beacon frame has been received yet)
  * @NL80211_BSS_PRESP_DATA: the data in @NL80211_BSS_INFORMATION_ELEMENTS and
@@ -5059,6 +5133,14 @@ enum nl80211_bss_scan_width {
  * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
  * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
  * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
+ * @NL80211_BSS_USE_FOR: u32 bitmap attribute indicating what the BSS can be
+ *     used for, see &enum nl80211_bss_use_for.
+ * @NL80211_BSS_CANNOT_USE_REASONS: Indicates the reason that this BSS cannot
+ *     be used for all or some of the possible uses by the device reporting it,
+ *     even though its presence was detected.
+ *     This is a u64 attribute containing a bitmap of values from
+ *     &enum nl80211_cannot_use_reasons, note that the attribute may be missing
+ *     if no reasons are specified.
  * @__NL80211_BSS_AFTER_LAST: internal
  * @NL80211_BSS_MAX: highest BSS attribute
  */
@@ -5086,6 +5168,8 @@ enum nl80211_bss {
        NL80211_BSS_FREQUENCY_OFFSET,
        NL80211_BSS_MLO_LINK_ID,
        NL80211_BSS_MLD_ADDR,
+       NL80211_BSS_USE_FOR,
+       NL80211_BSS_CANNOT_USE_REASONS,
 
        /* keep last */
        __NL80211_BSS_AFTER_LAST,
@@ -5434,7 +5518,7 @@ enum nl80211_tx_rate_setting {
  *     (%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 set indicates
+ * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribute, if set indicates
  *     that the new configuration overrides all previous peer
  *     configurations, otherwise previous peer specific configurations
  *     should be left untouched.
@@ -5817,7 +5901,7 @@ enum nl80211_attr_coalesce_rule {
 
 /**
  * enum nl80211_coalesce_condition - coalesce rule conditions
- * @NL80211_COALESCE_CONDITION_MATCH: coalaesce Rx packets when patterns
+ * @NL80211_COALESCE_CONDITION_MATCH: coalesce Rx packets when patterns
  *     in a rule are matched.
  * @NL80211_COALESCE_CONDITION_NO_MATCH: coalesce Rx packets when patterns
  *     in a rule are not matched.
@@ -5916,7 +6000,7 @@ enum nl80211_if_combination_attrs {
  * enum nl80211_plink_state - state of a mesh peer link finite state machine
  *
  * @NL80211_PLINK_LISTEN: initial state, considered the implicit
- *     state of non existent mesh peer links
+ *     state of non-existent mesh peer links
  * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to
  *     this mesh peer
  * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received
@@ -6209,7 +6293,7 @@ enum nl80211_feature_flags {
  *     request to use RRM (see %NL80211_ATTR_USE_RRM) with
  *     %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
  *     the ASSOC_REQ_USE_RRM flag in the association request even if
- *     NL80211_FEATURE_QUIET is not advertized.
+ *     NL80211_FEATURE_QUIET is not advertised.
  * @NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER: This device supports MU-MIMO air
  *     sniffer which means that it can be configured to hear packets from
  *     certain groups which can be configured by the
@@ -6221,13 +6305,15 @@ enum nl80211_feature_flags {
  *     the BSS that the interface that requested the scan is connected to
  *     (if available).
  * @NL80211_EXT_FEATURE_BSS_PARENT_TSF: Per BSS, this driver reports the
- *     time the last beacon/probe was received. The time is the TSF of the
- *     BSS that the interface that requested the scan is connected to
- *     (if available).
+ *     time the last beacon/probe was received. For a non-MLO connection, the
+ *     time is the TSF of the BSS that the interface that requested the scan is
+ *     connected to (if available). For an MLO connection, the time is the TSF
+ *     of the BSS corresponding with link ID specified in the scan request (if
+ *     specified).
  * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of
  *     channel dwell time.
  * @NL80211_EXT_FEATURE_BEACON_RATE_LEGACY: Driver supports beacon rate
- *     configuration (AP/mesh), supporting a legacy (non HT/VHT) rate.
+ *     configuration (AP/mesh), supporting a legacy (non-HT/VHT) rate.
  * @NL80211_EXT_FEATURE_BEACON_RATE_HT: Driver supports beacon rate
  *     configuration (AP/mesh) with HT rates.
  * @NL80211_EXT_FEATURE_BEACON_RATE_VHT: Driver supports beacon rate
@@ -6400,6 +6486,12 @@ enum nl80211_feature_flags {
  *     in authentication and deauthentication frames sent to unassociated peer
  *     using @NL80211_CMD_FRAME.
  *
+ * @NL80211_EXT_FEATURE_OWE_OFFLOAD: Driver/Device wants to do OWE DH IE
+ *     handling in station mode.
+ *
+ * @NL80211_EXT_FEATURE_OWE_OFFLOAD_AP: Driver/Device wants to do OWE DH IE
+ *     handling in AP mode.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6471,6 +6563,8 @@ enum nl80211_ext_feature_index {
        NL80211_EXT_FEATURE_PUNCT,
        NL80211_EXT_FEATURE_SECURE_NAN,
        NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA,
+       NL80211_EXT_FEATURE_OWE_OFFLOAD,
+       NL80211_EXT_FEATURE_OWE_OFFLOAD_AP,
 
        /* add new features before the definition below */
        NUM_NL80211_EXT_FEATURES,
@@ -6555,7 +6649,7 @@ enum nl80211_timeout_reason {
  *     request parameters IE in the probe request
  * @NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP: accept broadcast probe responses
  * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE: send probe request frames at
- *     rate of at least 5.5M. In case non OCE AP is discovered in the channel,
+ *     rate of at least 5.5M. In case non-OCE AP is discovered in the channel,
  *     only the first probe req in the channel will be sent in high rate.
  * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION: allow probe request
  *     tx deferral (dot11FILSProbeDelay shall be set to 15ms)
@@ -6591,7 +6685,7 @@ enum nl80211_timeout_reason {
  *     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
+ *     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.
@@ -6923,7 +7017,7 @@ enum nl80211_nan_func_term_reason {
  *     The instance ID for the follow up Service Discovery Frame. This is u8.
  * @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID: relevant if the function's type
  *     is follow up. This is a u8.
- *     The requestor instance ID for the follow up Service Discovery Frame.
+ *     The requester instance ID for the follow up Service Discovery Frame.
  * @NL80211_NAN_FUNC_FOLLOW_UP_DEST: the MAC address of the recipient of the
  *     follow up Service Discovery Frame. This is a binary attribute.
  * @NL80211_NAN_FUNC_CLOSE_RANGE: is this function limited for devices in a
@@ -7313,7 +7407,7 @@ enum nl80211_peer_measurement_attrs {
  * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
  *     trigger based ranging measurement is supported
  * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
- *     if non trigger based ranging measurement is supported
+ *     if non-trigger-based ranging measurement is supported
  *
  * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
  * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
@@ -7367,7 +7461,7 @@ enum nl80211_peer_measurement_ftm_capa {
  *      if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
  *     %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
  *     ranging will be used.
- * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
+ * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non-trigger-based
  *     ranging measurement (flag)
  *     This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
  *     mutually exclusive.
@@ -7445,7 +7539,7 @@ enum nl80211_peer_measurement_ftm_failure_reasons {
  * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS: number of FTM Request frames
  *     transmitted (u32, optional)
  * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES: number of FTM Request frames
- *     that were acknowleged (u32, optional)
+ *     that were acknowledged (u32, optional)
  * @NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME: retry time received from the
  *     busy peer (u32, seconds)
  * @NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP: actual number of bursts exponent
@@ -7606,7 +7700,7 @@ enum nl80211_iftype_akm_attributes {
  * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU).
  *     Allowed range: 0..10000 (TU = Time Unit)
  * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU).
- *     Allowed range: 0..10000 (TU = Time Unit)
+ *     Allowed range: 0..10000 (TU = Time Unit). If set to 0, the feature is disabled.
  * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action
  *     frame including the headers.
  *
@@ -7639,7 +7733,8 @@ enum nl80211_fils_discovery_attributes {
  *
  * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU).
  *     Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0
- *     26.17.2.3.2 (AP behavior for fast passive scanning).
+ *     26.17.2.3.2 (AP behavior for fast passive scanning). If set to 0, the feature is
+ *     disabled.
  * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response
  *     frame template (binary).
  *