blob: c7d248a40a7cf313ce9f0c54ca1ab22f968b36d7 [file] [log] [blame]
developer66e89bc2024-04-23 14:50:01 +08001From ac7e46b2aaf800ff0bd1339be814754b79eed568 Mon Sep 17 00:00:00 2001
2From: Johannes Berg <johannes.berg@intel.com>
3Date: Thu, 21 Dec 2023 12:47:01 +0100
4Subject: [PATCH 24/28] update nl80211.h
5
6Signed-off-by: Johannes Berg <johannes.berg@intel.com>
7---
8 info.c | 2 +
9 nl80211.h | 199 ++++++++++++++++++++++++++++++++++++++++--------------
10 2 files changed, 149 insertions(+), 52 deletions(-)
11
12diff --git a/info.c b/info.c
13index 4c5f463..317e7a3 100644
14--- a/info.c
15+++ b/info.c
16@@ -170,6 +170,8 @@ static void ext_feat_print(enum nl80211_ext_feature_index idx)
17 ext_feat_case(PUNCT, "preamble puncturing in AP mode");
18 ext_feat_case(SECURE_NAN, "secure NAN support");
19 ext_feat_case(AUTH_AND_DEAUTH_RANDOM_TA, "random auth/deauth transmitter address");
20+ ext_feat_case(OWE_OFFLOAD, "OWE DH element handling offload (client)");
21+ ext_feat_case(OWE_OFFLOAD_AP, "OWE DH element handling offload (AP)");
22 }
23 }
24
25diff --git a/nl80211.h b/nl80211.h
26index 88eb85c..a682b54 100644
27--- a/nl80211.h
28+++ b/nl80211.h
29@@ -72,7 +72,7 @@
30 * For drivers supporting TDLS with external setup (WIPHY_FLAG_SUPPORTS_TDLS
31 * and WIPHY_FLAG_TDLS_EXTERNAL_SETUP), the station lifetime is as follows:
32 * - a setup station entry is added, not yet authorized, without any rate
33- * or capability information, this just exists to avoid race conditions
34+ * or capability information; this just exists to avoid race conditions
35 * - when the TDLS setup is done, a single NL80211_CMD_SET_STATION is valid
36 * to add rate and capability information to the station and at the same
37 * time mark it authorized.
38@@ -87,7 +87,7 @@
39 * DOC: Frame transmission/registration support
40 *
41 * Frame transmission and registration support exists to allow userspace
42- * management entities such as wpa_supplicant react to management frames
43+ * management entities such as wpa_supplicant to react to management frames
44 * that are not being handled by the kernel. This includes, for example,
45 * certain classes of action frames that cannot be handled in the kernel
46 * for various reasons.
47@@ -113,7 +113,7 @@
48 *
49 * Frame transmission allows userspace to send for example the required
50 * responses to action frames. It is subject to some sanity checking,
51- * but many frames can be transmitted. When a frame was transmitted, its
52+ * but many frames can be transmitted. When a frame is transmitted, its
53 * status is indicated to the sending socket.
54 *
55 * For more technical details, see the corresponding command descriptions
56@@ -123,7 +123,7 @@
57 /**
58 * DOC: Virtual interface / concurrency capabilities
59 *
60- * Some devices are able to operate with virtual MACs, they can have
61+ * Some devices are able to operate with virtual MACs; they can have
62 * more than one virtual interface. The capability handling for this
63 * is a bit complex though, as there may be a number of restrictions
64 * on the types of concurrency that are supported.
65@@ -135,7 +135,7 @@
66 * Once concurrency is desired, more attributes must be observed:
67 * To start with, since some interface types are purely managed in
68 * software, like the AP-VLAN type in mac80211 for example, there's
69- * an additional list of these, they can be added at any time and
70+ * an additional list of these; they can be added at any time and
71 * are only restricted by some semantic restrictions (e.g. AP-VLAN
72 * cannot be added without a corresponding AP interface). This list
73 * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute.
74@@ -164,17 +164,17 @@
75 * Packet coalesce feature helps to reduce number of received interrupts
76 * to host by buffering these packets in firmware/hardware for some
77 * predefined time. Received interrupt will be generated when one of the
78- * following events occur.
79+ * following events occurs.
80 * a) Expiration of hardware timer whose expiration time is set to maximum
81 * coalescing delay of matching coalesce rule.
82- * b) Coalescing buffer in hardware reaches it's limit.
83+ * b) Coalescing buffer in hardware reaches its limit.
84 * c) Packet doesn't match any of the configured coalesce rules.
85 *
86 * User needs to configure following parameters for creating a coalesce
87 * rule.
88 * a) Maximum coalescing delay
89 * b) List of packet patterns which needs to be matched
90- * c) Condition for coalescence. pattern 'match' or 'no match'
91+ * c) Condition for coalescence: pattern 'match' or 'no match'
92 * Multiple such rules can be created.
93 */
94
95@@ -213,7 +213,7 @@
96 /**
97 * DOC: FILS shared key authentication offload
98 *
99- * FILS shared key authentication offload can be advertized by drivers by
100+ * FILS shared key authentication offload can be advertised by drivers by
101 * setting @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD flag. The drivers that support
102 * FILS shared key authentication offload should be able to construct the
103 * authentication and association frames for FILS shared key authentication and
104@@ -239,7 +239,7 @@
105 * The PMKSA can be maintained in userspace persistently so that it can be used
106 * later after reboots or wifi turn off/on also.
107 *
108- * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertized by a FILS
109+ * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertised by a FILS
110 * capable AP supporting PMK caching. It specifies the scope within which the
111 * PMKSAs are cached in an ESS. %NL80211_CMD_SET_PMKSA and
112 * %NL80211_CMD_DEL_PMKSA are enhanced to allow support for PMKSA caching based
113@@ -290,12 +290,12 @@
114 * If the configuration needs to be applied for specific peer then the MAC
115 * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
116 * configuration will be applied for all the connected peers in the vif except
117- * any peers that have peer specific configuration for the TID by default; if
118- * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
119+ * any peers that have peer-specific configuration for the TID by default; if
120+ * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer-specific values
121 * will be overwritten.
122 *
123- * All this configuration is valid only for STA's current connection
124- * i.e. the configuration will be reset to default when the STA connects back
125+ * All this configuration is valid only for STA's current connection,
126+ * i.e., the configuration will be reset to default when the STA connects back
127 * after disconnection/roaming, and this configuration will be cleared when
128 * the interface goes down.
129 */
130@@ -326,7 +326,7 @@
131 /**
132 * DOC: Multi-Link Operation
133 *
134- * In Multi-Link Operation, a connection between to MLDs utilizes multiple
135+ * In Multi-Link Operation, a connection between two MLDs utilizes multiple
136 * links. To use this in nl80211, various commands and responses now need
137 * to or will include the new %NL80211_ATTR_MLO_LINKS attribute.
138 * Additionally, various commands that need to operate on a specific link
139@@ -334,6 +334,15 @@
140 * use %NL80211_CMD_START_AP or similar functions.
141 */
142
143+/**
144+ * DOC: OWE DH IE handling offload
145+ *
146+ * By setting @NL80211_EXT_FEATURE_OWE_OFFLOAD flag, drivers can indicate
147+ * kernel/application space to avoid DH IE handling. When this flag is
148+ * advertised, the driver/device will take care of DH IE inclusion and
149+ * processing of peer DH IE to generate PMK.
150+ */
151+
152 /**
153 * enum nl80211_commands - supported nl80211 commands
154 *
155@@ -512,7 +521,7 @@
156 * %NL80211_ATTR_SCHED_SCAN_PLANS. If %NL80211_ATTR_SCHED_SCAN_PLANS is
157 * not specified and only %NL80211_ATTR_SCHED_SCAN_INTERVAL is specified,
158 * scheduled scan will run in an infinite loop with the specified interval.
159- * These attributes are mutually exculsive,
160+ * These attributes are mutually exclusive,
161 * i.e. NL80211_ATTR_SCHED_SCAN_INTERVAL must not be passed if
162 * NL80211_ATTR_SCHED_SCAN_PLANS is defined.
163 * If for some reason scheduled scan is aborted by the driver, all scan
164@@ -543,7 +552,7 @@
165 * %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface
166 * is brought down while a scheduled scan was running.
167 *
168- * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation
169+ * @NL80211_CMD_GET_SURVEY: get survey results, e.g. channel occupation
170 * or noise level
171 * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
172 * NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
173@@ -554,12 +563,13 @@
174 * using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID,
175 * %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS
176 * authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier
177- * advertized by a FILS capable AP identifying the scope of PMKSA in an
178+ * advertised by a FILS capable AP identifying the scope of PMKSA in an
179 * ESS.
180 * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
181 * (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID,
182 * %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS
183- * authentication.
184+ * authentication. Additionally in case of SAE offload and OWE offloads
185+ * PMKSA entry can be deleted using %NL80211_ATTR_SSID.
186 * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries.
187 *
188 * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
189@@ -598,7 +608,7 @@
190 * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
191 * the SSID (mainly for association, but is included in authentication
192 * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ +
193- * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequence of the
194+ * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequency of the
195 * channel in MHz. %NL80211_ATTR_AUTH_TYPE is used to specify the
196 * authentication type. %NL80211_ATTR_IE is used to define IEs
197 * (VendorSpecificInfo, but also including RSN IE and FT IEs) to be added
198@@ -807,7 +817,7 @@
199 * reached.
200 * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ
201 * and the attributes determining channel width) the given interface
202- * (identifed by %NL80211_ATTR_IFINDEX) shall operate on.
203+ * (identified by %NL80211_ATTR_IFINDEX) shall operate on.
204 * In case multiple channels are supported by the device, the mechanism
205 * with which it switches channels is implementation-defined.
206 * When a monitor interface is given, it can only switch channel while
207@@ -879,7 +889,7 @@
208 * inform userspace of the new replay counter.
209 *
210 * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace
211- * of PMKSA caching dandidates.
212+ * of PMKSA caching candidates.
213 *
214 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
215 * In addition, this can be used as an event to request userspace to take
216@@ -915,7 +925,7 @@
217 *
218 * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface
219 * by sending a null data frame to it and reporting when the frame is
220- * acknowleged. This is used to allow timing out inactive clients. Uses
221+ * acknowledged. This is used to allow timing out inactive clients. Uses
222 * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a
223 * direct reply with an %NL80211_ATTR_COOKIE that is later used to match
224 * up the event with the request. The event includes the same data and
225@@ -1126,11 +1136,15 @@
226 * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
227 * configured PMK for the authenticator address identified by
228 * %NL80211_ATTR_MAC.
229- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
230- * completed successfully. Drivers that support 4 way handshake offload
231- * should send this event after indicating 802.1X FT assocation with
232- * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
233- * should be indicated instead.
234+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates port is authorized and
235+ * open for regular data traffic. For STA/P2P-client, this event is sent
236+ * with AP MAC address and for AP/P2P-GO, the event carries the STA/P2P-
237+ * client MAC address.
238+ * Drivers that support 4 way handshake offload should send this event for
239+ * STA/P2P-client after successful 4-way HS or after 802.1X FT following
240+ * NL80211_CMD_CONNECT or NL80211_CMD_ROAM. Drivers using AP/P2P-GO 4-way
241+ * handshake offload should send this event on successful completion of
242+ * 4-way handshake with the peer (STA/P2P-client).
243 * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
244 * and RX notification. This command is used both as a request to transmit
245 * a control port frame and as a notification that a control port frame
246@@ -1314,6 +1328,11 @@
247 * Multi-Link reconfiguration. %NL80211_ATTR_MLO_LINKS is used to provide
248 * information about the removed STA MLD setup links.
249 *
250+ * @NL80211_CMD_SET_TID_TO_LINK_MAPPING: Set the TID to Link Mapping for a
251+ * non-AP MLD station. The %NL80211_ATTR_MLO_TTLM_DLINK and
252+ * %NL80211_ATTR_MLO_TTLM_ULINK attributes are used to specify the
253+ * TID to Link mapping for downlink/uplink traffic.
254+ *
255 * @NL80211_CMD_MAX: highest used command number
256 * @__NL80211_CMD_AFTER_LAST: internal use
257 */
258@@ -1569,6 +1588,8 @@ enum nl80211_commands {
259
260 NL80211_CMD_LINKS_REMOVED,
261
262+ NL80211_CMD_SET_TID_TO_LINK_MAPPING,
263+
264 /* add new commands above here */
265
266 /* used to define NL80211_CMD_MAX below */
267@@ -1826,7 +1847,7 @@ enum nl80211_commands {
268 * using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
269 * to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
270 * flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
271- * frames are not forwared over the control port.
272+ * frames are not forwarded over the control port.
273 *
274 * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
275 * We recommend using nested, driver-specific attributes within this.
276@@ -1963,10 +1984,10 @@ enum nl80211_commands {
277 * bit. Depending on which antennas are selected in the bitmap, 802.11n
278 * drivers can derive which chainmasks to use (if all antennas belonging to
279 * a particular chain are disabled this chain should be disabled) and if
280- * a chain has diversity antennas wether diversity should be used or not.
281+ * a chain has diversity antennas whether diversity should be used or not.
282 * HT capabilities (STBC, TX Beamforming, Antenna selection) can be
283 * derived from the available chains after applying the antenna mask.
284- * Non-802.11n drivers can derive wether to use diversity or not.
285+ * Non-802.11n drivers can derive whether to use diversity or not.
286 * Drivers may reject configurations or RX/TX mask combinations they cannot
287 * support by returning -EINVAL.
288 *
289@@ -2536,7 +2557,7 @@ enum nl80211_commands {
290 * from successful FILS authentication and is used with
291 * %NL80211_CMD_CONNECT.
292 *
293- * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertized by a FILS AP
294+ * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertised by a FILS AP
295 * identifying the scope of PMKSAs. This is used with
296 * @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA.
297 *
298@@ -2690,11 +2711,13 @@ enum nl80211_commands {
299 *
300 * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
301 * discovery. It is a nested attribute, see
302- * &enum nl80211_fils_discovery_attributes.
303+ * &enum nl80211_fils_discovery_attributes. Userspace should pass an empty
304+ * nested attribute to disable this feature and delete the templates.
305 *
306 * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
307 * unsolicited broadcast probe response. It is a nested attribute, see
308- * &enum nl80211_unsol_bcast_probe_resp_attributes.
309+ * &enum nl80211_unsol_bcast_probe_resp_attributes. Userspace should pass an empty
310+ * nested attribute to disable this feature and delete the templates.
311 *
312 * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
313 * association request when used with NL80211_CMD_NEW_STATION)
314@@ -2815,6 +2838,19 @@ enum nl80211_commands {
315 * @NL80211_ATTR_MLO_LINK_DISABLED: Flag attribute indicating that the link is
316 * disabled.
317 *
318+ * @NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA: Include BSS usage data, i.e.
319+ * include BSSes that can only be used in restricted scenarios and/or
320+ * cannot be used at all.
321+ *
322+ * @NL80211_ATTR_MLO_TTLM_DLINK: Binary attribute specifying the downlink TID to
323+ * link mapping. The length is 8 * sizeof(u16). For each TID the link
324+ * mapping is as defined in section 9.4.2.314 (TID-To-Link Mapping element)
325+ * in Draft P802.11be_D4.0.
326+ * @NL80211_ATTR_MLO_TTLM_ULINK: Binary attribute specifying the uplink TID to
327+ * link mapping. The length is 8 * sizeof(u16). For each TID the link
328+ * mapping is as defined in section 9.4.2.314 (TID-To-Link Mapping element)
329+ * in Draft P802.11be_D4.0.
330+ *
331 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
332 * @NL80211_ATTR_MAX: highest attribute number currently defined
333 * @__NL80211_ATTR_AFTER_LAST: internal use
334@@ -3353,6 +3389,11 @@ enum nl80211_attrs {
335
336 NL80211_ATTR_MLO_LINK_DISABLED,
337
338+ NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA,
339+
340+ NL80211_ATTR_MLO_TTLM_DLINK,
341+ NL80211_ATTR_MLO_TTLM_ULINK,
342+
343 /* add attributes here, update the policy in nl80211.c */
344
345 __NL80211_ATTR_AFTER_LAST,
346@@ -4159,7 +4200,7 @@ enum nl80211_wmm_rule {
347 * (100 * dBm).
348 * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS
349 * (enum nl80211_dfs_state)
350- * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long
351+ * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in milliseconds for how long
352 * this channel is in this DFS state.
353 * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this
354 * channel as the control channel
355@@ -4213,6 +4254,8 @@ enum nl80211_wmm_rule {
356 * as the primary or any of the secondary channels isn't possible
357 * @NL80211_FREQUENCY_ATTR_NO_EHT: EHT operation is not allowed on this channel
358 * in current regulatory domain.
359+ * @NL80211_FREQUENCY_ATTR_PSD: Power spectral density (in dBm) that
360+ * is allowed on this channel in current regulatory domain.
361 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
362 * currently defined
363 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
364@@ -4251,6 +4294,7 @@ enum nl80211_frequency_attr {
365 NL80211_FREQUENCY_ATTR_16MHZ,
366 NL80211_FREQUENCY_ATTR_NO_320MHZ,
367 NL80211_FREQUENCY_ATTR_NO_EHT,
368+ NL80211_FREQUENCY_ATTR_PSD,
369
370 /* keep last */
371 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
372@@ -4351,6 +4395,8 @@ enum nl80211_reg_type {
373 * a given frequency range. The value is in mBm (100 * dBm).
374 * @NL80211_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds.
375 * If not present or 0 default CAC time will be used.
376+ * @NL80211_ATTR_POWER_RULE_PSD: power spectral density (in dBm).
377+ * This could be negative.
378 * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number
379 * currently defined
380 * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use
381@@ -4368,6 +4414,8 @@ enum nl80211_reg_rule_attr {
382
383 NL80211_ATTR_DFS_CAC_TIME,
384
385+ NL80211_ATTR_POWER_RULE_PSD,
386+
387 /* keep last */
388 __NL80211_REG_RULE_ATTR_AFTER_LAST,
389 NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
390@@ -4451,6 +4499,7 @@ enum nl80211_sched_scan_match_attr {
391 * @NL80211_RRF_NO_HE: HE operation not allowed
392 * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
393 * @NL80211_RRF_NO_EHT: EHT operation not allowed
394+ * @NL80211_RRF_PSD: Ruleset has power spectral density value
395 */
396 enum nl80211_reg_rule_flags {
397 NL80211_RRF_NO_OFDM = 1<<0,
398@@ -4471,6 +4520,7 @@ enum nl80211_reg_rule_flags {
399 NL80211_RRF_NO_HE = 1<<17,
400 NL80211_RRF_NO_320MHZ = 1<<18,
401 NL80211_RRF_NO_EHT = 1<<19,
402+ NL80211_RRF_PSD = 1<<20,
403 };
404
405 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
406@@ -5007,6 +5057,30 @@ enum nl80211_bss_scan_width {
407 NL80211_BSS_CHAN_WIDTH_2,
408 };
409
410+/**
411+ * enum nl80211_bss_use_for - bitmap indicating possible BSS use
412+ * @NL80211_BSS_USE_FOR_NORMAL: Use this BSS for normal "connection",
413+ * including IBSS/MBSS depending on the type.
414+ * @NL80211_BSS_USE_FOR_MLD_LINK: This BSS can be used as a link in an
415+ * MLO connection. Note that for an MLO connection, all links including
416+ * the assoc link must have this flag set, and the assoc link must
417+ * additionally have %NL80211_BSS_USE_FOR_NORMAL set.
418+ */
419+enum nl80211_bss_use_for {
420+ NL80211_BSS_USE_FOR_NORMAL = 1 << 0,
421+ NL80211_BSS_USE_FOR_MLD_LINK = 1 << 1,
422+};
423+
424+/**
425+ * enum nl80211_bss_cannot_use_reasons - reason(s) connection to a
426+ * BSS isn't possible
427+ * @NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY: NSTR nonprimary links aren't
428+ * supported by the device, and this BSS entry represents one.
429+ */
430+enum nl80211_bss_cannot_use_reasons {
431+ NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 1 << 0,
432+};
433+
434 /**
435 * enum nl80211_bss - netlink attributes for a BSS
436 *
437@@ -5038,7 +5112,7 @@ enum nl80211_bss_scan_width {
438 * elements from a Beacon frame (bin); not present if no Beacon frame has
439 * yet been received
440 * @NL80211_BSS_CHAN_WIDTH: channel width of the control channel
441- * (u32, enum nl80211_bss_scan_width)
442+ * (u32, enum nl80211_bss_scan_width) - No longer used!
443 * @NL80211_BSS_BEACON_TSF: TSF of the last received beacon (u64)
444 * (not present if no beacon frame has been received yet)
445 * @NL80211_BSS_PRESP_DATA: the data in @NL80211_BSS_INFORMATION_ELEMENTS and
446@@ -5059,6 +5133,14 @@ enum nl80211_bss_scan_width {
447 * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
448 * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
449 * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
450+ * @NL80211_BSS_USE_FOR: u32 bitmap attribute indicating what the BSS can be
451+ * used for, see &enum nl80211_bss_use_for.
452+ * @NL80211_BSS_CANNOT_USE_REASONS: Indicates the reason that this BSS cannot
453+ * be used for all or some of the possible uses by the device reporting it,
454+ * even though its presence was detected.
455+ * This is a u64 attribute containing a bitmap of values from
456+ * &enum nl80211_cannot_use_reasons, note that the attribute may be missing
457+ * if no reasons are specified.
458 * @__NL80211_BSS_AFTER_LAST: internal
459 * @NL80211_BSS_MAX: highest BSS attribute
460 */
461@@ -5086,6 +5168,8 @@ enum nl80211_bss {
462 NL80211_BSS_FREQUENCY_OFFSET,
463 NL80211_BSS_MLO_LINK_ID,
464 NL80211_BSS_MLD_ADDR,
465+ NL80211_BSS_USE_FOR,
466+ NL80211_BSS_CANNOT_USE_REASONS,
467
468 /* keep last */
469 __NL80211_BSS_AFTER_LAST,
470@@ -5434,7 +5518,7 @@ enum nl80211_tx_rate_setting {
471 * (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
472 * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
473 * per peer instead.
474- * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if set indicates
475+ * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribute, if set indicates
476 * that the new configuration overrides all previous peer
477 * configurations, otherwise previous peer specific configurations
478 * should be left untouched.
479@@ -5817,7 +5901,7 @@ enum nl80211_attr_coalesce_rule {
480
481 /**
482 * enum nl80211_coalesce_condition - coalesce rule conditions
483- * @NL80211_COALESCE_CONDITION_MATCH: coalaesce Rx packets when patterns
484+ * @NL80211_COALESCE_CONDITION_MATCH: coalesce Rx packets when patterns
485 * in a rule are matched.
486 * @NL80211_COALESCE_CONDITION_NO_MATCH: coalesce Rx packets when patterns
487 * in a rule are not matched.
488@@ -5916,7 +6000,7 @@ enum nl80211_if_combination_attrs {
489 * enum nl80211_plink_state - state of a mesh peer link finite state machine
490 *
491 * @NL80211_PLINK_LISTEN: initial state, considered the implicit
492- * state of non existent mesh peer links
493+ * state of non-existent mesh peer links
494 * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to
495 * this mesh peer
496 * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received
497@@ -6209,7 +6293,7 @@ enum nl80211_feature_flags {
498 * request to use RRM (see %NL80211_ATTR_USE_RRM) with
499 * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
500 * the ASSOC_REQ_USE_RRM flag in the association request even if
501- * NL80211_FEATURE_QUIET is not advertized.
502+ * NL80211_FEATURE_QUIET is not advertised.
503 * @NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER: This device supports MU-MIMO air
504 * sniffer which means that it can be configured to hear packets from
505 * certain groups which can be configured by the
506@@ -6221,13 +6305,15 @@ enum nl80211_feature_flags {
507 * the BSS that the interface that requested the scan is connected to
508 * (if available).
509 * @NL80211_EXT_FEATURE_BSS_PARENT_TSF: Per BSS, this driver reports the
510- * time the last beacon/probe was received. The time is the TSF of the
511- * BSS that the interface that requested the scan is connected to
512- * (if available).
513+ * time the last beacon/probe was received. For a non-MLO connection, the
514+ * time is the TSF of the BSS that the interface that requested the scan is
515+ * connected to (if available). For an MLO connection, the time is the TSF
516+ * of the BSS corresponding with link ID specified in the scan request (if
517+ * specified).
518 * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of
519 * channel dwell time.
520 * @NL80211_EXT_FEATURE_BEACON_RATE_LEGACY: Driver supports beacon rate
521- * configuration (AP/mesh), supporting a legacy (non HT/VHT) rate.
522+ * configuration (AP/mesh), supporting a legacy (non-HT/VHT) rate.
523 * @NL80211_EXT_FEATURE_BEACON_RATE_HT: Driver supports beacon rate
524 * configuration (AP/mesh) with HT rates.
525 * @NL80211_EXT_FEATURE_BEACON_RATE_VHT: Driver supports beacon rate
526@@ -6400,6 +6486,12 @@ enum nl80211_feature_flags {
527 * in authentication and deauthentication frames sent to unassociated peer
528 * using @NL80211_CMD_FRAME.
529 *
530+ * @NL80211_EXT_FEATURE_OWE_OFFLOAD: Driver/Device wants to do OWE DH IE
531+ * handling in station mode.
532+ *
533+ * @NL80211_EXT_FEATURE_OWE_OFFLOAD_AP: Driver/Device wants to do OWE DH IE
534+ * handling in AP mode.
535+ *
536 * @NUM_NL80211_EXT_FEATURES: number of extended features.
537 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
538 */
539@@ -6471,6 +6563,8 @@ enum nl80211_ext_feature_index {
540 NL80211_EXT_FEATURE_PUNCT,
541 NL80211_EXT_FEATURE_SECURE_NAN,
542 NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA,
543+ NL80211_EXT_FEATURE_OWE_OFFLOAD,
544+ NL80211_EXT_FEATURE_OWE_OFFLOAD_AP,
545
546 /* add new features before the definition below */
547 NUM_NL80211_EXT_FEATURES,
548@@ -6555,7 +6649,7 @@ enum nl80211_timeout_reason {
549 * request parameters IE in the probe request
550 * @NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP: accept broadcast probe responses
551 * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE: send probe request frames at
552- * rate of at least 5.5M. In case non OCE AP is discovered in the channel,
553+ * rate of at least 5.5M. In case non-OCE AP is discovered in the channel,
554 * only the first probe req in the channel will be sent in high rate.
555 * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION: allow probe request
556 * tx deferral (dot11FILSProbeDelay shall be set to 15ms)
557@@ -6591,7 +6685,7 @@ enum nl80211_timeout_reason {
558 * received on the 2.4/5 GHz channels to actively scan only the 6GHz
559 * channels on which APs are expected to be found. Note that when not set,
560 * the scan logic would scan all 6GHz channels, but since transmission of
561- * probe requests on non PSC channels is limited, it is highly likely that
562+ * probe requests on non-PSC channels is limited, it is highly likely that
563 * these channels would passively be scanned. Also note that when the flag
564 * is set, in addition to the colocated APs, PSC channels would also be
565 * scanned if the user space has asked for it.
566@@ -6923,7 +7017,7 @@ enum nl80211_nan_func_term_reason {
567 * The instance ID for the follow up Service Discovery Frame. This is u8.
568 * @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID: relevant if the function's type
569 * is follow up. This is a u8.
570- * The requestor instance ID for the follow up Service Discovery Frame.
571+ * The requester instance ID for the follow up Service Discovery Frame.
572 * @NL80211_NAN_FUNC_FOLLOW_UP_DEST: the MAC address of the recipient of the
573 * follow up Service Discovery Frame. This is a binary attribute.
574 * @NL80211_NAN_FUNC_CLOSE_RANGE: is this function limited for devices in a
575@@ -7313,7 +7407,7 @@ enum nl80211_peer_measurement_attrs {
576 * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
577 * trigger based ranging measurement is supported
578 * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
579- * if non trigger based ranging measurement is supported
580+ * if non-trigger-based ranging measurement is supported
581 *
582 * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
583 * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
584@@ -7367,7 +7461,7 @@ enum nl80211_peer_measurement_ftm_capa {
585 * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
586 * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
587 * ranging will be used.
588- * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
589+ * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non-trigger-based
590 * ranging measurement (flag)
591 * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
592 * mutually exclusive.
593@@ -7445,7 +7539,7 @@ enum nl80211_peer_measurement_ftm_failure_reasons {
594 * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS: number of FTM Request frames
595 * transmitted (u32, optional)
596 * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES: number of FTM Request frames
597- * that were acknowleged (u32, optional)
598+ * that were acknowledged (u32, optional)
599 * @NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME: retry time received from the
600 * busy peer (u32, seconds)
601 * @NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP: actual number of bursts exponent
602@@ -7606,7 +7700,7 @@ enum nl80211_iftype_akm_attributes {
603 * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU).
604 * Allowed range: 0..10000 (TU = Time Unit)
605 * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU).
606- * Allowed range: 0..10000 (TU = Time Unit)
607+ * Allowed range: 0..10000 (TU = Time Unit). If set to 0, the feature is disabled.
608 * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action
609 * frame including the headers.
610 *
611@@ -7639,7 +7733,8 @@ enum nl80211_fils_discovery_attributes {
612 *
613 * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU).
614 * Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0
615- * 26.17.2.3.2 (AP behavior for fast passive scanning).
616+ * 26.17.2.3.2 (AP behavior for fast passive scanning). If set to 0, the feature is
617+ * disabled.
618 * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response
619 * frame template (binary).
620 *
621--
6222.39.2
623