hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/include/uapi/linux/nl80211.h
....@@ -11,7 +11,7 @@
1111 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
1212 * Copyright 2008 Colin McCabe <colin@cozybit.com>
1313 * Copyright 2015-2017 Intel Deutschland GmbH
14
- * Copyright (C) 2018 Intel Corporation
14
+ * Copyright (C) 2018-2020 Intel Corporation
1515 *
1616 * Permission to use, copy, modify, and/or distribute this software for any
1717 * purpose with or without fee is hereby granted, provided that the above
....@@ -183,18 +183,27 @@
183183 *
184184 * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers
185185 * can indicate they support offloading EAPOL handshakes for WPA/WPA2
186
- * preshared key authentication. In %NL80211_CMD_CONNECT the preshared
187
- * key should be specified using %NL80211_ATTR_PMK. Drivers supporting
188
- * this offload may reject the %NL80211_CMD_CONNECT when no preshared
189
- * key material is provided, for example when that driver does not
190
- * support setting the temporal keys through %CMD_NEW_KEY.
186
+ * preshared key authentication in station mode. In %NL80211_CMD_CONNECT
187
+ * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
188
+ * supporting this offload may reject the %NL80211_CMD_CONNECT when no
189
+ * preshared key material is provided, for example when that driver does
190
+ * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
191191 *
192192 * Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be
193193 * set by drivers indicating offload support of the PTK/GTK EAPOL
194
- * handshakes during 802.1X authentication. In order to use the offload
195
- * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS
196
- * attribute flag. Drivers supporting this offload may reject the
197
- * %NL80211_CMD_CONNECT when the attribute flag is not present.
194
+ * handshakes during 802.1X authentication in station mode. In order to
195
+ * use the offload the %NL80211_CMD_CONNECT should have
196
+ * %NL80211_ATTR_WANT_1X_4WAY_HS attribute flag. Drivers supporting this
197
+ * offload may reject the %NL80211_CMD_CONNECT when the attribute flag is
198
+ * not present.
199
+ *
200
+ * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK flag drivers
201
+ * can indicate they support offloading EAPOL handshakes for WPA/WPA2
202
+ * preshared key authentication in AP mode. In %NL80211_CMD_START_AP
203
+ * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
204
+ * supporting this offload may reject the %NL80211_CMD_START_AP when no
205
+ * preshared key material is provided, for example when that driver does
206
+ * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
198207 *
199208 * For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK
200209 * using %NL80211_CMD_SET_PMK. For offloaded FT support also
....@@ -240,6 +249,58 @@
240249 */
241250
242251 /**
252
+ * DOC: SAE authentication offload
253
+ *
254
+ * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
255
+ * support offloading SAE authentication for WPA3-Personal networks in station
256
+ * mode. Similarly @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP flag can be set by
257
+ * drivers indicating the offload support in AP mode.
258
+ *
259
+ * The password for SAE should be specified using %NL80211_ATTR_SAE_PASSWORD in
260
+ * %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP for station and AP mode
261
+ * respectively.
262
+ */
263
+
264
+/**
265
+ * DOC: VLAN offload support for setting group keys and binding STAs to VLANs
266
+ *
267
+ * By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they
268
+ * support offloading VLAN functionality in a manner where the driver exposes a
269
+ * single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs
270
+ * can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet
271
+ * case. Frames received from stations that are not assigned to any VLAN are
272
+ * delivered on the main netdev and frames to such stations can be sent through
273
+ * that main netdev.
274
+ *
275
+ * %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and
276
+ * %NL80211_CMD_SET_STATION will optionally specify vlan_id using
277
+ * %NL80211_ATTR_VLAN_ID.
278
+ */
279
+
280
+/**
281
+ * DOC: TID configuration
282
+ *
283
+ * TID config support can be checked in the %NL80211_ATTR_TID_CONFIG
284
+ * attribute given in wiphy capabilities.
285
+ *
286
+ * The necessary configuration parameters are mentioned in
287
+ * &enum nl80211_tid_config_attr and it will be passed to the
288
+ * %NL80211_CMD_SET_TID_CONFIG command in %NL80211_ATTR_TID_CONFIG.
289
+ *
290
+ * If the configuration needs to be applied for specific peer then the MAC
291
+ * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
292
+ * configuration will be applied for all the connected peers in the vif except
293
+ * any peers that have peer specific configuration for the TID by default; if
294
+ * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
295
+ * will be overwritten.
296
+ *
297
+ * All this configuration is valid only for STA's current connection
298
+ * i.e. the configuration will be reset to default when the STA connects back
299
+ * after disconnection/roaming, and this configuration will be cleared when
300
+ * the interface goes down.
301
+ */
302
+
303
+/**
243304 * enum nl80211_commands - supported nl80211 commands
244305 *
245306 * @NL80211_CMD_UNSPEC: unspecified command to catch errors
....@@ -248,13 +309,14 @@
248309 * to get a list of all present wiphys.
249310 * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or
250311 * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
251
- * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the
252
- * attributes determining the channel width; this is used for setting
253
- * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT,
254
- * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
255
- * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.
256
- * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL
257
- * instead, the support here is for backward compatibility only.
312
+ * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ,
313
+ * %NL80211_ATTR_WIPHY_FREQ_OFFSET (and the attributes determining the
314
+ * channel width; this is used for setting monitor mode channel),
315
+ * %NL80211_ATTR_WIPHY_RETRY_SHORT, %NL80211_ATTR_WIPHY_RETRY_LONG,
316
+ * %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, and/or
317
+ * %NL80211_ATTR_WIPHY_RTS_THRESHOLD. However, for setting the channel,
318
+ * see %NL80211_CMD_SET_CHANNEL instead, the support here is for backward
319
+ * compatibility only.
258320 * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
259321 * or rename notification. Has attributes %NL80211_ATTR_WIPHY and
260322 * %NL80211_ATTR_WIPHY_NAME.
....@@ -303,7 +365,8 @@
303365 * %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT,
304366 * %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS.
305367 * The channel to use can be set on the interface or be given using the
306
- * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width.
368
+ * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_FREQ_OFFSET, and the
369
+ * attributes determining channel width.
307370 * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP
308371 * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface
309372 * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP
....@@ -313,7 +376,7 @@
313376 * @NL80211_CMD_SET_STATION: Set station attributes for station identified by
314377 * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
315378 * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the
316
- * the interface identified by %NL80211_ATTR_IFINDEX.
379
+ * interface identified by %NL80211_ATTR_IFINDEX.
317380 * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
318381 * or, if no MAC address given, all stations, on the interface identified
319382 * by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
....@@ -333,7 +396,7 @@
333396 * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by
334397 * %NL80211_ATTR_MAC.
335398 * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
336
- * the interface identified by %NL80211_ATTR_IFINDEX.
399
+ * interface identified by %NL80211_ATTR_IFINDEX.
337400 * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
338401 * or, if no MAC address given, all mesh paths, on the interface identified
339402 * by %NL80211_ATTR_IFINDEX.
....@@ -488,11 +551,12 @@
488551 * interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and
489552 * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
490553 * the SSID (mainly for association, but is included in authentication
491
- * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used
492
- * to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE
493
- * is used to specify the authentication type. %NL80211_ATTR_IE is used to
494
- * define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs)
495
- * to be added to the frame.
554
+ * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ +
555
+ * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequence of the
556
+ * channel in MHz. %NL80211_ATTR_AUTH_TYPE is used to specify the
557
+ * authentication type. %NL80211_ATTR_IE is used to define IEs
558
+ * (VendorSpecificInfo, but also including RSN IE and FT IEs) to be added
559
+ * to the frame.
496560 * When used as an event, this reports reception of an Authentication
497561 * frame in station and IBSS modes when the local MLME processed the
498562 * frame, i.e., it was for the local STA and was received in correct
....@@ -547,8 +611,9 @@
547611 * requests to connect to a specified network but without separating
548612 * auth and assoc steps. For this, you need to specify the SSID in a
549613 * %NL80211_ATTR_SSID attribute, and can optionally specify the association
550
- * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
551
- * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
614
+ * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE,
615
+ * %NL80211_ATTR_USE_MFP, %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ,
616
+ * %NL80211_ATTR_WIPHY_FREQ_OFFSET, %NL80211_ATTR_CONTROL_PORT,
552617 * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
553618 * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
554619 * %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %NL80211_ATTR_MAC_HINT, and
....@@ -562,6 +627,14 @@
562627 * set of BSSID,frequency parameters is used (i.e., either the enforcing
563628 * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
564629 * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
630
+ * Driver shall not modify the IEs specified through %NL80211_ATTR_IE if
631
+ * %NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is
632
+ * included, these IEs through %NL80211_ATTR_IE are specified by the user
633
+ * space based on the best possible BSS selected. Thus, if the driver ends
634
+ * up selecting a different BSS, it can modify these IEs accordingly (e.g.
635
+ * userspace asks the driver to perform PMKSA caching with BSS1 and the
636
+ * driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE
637
+ * has to get updated with the apt PMKID).
565638 * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
566639 * the ESS in case the device is already associated and an association with
567640 * a different BSS is desired.
....@@ -578,13 +651,9 @@
578651 * authentication/association or not receiving a response from the AP.
579652 * Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as
580653 * well to remain backwards compatible.
581
- * When establishing a security association, drivers that support 4 way
582
- * handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when
583
- * the 4 way handshake is completed successfully.
584654 * @NL80211_CMD_ROAM: Notification indicating the card/driver roamed by itself.
585
- * When a security association was established with the new AP (e.g. if
586
- * the FT protocol was used for roaming or the driver completed the 4 way
587
- * handshake), this event should be followed by an
655
+ * When a security association was established on an 802.1X network using
656
+ * fast transition, this event should be followed by an
588657 * %NL80211_CMD_PORT_AUTHORIZED event.
589658 * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
590659 * userspace that a connection was dropped by the AP or due to other
....@@ -631,6 +700,10 @@
631700 * four bytes for vendor frames including the OUI. The registration
632701 * cannot be dropped, but is removed automatically when the netlink
633702 * socket is closed. Multiple registrations can be made.
703
+ * The %NL80211_ATTR_RECEIVE_MULTICAST flag attribute can be given if
704
+ * %NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS is available, in which
705
+ * case the registration can also be modified to include/exclude the
706
+ * flag, rather than requiring unregistration to change it.
634707 * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for
635708 * backward compatibility
636709 * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This
....@@ -653,7 +726,9 @@
653726 * is used during CSA period.
654727 * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this
655728 * command may be used with the corresponding cookie to cancel the wait
656
- * time if it is known that it is no longer necessary.
729
+ * time if it is known that it is no longer necessary. This command is
730
+ * also sent as an event whenever the driver has completed the off-channel
731
+ * wait time.
657732 * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility.
658733 * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame
659734 * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies
....@@ -728,7 +803,7 @@
728803 * various triggers. These triggers can be configured through this
729804 * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
730805 * more background information, see
731
- * http://wireless.kernel.org/en/users/Documentation/WoWLAN.
806
+ * https://wireless.wiki.kernel.org/en/users/Documentation/WoWLAN.
732807 * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification
733808 * from the driver reporting the wakeup reason. In this case, the
734809 * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason
....@@ -868,7 +943,7 @@
868943 * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules.
869944 *
870945 * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the
871
- * the new channel information (Channel Switch Announcement - CSA)
946
+ * new channel information (Channel Switch Announcement - CSA)
872947 * in the beacon for some time (as defined in the
873948 * %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
874949 * new channel. Userspace provides the new channel information (using
....@@ -992,13 +1067,11 @@
9921067 * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
9931068 * configured PMK for the authenticator address identified by
9941069 * %NL80211_ATTR_MAC.
995
- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way
996
- * handshake was completed successfully by the driver. The BSSID is
997
- * specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
998
- * offload should send this event after indicating 802.11 association with
999
- * %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
1000
- * %NL80211_CMD_DISCONNECT should be indicated instead.
1001
- *
1070
+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
1071
+ * completed successfully. Drivers that support 4 way handshake offload
1072
+ * should send this event after indicating 802.1X FT assocation with
1073
+ * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
1074
+ * should be indicated instead.
10021075 * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
10031076 * and RX notification. This command is used both as a request to transmit
10041077 * a control port frame and as a notification that a control port frame
....@@ -1047,7 +1120,7 @@
10471120 * randomization may be enabled and configured by specifying the
10481121 * %NL80211_ATTR_MAC and %NL80211_ATTR_MAC_MASK attributes.
10491122 * If a timeout is requested, use the %NL80211_ATTR_TIMEOUT attribute.
1050
- * A u64 cookie for further %NL80211_ATTR_COOKIE use is is returned in
1123
+ * A u64 cookie for further %NL80211_ATTR_COOKIE use is returned in
10511124 * the netlink extended ack message.
10521125 *
10531126 * To cancel a measurement, close the socket that requested it.
....@@ -1074,6 +1147,35 @@
10741147 * offload OWE processing to user space. This intends to support
10751148 * OWE AKM by the host drivers that implement SME but rely
10761149 * on the user space for the cryptographic/DH IE processing in AP mode.
1150
+ *
1151
+ * @NL80211_CMD_PROBE_MESH_LINK: The requirement for mesh link metric
1152
+ * refreshing, is that from one mesh point we be able to send some data
1153
+ * frames to other mesh points which are not currently selected as a
1154
+ * primary traffic path, but which are only 1 hop away. The absence of
1155
+ * the primary path to the chosen node makes it necessary to apply some
1156
+ * form of marking on a chosen packet stream so that the packets can be
1157
+ * properly steered to the selected node for testing, and not by the
1158
+ * regular mesh path lookup. Further, the packets must be of type data
1159
+ * so that the rate control (often embedded in firmware) is used for
1160
+ * rate selection.
1161
+ *
1162
+ * Here attribute %NL80211_ATTR_MAC is used to specify connected mesh
1163
+ * peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame
1164
+ * content. The frame is ethernet data.
1165
+ *
1166
+ * @NL80211_CMD_SET_TID_CONFIG: Data frame TID specific configuration
1167
+ * is passed using %NL80211_ATTR_TID_CONFIG attribute.
1168
+ *
1169
+ * @NL80211_CMD_UNPROT_BEACON: Unprotected or incorrectly protected Beacon
1170
+ * frame. This event is used to indicate that a received Beacon frame was
1171
+ * dropped because it did not include a valid MME MIC while beacon
1172
+ * protection was enabled (BIGTK configured in station mode).
1173
+ *
1174
+ * @NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS: Report TX status of a control
1175
+ * port frame transmitted with %NL80211_CMD_CONTROL_PORT_FRAME.
1176
+ * %NL80211_ATTR_COOKIE identifies the TX command and %NL80211_ATTR_FRAME
1177
+ * includes the contents of the frame. %NL80211_ATTR_ACK flag is included
1178
+ * if the recipient acknowledged the frame.
10771179 *
10781180 * @NL80211_CMD_MAX: highest used command number
10791181 * @__NL80211_CMD_AFTER_LAST: internal use
....@@ -1297,6 +1399,14 @@
12971399
12981400 NL80211_CMD_UPDATE_OWE_INFO,
12991401
1402
+ NL80211_CMD_PROBE_MESH_LINK,
1403
+
1404
+ NL80211_CMD_SET_TID_CONFIG,
1405
+
1406
+ NL80211_CMD_UNPROT_BEACON,
1407
+
1408
+ NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
1409
+
13001410 /* add new commands above here */
13011411
13021412 /* used to define NL80211_CMD_MAX below */
....@@ -1342,7 +1452,8 @@
13421452 * of &enum nl80211_chan_width, describing the channel width. See the
13431453 * documentation of the enum for more information.
13441454 * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the
1345
- * channel, used for anything but 20 MHz bandwidth
1455
+ * channel, used for anything but 20 MHz bandwidth. In S1G this is the
1456
+ * operating channel center frequency.
13461457 * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the
13471458 * channel, used only for 80+80 MHz bandwidth
13481459 * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ
....@@ -1407,7 +1518,7 @@
14071518 * rates as defined by IEEE 802.11 7.3.2.2 but without the length
14081519 * restriction (at most %NL80211_MAX_SUPP_RATES).
14091520 * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
1410
- * to, or the AP interface the station was originally added to to.
1521
+ * to, or the AP interface the station was originally added to.
14111522 * @NL80211_ATTR_STA_INFO: information about a station, part of station info
14121523 * given for %NL80211_CMD_GET_STATION, nested attribute containing
14131524 * info as possible, see &enum nl80211_sta_info.
....@@ -1552,7 +1663,8 @@
15521663 * flag is included, then control port frames are sent over NL80211 instead
15531664 * using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
15541665 * to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
1555
- * flag.
1666
+ * flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
1667
+ * frames are not forwared over the control port.
15561668 *
15571669 * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
15581670 * We recommend using nested, driver-specific attributes within this.
....@@ -1577,6 +1689,12 @@
15771689 * (a u32 with flags from &enum nl80211_wpa_versions).
15781690 * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
15791691 * indicate which key management algorithm(s) to use (an array of u32).
1692
+ * This attribute is also sent in response to @NL80211_CMD_GET_WIPHY,
1693
+ * indicating the supported AKM suites, intended for specific drivers which
1694
+ * implement SME and have constraints on which AKMs are supported and also
1695
+ * the cases where an AKM support is offloaded to the driver/firmware.
1696
+ * If there is no such notification from the driver, user space should
1697
+ * assume the driver supports all the AKM suites.
15801698 *
15811699 * @NL80211_ATTR_REQ_IE: (Re)association request information elements as
15821700 * sent out by the card, for ROAM and successful CONNECT events.
....@@ -1753,7 +1871,7 @@
17531871 * the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID
17541872 * is included in the probe request, but the match attributes
17551873 * will never let it go through), -EINVAL may be returned.
1756
- * If ommited, no filtering is done.
1874
+ * If omitted, no filtering is done.
17571875 *
17581876 * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported
17591877 * interface combinations. In each nested item, it contains attributes
....@@ -1858,7 +1976,7 @@
18581976 *
18591977 * @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be
18601978 * used by the drivers which has MLME in firmware and does not have support
1861
- * to report per station tx/rx activity to free up the staion entry from
1979
+ * to report per station tx/rx activity to free up the station entry from
18621980 * the list. This needs to be used when the driver advertises the
18631981 * capability to timeout the stations.
18641982 *
....@@ -1962,10 +2080,10 @@
19622080 * operation).
19632081 * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
19642082 * for the time while performing a channel switch.
1965
- * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel
1966
- * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
1967
- * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel
1968
- * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP).
2083
+ * @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel
2084
+ * switch or color change counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
2085
+ * @NL80211_ATTR_CNTDWN_OFFS_PRESP: An array of offsets (u16) to the channel
2086
+ * switch or color change counters in the probe response (%NL80211_ATTR_PROBE_RESP).
19692087 *
19702088 * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
19712089 * As specified in the &enum nl80211_rxmgmt_flags.
....@@ -1973,7 +2091,7 @@
19732091 * @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels.
19742092 *
19752093 * @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported
1976
- * supported operating classes.
2094
+ * operating classes.
19772095 *
19782096 * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space
19792097 * controls DFS operation in IBSS mode. If the flag is included in
....@@ -2219,7 +2337,7 @@
22192337 *
22202338 * @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in
22212339 * the specified band is to be adjusted before doing
2222
- * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparision to figure out
2340
+ * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparison to figure out
22232341 * better BSSs. The attribute value is a packed structure
22242342 * value as specified by &struct nl80211_bss_select_rssi_adjust.
22252343 *
....@@ -2251,10 +2369,11 @@
22512369 *
22522370 * @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with
22532371 * %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID.
2254
- * For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way
2255
- * handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is
2256
- * used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute
2257
- * specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well.
2372
+ * For %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP it is used to provide
2373
+ * PSK for offloading 4-way handshake for WPA/WPA2-PSK networks. For 802.1X
2374
+ * authentication it is used with %NL80211_CMD_SET_PMK. For offloaded FT
2375
+ * support this attribute specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME
2376
+ * is included as well.
22582377 *
22592378 * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to
22602379 * indicate that it supports multiple active scheduled scan requests.
....@@ -2284,7 +2403,7 @@
22842403 * nl80211_txq_stats)
22852404 * @NL80211_ATTR_TXQ_LIMIT: Total packet limit for the TXQ queues for this phy.
22862405 * The smaller of this and the memory limit is enforced.
2287
- * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory memory limit (in bytes) for the
2406
+ * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory limit (in bytes) for the
22882407 * TXQ queues for this phy. The smaller of this and the packet limit is
22892408 * enforced.
22902409 * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
....@@ -2294,50 +2413,50 @@
22942413 * only if %NL80211_STA_FLAG_WME is set.
22952414 *
22962415 * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
2297
- * in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
2298
- * measurement (FTM) responder functionality and containing parameters as
2299
- * possible, see &enum nl80211_ftm_responder_attr
2416
+ * in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
2417
+ * measurement (FTM) responder functionality and containing parameters as
2418
+ * possible, see &enum nl80211_ftm_responder_attr
23002419 *
23012420 * @NL80211_ATTR_FTM_RESPONDER_STATS: Nested attribute with FTM responder
2302
- * statistics, see &enum nl80211_ftm_responder_stats.
2421
+ * statistics, see &enum nl80211_ftm_responder_stats.
23032422 *
23042423 * @NL80211_ATTR_TIMEOUT: Timeout for the given operation in milliseconds (u32),
2305
- * if the attribute is not given no timeout is requested. Note that 0 is an
2306
- * invalid value.
2424
+ * if the attribute is not given no timeout is requested. Note that 0 is an
2425
+ * invalid value.
23072426 *
23082427 * @NL80211_ATTR_PEER_MEASUREMENTS: peer measurements request (and result)
2309
- * data, uses nested attributes specified in
2310
- * &enum nl80211_peer_measurement_attrs.
2311
- * This is also used for capability advertisement in the wiphy information,
2312
- * with the appropriate sub-attributes.
2428
+ * data, uses nested attributes specified in
2429
+ * &enum nl80211_peer_measurement_attrs.
2430
+ * This is also used for capability advertisement in the wiphy information,
2431
+ * with the appropriate sub-attributes.
23132432 *
23142433 * @NL80211_ATTR_AIRTIME_WEIGHT: Station's weight when scheduled by the airtime
2315
- * scheduler.
2434
+ * scheduler.
23162435 *
23172436 * @NL80211_ATTR_STA_TX_POWER_SETTING: Transmit power setting type (u8) for
2318
- * station associated with the AP. See &enum nl80211_tx_power_setting for
2319
- * possible values.
2437
+ * station associated with the AP. See &enum nl80211_tx_power_setting for
2438
+ * possible values.
23202439 * @NL80211_ATTR_STA_TX_POWER: Transmit power level (s16) in dBm units. This
2321
- * allows to set Tx power for a station. If this attribute is not included,
2322
- * the default per-interface tx power setting will be overriding. Driver
2323
- * should be picking up the lowest tx power, either tx power per-interface
2324
- * or per-station.
2440
+ * allows to set Tx power for a station. If this attribute is not included,
2441
+ * the default per-interface tx power setting will be overriding. Driver
2442
+ * should be picking up the lowest tx power, either tx power per-interface
2443
+ * or per-station.
23252444 *
23262445 * @NL80211_ATTR_SAE_PASSWORD: attribute for passing SAE password material. It
2327
- * is used with %NL80211_CMD_CONNECT to provide password for offloading
2328
- * SAE authentication for WPA3-Personal networks.
2446
+ * is used with %NL80211_CMD_CONNECT to provide password for offloading
2447
+ * SAE authentication for WPA3-Personal networks.
23292448 *
23302449 * @NL80211_ATTR_TWT_RESPONDER: Enable target wait time responder support.
23312450 *
23322451 * @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection
2333
- * functionality.
2452
+ * functionality.
23342453 *
23352454 * @NL80211_ATTR_WIPHY_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
2336
- * channel(s) that are allowed to be used for EDMG transmissions.
2337
- * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute)
2455
+ * channel(s) that are allowed to be used for EDMG transmissions.
2456
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute)
23382457 * @NL80211_ATTR_WIPHY_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
2339
- * the allowed channel bandwidth configurations. (u8 attribute)
2340
- * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
2458
+ * the allowed channel bandwidth configurations. (u8 attribute)
2459
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
23412460 *
23422461 * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
23432462 * (u16).
....@@ -2350,6 +2469,68 @@
23502469 * supported AKM suites capability per interface. AKMs advertised in
23512470 * %NL80211_ATTR_AKM_SUITES are default capabilities if AKM suites not
23522471 * advertised for a specific interface type.
2472
+ *
2473
+ * @NL80211_ATTR_TID_CONFIG: TID specific configuration in a
2474
+ * nested attribute with &enum nl80211_tid_config_attr sub-attributes;
2475
+ * on output (in wiphy attributes) it contains only the feature sub-
2476
+ * attributes.
2477
+ *
2478
+ * @NL80211_ATTR_CONTROL_PORT_NO_PREAUTH: disable preauth frame rx on control
2479
+ * port in order to forward/receive them as ordinary data frames.
2480
+ *
2481
+ * @NL80211_ATTR_PMK_LIFETIME: Maximum lifetime for PMKSA in seconds (u32,
2482
+ * dot11RSNAConfigPMKReauthThreshold; 0 is not a valid value).
2483
+ * An optional parameter configured through %NL80211_CMD_SET_PMKSA.
2484
+ * Drivers that trigger roaming need to know the lifetime of the
2485
+ * configured PMKSA for triggering the full vs. PMKSA caching based
2486
+ * authentication. This timeout helps authentication methods like SAE,
2487
+ * where PMK gets updated only by going through a full (new SAE)
2488
+ * authentication instead of getting updated during an association for EAP
2489
+ * authentication. No new full authentication within the PMK expiry shall
2490
+ * result in a disassociation at the end of the lifetime.
2491
+ *
2492
+ * @NL80211_ATTR_PMK_REAUTH_THRESHOLD: Reauthentication threshold time, in
2493
+ * terms of percentage of %NL80211_ATTR_PMK_LIFETIME
2494
+ * (u8, dot11RSNAConfigPMKReauthThreshold, 1..100). This is an optional
2495
+ * parameter configured through %NL80211_CMD_SET_PMKSA. Requests the
2496
+ * driver to trigger a full authentication roam (without PMKSA caching)
2497
+ * after the reauthentication threshold time, but before the PMK lifetime
2498
+ * has expired.
2499
+ *
2500
+ * Authentication methods like SAE need to be able to generate a new PMKSA
2501
+ * entry without having to force a disconnection after the PMK timeout. If
2502
+ * no roaming occurs between the reauth threshold and PMK expiration,
2503
+ * disassociation is still forced.
2504
+ * @NL80211_ATTR_RECEIVE_MULTICAST: multicast flag for the
2505
+ * %NL80211_CMD_REGISTER_FRAME command, see the description there.
2506
+ * @NL80211_ATTR_WIPHY_FREQ_OFFSET: offset of the associated
2507
+ * %NL80211_ATTR_WIPHY_FREQ in positive KHz. Only valid when supplied with
2508
+ * an %NL80211_ATTR_WIPHY_FREQ_OFFSET.
2509
+ * @NL80211_ATTR_CENTER_FREQ1_OFFSET: Center frequency offset in KHz for the
2510
+ * first channel segment specified in %NL80211_ATTR_CENTER_FREQ1.
2511
+ * @NL80211_ATTR_SCAN_FREQ_KHZ: nested attribute with KHz frequencies
2512
+ *
2513
+ * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from
2514
+ * association request when used with NL80211_CMD_NEW_STATION).
2515
+ *
2516
+ * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
2517
+ * discovery. It is a nested attribute, see
2518
+ * &enum nl80211_fils_discovery_attributes.
2519
+ *
2520
+ * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
2521
+ * unsolicited broadcast probe response. It is a nested attribute, see
2522
+ * &enum nl80211_unsol_bcast_probe_resp_attributes.
2523
+ *
2524
+ * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
2525
+ * association request when used with NL80211_CMD_NEW_STATION)
2526
+ * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element
2527
+ * override mask. Used with NL80211_ATTR_S1G_CAPABILITY in
2528
+ * NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT.
2529
+ *
2530
+ * @NL80211_ATTR_SAE_PWE: Indicates the mechanism(s) allowed for SAE PWE
2531
+ * derivation in WPA3-Personal networks which are using SAE authentication.
2532
+ * This is a u8 attribute that encapsulates one of the values from
2533
+ * &enum nl80211_sae_pwe_mechanism.
23532534 *
23542535 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
23552536 * @NL80211_ATTR_MAX: highest attribute number currently defined
....@@ -2657,8 +2838,8 @@
26572838 NL80211_ATTR_CH_SWITCH_COUNT,
26582839 NL80211_ATTR_CH_SWITCH_BLOCK_TX,
26592840 NL80211_ATTR_CSA_IES,
2660
- NL80211_ATTR_CSA_C_OFF_BEACON,
2661
- NL80211_ATTR_CSA_C_OFF_PRESP,
2841
+ NL80211_ATTR_CNTDWN_OFFS_BEACON,
2842
+ NL80211_ATTR_CNTDWN_OFFS_PRESP,
26622843
26632844 NL80211_ATTR_RXMGMT_FLAGS,
26642845
....@@ -2819,6 +3000,29 @@
28193000
28203001 NL80211_ATTR_IFTYPE_AKM_SUITES,
28213002
3003
+ NL80211_ATTR_TID_CONFIG,
3004
+
3005
+ NL80211_ATTR_CONTROL_PORT_NO_PREAUTH,
3006
+
3007
+ NL80211_ATTR_PMK_LIFETIME,
3008
+ NL80211_ATTR_PMK_REAUTH_THRESHOLD,
3009
+
3010
+ NL80211_ATTR_RECEIVE_MULTICAST,
3011
+ NL80211_ATTR_WIPHY_FREQ_OFFSET,
3012
+ NL80211_ATTR_CENTER_FREQ1_OFFSET,
3013
+ NL80211_ATTR_SCAN_FREQ_KHZ,
3014
+
3015
+ NL80211_ATTR_HE_6GHZ_CAPABILITY,
3016
+
3017
+ NL80211_ATTR_FILS_DISCOVERY,
3018
+
3019
+ NL80211_ATTR_UNSOL_BCAST_PROBE_RESP,
3020
+
3021
+ NL80211_ATTR_S1G_CAPABILITY,
3022
+ NL80211_ATTR_S1G_CAPABILITY_MASK,
3023
+
3024
+ NL80211_ATTR_SAE_PWE,
3025
+
28223026 /* add attributes here, update the policy in nl80211.c */
28233027
28243028 __NL80211_ATTR_AFTER_LAST,
....@@ -2831,6 +3035,8 @@
28313035 #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
28323036 #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
28333037 #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA
3038
+#define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON
3039
+#define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP
28343040
28353041 /*
28363042 * Allow user space programs to use #ifdef on new attributes by defining them
....@@ -2862,7 +3068,7 @@
28623068
28633069 #define NL80211_MAX_SUPP_RATES 32
28643070 #define NL80211_MAX_SUPP_HT_RATES 77
2865
-#define NL80211_MAX_SUPP_REG_RULES 64
3071
+#define NL80211_MAX_SUPP_REG_RULES 128
28663072 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
28673073 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
28683074 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
....@@ -3006,6 +3212,18 @@
30063212 NL80211_RATE_INFO_HE_GI_0_8,
30073213 NL80211_RATE_INFO_HE_GI_1_6,
30083214 NL80211_RATE_INFO_HE_GI_3_2,
3215
+};
3216
+
3217
+/**
3218
+ * enum nl80211_he_ltf - HE long training field
3219
+ * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec
3220
+ * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec
3221
+ * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec
3222
+ */
3223
+enum nl80211_he_ltf {
3224
+ NL80211_RATE_INFO_HE_1XLTF,
3225
+ NL80211_RATE_INFO_HE_2XLTF,
3226
+ NL80211_RATE_INFO_HE_4XLTF,
30093227 };
30103228
30113229 /**
....@@ -3187,14 +3405,23 @@
31873405 * received from the station (u64, usec)
31883406 * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
31893407 * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm)
3190
- * @NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG: avg signal strength of (data)
3191
- * ACK frame (s8, dBm)
3408
+ * @NL80211_STA_INFO_ACK_SIGNAL_AVG: avg signal strength of ACK frames (s8, dBm)
31923409 * @NL80211_STA_INFO_RX_MPDUS: total number of received packets (MPDUs)
31933410 * (u32, from this station)
31943411 * @NL80211_STA_INFO_FCS_ERROR_COUNT: total number of packets (MPDUs) received
31953412 * with an FCS error (u32, from this station). This count may not include
31963413 * some packets with an FCS error due to TA corruption. Hence this counter
31973414 * might not be fully accurate.
3415
+ * @NL80211_STA_INFO_CONNECTED_TO_GATE: set to true if STA has a path to a
3416
+ * mesh gate (u8, 0 or 1)
3417
+ * @NL80211_STA_INFO_TX_DURATION: aggregate PPDU duration for all frames
3418
+ * sent to the station (u64, usec)
3419
+ * @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
3420
+ * @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
3421
+ * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
3422
+ * of STA's association
3423
+ * @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a
3424
+ * authentication server (u8, 0 or 1)
31983425 * @__NL80211_STA_INFO_AFTER_LAST: internal
31993426 * @NL80211_STA_INFO_MAX: highest possible station info attribute
32003427 */
....@@ -3234,14 +3461,24 @@
32343461 NL80211_STA_INFO_RX_DURATION,
32353462 NL80211_STA_INFO_PAD,
32363463 NL80211_STA_INFO_ACK_SIGNAL,
3237
- NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG,
3464
+ NL80211_STA_INFO_ACK_SIGNAL_AVG,
32383465 NL80211_STA_INFO_RX_MPDUS,
32393466 NL80211_STA_INFO_FCS_ERROR_COUNT,
3467
+ NL80211_STA_INFO_CONNECTED_TO_GATE,
3468
+ NL80211_STA_INFO_TX_DURATION,
3469
+ NL80211_STA_INFO_AIRTIME_WEIGHT,
3470
+ NL80211_STA_INFO_AIRTIME_LINK_METRIC,
3471
+ NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
3472
+ NL80211_STA_INFO_CONNECTED_TO_AS,
32403473
32413474 /* keep last */
32423475 __NL80211_STA_INFO_AFTER_LAST,
32433476 NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
32443477 };
3478
+
3479
+/* we renamed this - stay compatible */
3480
+#define NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG NL80211_STA_INFO_ACK_SIGNAL_AVG
3481
+
32453482
32463483 /**
32473484 * enum nl80211_tid_stats - per TID statistics attributes
....@@ -3342,8 +3579,10 @@
33423579 * &enum nl80211_mpath_flags;
33433580 * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
33443581 * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries
3582
+ * @NL80211_MPATH_INFO_HOP_COUNT: hop count to destination
3583
+ * @NL80211_MPATH_INFO_PATH_CHANGE: total number of path changes to destination
33453584 * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number
3346
- * currently defind
3585
+ * currently defined
33473586 * @__NL80211_MPATH_INFO_AFTER_LAST: internal use
33483587 */
33493588 enum nl80211_mpath_info {
....@@ -3355,6 +3594,8 @@
33553594 NL80211_MPATH_INFO_FLAGS,
33563595 NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
33573596 NL80211_MPATH_INFO_DISCOVERY_RETRIES,
3597
+ NL80211_MPATH_INFO_HOP_COUNT,
3598
+ NL80211_MPATH_INFO_PATH_CHANGE,
33583599
33593600 /* keep last */
33603601 __NL80211_MPATH_INFO_AFTER_LAST,
....@@ -3377,6 +3618,8 @@
33773618 * defined in HE capabilities IE
33783619 * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
33793620 * defined
3621
+ * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
3622
+ * given for all 6 GHz band channels
33803623 * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
33813624 */
33823625 enum nl80211_band_iftype_attr {
....@@ -3387,6 +3630,7 @@
33873630 NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
33883631 NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
33893632 NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
3633
+ NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
33903634
33913635 /* keep last */
33923636 __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
....@@ -3411,11 +3655,11 @@
34113655 * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
34123656 * attributes from &enum nl80211_band_iftype_attr
34133657 * @NL80211_BAND_ATTR_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
3414
- * channel(s) that are allowed to be used for EDMG transmissions.
3415
- * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251.
3658
+ * channel(s) that are allowed to be used for EDMG transmissions.
3659
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251.
34163660 * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
3417
- * the allowed channel bandwidth configurations.
3418
- * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
3661
+ * the allowed channel bandwidth configurations.
3662
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
34193663 * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
34203664 * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
34213665 */
....@@ -3518,6 +3762,19 @@
35183762 * @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations.
35193763 * This is a nested attribute that contains the wmm limitation per AC.
35203764 * (see &enum nl80211_wmm_rule)
3765
+ * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
3766
+ * in current regulatory domain.
3767
+ * @NL80211_FREQUENCY_ATTR_OFFSET: frequency offset in KHz
3768
+ * @NL80211_FREQUENCY_ATTR_1MHZ: 1 MHz operation is allowed
3769
+ * on this channel in current regulatory domain.
3770
+ * @NL80211_FREQUENCY_ATTR_2MHZ: 2 MHz operation is allowed
3771
+ * on this channel in current regulatory domain.
3772
+ * @NL80211_FREQUENCY_ATTR_4MHZ: 4 MHz operation is allowed
3773
+ * on this channel in current regulatory domain.
3774
+ * @NL80211_FREQUENCY_ATTR_8MHZ: 8 MHz operation is allowed
3775
+ * on this channel in current regulatory domain.
3776
+ * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
3777
+ * on this channel in current regulatory domain.
35213778 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
35223779 * currently defined
35233780 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
....@@ -3547,6 +3804,13 @@
35473804 NL80211_FREQUENCY_ATTR_NO_20MHZ,
35483805 NL80211_FREQUENCY_ATTR_NO_10MHZ,
35493806 NL80211_FREQUENCY_ATTR_WMM,
3807
+ NL80211_FREQUENCY_ATTR_NO_HE,
3808
+ NL80211_FREQUENCY_ATTR_OFFSET,
3809
+ NL80211_FREQUENCY_ATTR_1MHZ,
3810
+ NL80211_FREQUENCY_ATTR_2MHZ,
3811
+ NL80211_FREQUENCY_ATTR_4MHZ,
3812
+ NL80211_FREQUENCY_ATTR_8MHZ,
3813
+ NL80211_FREQUENCY_ATTR_16MHZ,
35503814
35513815 /* keep last */
35523816 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
....@@ -3692,6 +3956,14 @@
36923956 * value as specified by &struct nl80211_bss_select_rssi_adjust.
36933957 * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching
36943958 * (this cannot be used together with SSID).
3959
+ * @NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI: Nested attribute that carries the
3960
+ * band specific minimum rssi thresholds for the bands defined in
3961
+ * enum nl80211_band. The minimum rssi threshold value(s32) specific to a
3962
+ * band shall be encapsulated in attribute with type value equals to one
3963
+ * of the NL80211_BAND_* defined in enum nl80211_band. For example, the
3964
+ * minimum rssi threshold value for 2.4GHZ band shall be encapsulated
3965
+ * within an attribute of type NL80211_BAND_2GHZ. And one or more of such
3966
+ * attributes will be nested within this attribute.
36953967 * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
36963968 * attribute number currently defined
36973969 * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
....@@ -3704,6 +3976,7 @@
37043976 NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
37053977 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
37063978 NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,
3979
+ NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI,
37073980
37083981 /* keep last */
37093982 __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
....@@ -3735,6 +4008,7 @@
37354008 * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
37364009 * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
37374010 * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
4011
+ * @NL80211_RRF_NO_HE: HE operation not allowed
37384012 */
37394013 enum nl80211_reg_rule_flags {
37404014 NL80211_RRF_NO_OFDM = 1<<0,
....@@ -3752,6 +4026,7 @@
37524026 NL80211_RRF_NO_HT40PLUS = 1<<14,
37534027 NL80211_RRF_NO_80MHZ = 1<<15,
37544028 NL80211_RRF_NO_160MHZ = 1<<16,
4029
+ NL80211_RRF_NO_HE = 1<<17,
37554030 };
37564031
37574032 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
....@@ -3825,8 +4100,11 @@
38254100 * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan
38264101 * (on this channel or globally)
38274102 * @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment
4103
+ * @NL80211_SURVEY_INFO_TIME_BSS_RX: amount of time the radio spent
4104
+ * receiving frames destined to the local BSS
38284105 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
38294106 * currently defined
4107
+ * @NL80211_SURVEY_INFO_FREQUENCY_OFFSET: center frequency offset in KHz
38304108 * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
38314109 */
38324110 enum nl80211_survey_info {
....@@ -3841,6 +4119,8 @@
38414119 NL80211_SURVEY_INFO_TIME_TX,
38424120 NL80211_SURVEY_INFO_TIME_SCAN,
38434121 NL80211_SURVEY_INFO_PAD,
4122
+ NL80211_SURVEY_INFO_TIME_BSS_RX,
4123
+ NL80211_SURVEY_INFO_FREQUENCY_OFFSET,
38444124
38454125 /* keep last */
38464126 __NL80211_SURVEY_INFO_AFTER_LAST,
....@@ -4021,6 +4301,21 @@
40214301 * remove it from the STA's list of peers. You may set this to 0 to disable
40224302 * the removal of the STA. Default is 30 minutes.
40234303 *
4304
+ * @NL80211_MESHCONF_CONNECTED_TO_GATE: If set to true then this mesh STA
4305
+ * will advertise that it is connected to a gate in the mesh formation
4306
+ * field. If left unset then the mesh formation field will only
4307
+ * advertise such if there is an active root mesh path.
4308
+ *
4309
+ * @NL80211_MESHCONF_NOLEARN: Try to avoid multi-hop path discovery (e.g.
4310
+ * PREQ/PREP for HWMP) if the destination is a direct neighbor. Note that
4311
+ * this might not be the optimal decision as a multi-hop route might be
4312
+ * better. So if using this setting you will likely also want to disable
4313
+ * dot11MeshForwarding and use another mesh routing protocol on top.
4314
+ *
4315
+ * @NL80211_MESHCONF_CONNECTED_TO_AS: If set to true then this mesh STA
4316
+ * will advertise that it is connected to a authentication server
4317
+ * in the mesh formation field.
4318
+ *
40244319 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
40254320 */
40264321 enum nl80211_meshconf_params {
....@@ -4053,6 +4348,9 @@
40534348 NL80211_MESHCONF_POWER_MODE,
40544349 NL80211_MESHCONF_AWAKE_WINDOW,
40554350 NL80211_MESHCONF_PLINK_TIMEOUT,
4351
+ NL80211_MESHCONF_CONNECTED_TO_GATE,
4352
+ NL80211_MESHCONF_NOLEARN,
4353
+ NL80211_MESHCONF_CONNECTED_TO_AS,
40564354
40574355 /* keep last */
40584356 __NL80211_MESHCONF_ATTR_AFTER_LAST,
....@@ -4183,6 +4481,27 @@
41834481 };
41844482
41854483 /**
4484
+ * enum nl80211_key_mode - Key mode
4485
+ *
4486
+ * @NL80211_KEY_RX_TX: (Default)
4487
+ * Key can be used for Rx and Tx immediately
4488
+ *
4489
+ * The following modes can only be selected for unicast keys and when the
4490
+ * driver supports @NL80211_EXT_FEATURE_EXT_KEY_ID:
4491
+ *
4492
+ * @NL80211_KEY_NO_TX: Only allowed in combination with @NL80211_CMD_NEW_KEY:
4493
+ * Unicast key can only be used for Rx, Tx not allowed, yet
4494
+ * @NL80211_KEY_SET_TX: Only allowed in combination with @NL80211_CMD_SET_KEY:
4495
+ * The unicast key identified by idx and mac is cleared for Tx and becomes
4496
+ * the preferred Tx key for the station.
4497
+ */
4498
+enum nl80211_key_mode {
4499
+ NL80211_KEY_RX_TX,
4500
+ NL80211_KEY_NO_TX,
4501
+ NL80211_KEY_SET_TX
4502
+};
4503
+
4504
+/**
41864505 * enum nl80211_chan_width - channel width definitions
41874506 *
41884507 * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH
....@@ -4200,6 +4519,11 @@
42004519 * attribute must be provided as well
42014520 * @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel
42024521 * @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel
4522
+ * @NL80211_CHAN_WIDTH_1: 1 MHz OFDM channel
4523
+ * @NL80211_CHAN_WIDTH_2: 2 MHz OFDM channel
4524
+ * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
4525
+ * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
4526
+ * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
42034527 */
42044528 enum nl80211_chan_width {
42054529 NL80211_CHAN_WIDTH_20_NOHT,
....@@ -4210,6 +4534,11 @@
42104534 NL80211_CHAN_WIDTH_160,
42114535 NL80211_CHAN_WIDTH_5,
42124536 NL80211_CHAN_WIDTH_10,
4537
+ NL80211_CHAN_WIDTH_1,
4538
+ NL80211_CHAN_WIDTH_2,
4539
+ NL80211_CHAN_WIDTH_4,
4540
+ NL80211_CHAN_WIDTH_8,
4541
+ NL80211_CHAN_WIDTH_16,
42134542 };
42144543
42154544 /**
....@@ -4220,11 +4549,15 @@
42204549 * @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible
42214550 * @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide
42224551 * @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide
4552
+ * @NL80211_BSS_CHAN_WIDTH_1: control channel is 1 MHz wide
4553
+ * @NL80211_BSS_CHAN_WIDTH_2: control channel is 2 MHz wide
42234554 */
42244555 enum nl80211_bss_scan_width {
42254556 NL80211_BSS_CHAN_WIDTH_20,
42264557 NL80211_BSS_CHAN_WIDTH_10,
42274558 NL80211_BSS_CHAN_WIDTH_5,
4559
+ NL80211_BSS_CHAN_WIDTH_1,
4560
+ NL80211_BSS_CHAN_WIDTH_2,
42284561 };
42294562
42304563 /**
....@@ -4276,6 +4609,7 @@
42764609 * @NL80211_BSS_CHAIN_SIGNAL: per-chain signal strength of last BSS update.
42774610 * Contains a nested array of signal strength attributes (u8, dBm),
42784611 * using the nesting index as the antenna number.
4612
+ * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
42794613 * @__NL80211_BSS_AFTER_LAST: internal
42804614 * @NL80211_BSS_MAX: highest BSS attribute
42814615 */
....@@ -4300,6 +4634,7 @@
43004634 NL80211_BSS_PARENT_TSF,
43014635 NL80211_BSS_PARENT_BSSID,
43024636 NL80211_BSS_CHAIN_SIGNAL,
4637
+ NL80211_BSS_FREQUENCY_OFFSET,
43034638
43044639 /* keep last */
43054640 __NL80211_BSS_AFTER_LAST,
....@@ -4387,6 +4722,7 @@
43874722 enum nl80211_wpa_versions {
43884723 NL80211_WPA_VERSION_1 = 1 << 0,
43894724 NL80211_WPA_VERSION_2 = 1 << 1,
4725
+ NL80211_WPA_VERSION_3 = 1 << 2,
43904726 };
43914727
43924728 /**
....@@ -4462,6 +4798,10 @@
44624798 * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
44634799 * see &struct nl80211_txrate_vht
44644800 * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi
4801
+ * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection,
4802
+ * see &struct nl80211_txrate_he
4803
+ * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
4804
+ * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
44654805 * @__NL80211_TXRATE_AFTER_LAST: internal
44664806 * @NL80211_TXRATE_MAX: highest TX rate attribute
44674807 */
....@@ -4471,6 +4811,9 @@
44714811 NL80211_TXRATE_HT,
44724812 NL80211_TXRATE_VHT,
44734813 NL80211_TXRATE_GI,
4814
+ NL80211_TXRATE_HE,
4815
+ NL80211_TXRATE_HE_GI,
4816
+ NL80211_TXRATE_HE_LTF,
44744817
44754818 /* keep last */
44764819 __NL80211_TXRATE_AFTER_LAST,
....@@ -4488,6 +4831,15 @@
44884831 __u16 mcs[NL80211_VHT_NSS_MAX];
44894832 };
44904833
4834
+#define NL80211_HE_NSS_MAX 8
4835
+/**
4836
+ * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap
4837
+ * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
4838
+ */
4839
+struct nl80211_txrate_he {
4840
+ __u16 mcs[NL80211_HE_NSS_MAX];
4841
+};
4842
+
44914843 enum nl80211_txrate_gi {
44924844 NL80211_TXRATE_DEFAULT_GI,
44934845 NL80211_TXRATE_FORCE_SGI,
....@@ -4498,7 +4850,9 @@
44984850 * enum nl80211_band - Frequency band
44994851 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
45004852 * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
4501
- * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz)
4853
+ * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
4854
+ * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
4855
+ * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
45024856 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
45034857 * since newer kernel versions may support more bands
45044858 */
....@@ -4506,6 +4860,8 @@
45064860 NL80211_BAND_2GHZ,
45074861 NL80211_BAND_5GHZ,
45084862 NL80211_BAND_60GHZ,
4863
+ NL80211_BAND_6GHZ,
4864
+ NL80211_BAND_S1GHZ,
45094865
45104866 NUM_NL80211_BANDS,
45114867 };
....@@ -4595,6 +4951,92 @@
45954951 NL80211_TX_POWER_AUTOMATIC,
45964952 NL80211_TX_POWER_LIMITED,
45974953 NL80211_TX_POWER_FIXED,
4954
+};
4955
+
4956
+/**
4957
+ * enum nl80211_tid_config - TID config state
4958
+ * @NL80211_TID_CONFIG_ENABLE: Enable config for the TID
4959
+ * @NL80211_TID_CONFIG_DISABLE: Disable config for the TID
4960
+ */
4961
+enum nl80211_tid_config {
4962
+ NL80211_TID_CONFIG_ENABLE,
4963
+ NL80211_TID_CONFIG_DISABLE,
4964
+};
4965
+
4966
+/* enum nl80211_tx_rate_setting - TX rate configuration type
4967
+ * @NL80211_TX_RATE_AUTOMATIC: automatically determine TX rate
4968
+ * @NL80211_TX_RATE_LIMITED: limit the TX rate by the TX rate parameter
4969
+ * @NL80211_TX_RATE_FIXED: fix TX rate to the TX rate parameter
4970
+ */
4971
+enum nl80211_tx_rate_setting {
4972
+ NL80211_TX_RATE_AUTOMATIC,
4973
+ NL80211_TX_RATE_LIMITED,
4974
+ NL80211_TX_RATE_FIXED,
4975
+};
4976
+
4977
+/* enum nl80211_tid_config_attr - TID specific configuration.
4978
+ * @NL80211_TID_CONFIG_ATTR_PAD: pad attribute for 64-bit values
4979
+ * @NL80211_TID_CONFIG_ATTR_VIF_SUPP: a bitmap (u64) of attributes supported
4980
+ * for per-vif configuration; doesn't list the ones that are generic
4981
+ * (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
4982
+ * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
4983
+ * per peer instead.
4984
+ * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if set indicates
4985
+ * that the new configuration overrides all previous peer
4986
+ * configurations, otherwise previous peer specific configurations
4987
+ * should be left untouched.
4988
+ * @NL80211_TID_CONFIG_ATTR_TIDS: a bitmask value of TIDs (bit 0 to 7)
4989
+ * Its type is u16.
4990
+ * @NL80211_TID_CONFIG_ATTR_NOACK: Configure ack policy for the TID.
4991
+ * specified in %NL80211_TID_CONFIG_ATTR_TID. see %enum nl80211_tid_config.
4992
+ * Its type is u8.
4993
+ * @NL80211_TID_CONFIG_ATTR_RETRY_SHORT: Number of retries used with data frame
4994
+ * transmission, user-space sets this configuration in
4995
+ * &NL80211_CMD_SET_TID_CONFIG. It is u8 type, min value is 1 and
4996
+ * the max value is advertised by the driver in this attribute on
4997
+ * output in wiphy capabilities.
4998
+ * @NL80211_TID_CONFIG_ATTR_RETRY_LONG: Number of retries used with data frame
4999
+ * transmission, user-space sets this configuration in
5000
+ * &NL80211_CMD_SET_TID_CONFIG. Its type is u8, min value is 1 and
5001
+ * the max value is advertised by the driver in this attribute on
5002
+ * output in wiphy capabilities.
5003
+ * @NL80211_TID_CONFIG_ATTR_AMPDU_CTRL: Enable/Disable MPDU aggregation
5004
+ * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS.
5005
+ * Its type is u8, using the values from &nl80211_tid_config.
5006
+ * @NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL: Enable/Disable RTS_CTS for the TIDs
5007
+ * specified in %NL80211_TID_CONFIG_ATTR_TIDS. It is u8 type, using
5008
+ * the values from &nl80211_tid_config.
5009
+ * @NL80211_TID_CONFIG_ATTR_AMSDU_CTRL: Enable/Disable MSDU aggregation
5010
+ * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS.
5011
+ * Its type is u8, using the values from &nl80211_tid_config.
5012
+ * @NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE: This attribute will be useful
5013
+ * to notfiy the driver that what type of txrate should be used
5014
+ * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS. using
5015
+ * the values form &nl80211_tx_rate_setting.
5016
+ * @NL80211_TID_CONFIG_ATTR_TX_RATE: Data frame TX rate mask should be applied
5017
+ * with the parameters passed through %NL80211_ATTR_TX_RATES.
5018
+ * configuration is applied to the data frame for the tid to that connected
5019
+ * station.
5020
+ */
5021
+enum nl80211_tid_config_attr {
5022
+ __NL80211_TID_CONFIG_ATTR_INVALID,
5023
+ NL80211_TID_CONFIG_ATTR_PAD,
5024
+ NL80211_TID_CONFIG_ATTR_VIF_SUPP,
5025
+ NL80211_TID_CONFIG_ATTR_PEER_SUPP,
5026
+ NL80211_TID_CONFIG_ATTR_OVERRIDE,
5027
+ NL80211_TID_CONFIG_ATTR_TIDS,
5028
+ NL80211_TID_CONFIG_ATTR_NOACK,
5029
+ NL80211_TID_CONFIG_ATTR_RETRY_SHORT,
5030
+ NL80211_TID_CONFIG_ATTR_RETRY_LONG,
5031
+ NL80211_TID_CONFIG_ATTR_AMPDU_CTRL,
5032
+ NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL,
5033
+ NL80211_TID_CONFIG_ATTR_AMSDU_CTRL,
5034
+ NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE,
5035
+ NL80211_TID_CONFIG_ATTR_TX_RATE,
5036
+
5037
+ /* keep last */
5038
+ __NL80211_TID_CONFIG_ATTR_AFTER_LAST,
5039
+ NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1
45985040 };
45995041
46005042 /**
....@@ -4991,7 +5433,7 @@
49915433 * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
49925434 * => allows a STA plus three P2P interfaces
49935435 *
4994
- * The list of these four possiblities could completely be contained
5436
+ * The list of these four possibilities could completely be contained
49955437 * within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate
49965438 * that any of these groups must match.
49975439 *
....@@ -5021,7 +5463,7 @@
50215463 * enum nl80211_plink_state - state of a mesh peer link finite state machine
50225464 *
50235465 * @NL80211_PLINK_LISTEN: initial state, considered the implicit
5024
- * state of non existant mesh peer links
5466
+ * state of non existent mesh peer links
50255467 * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to
50265468 * this mesh peer
50275469 * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received
....@@ -5068,6 +5510,8 @@
50685510
50695511 #define NL80211_KCK_LEN 16
50705512 #define NL80211_KEK_LEN 16
5513
+#define NL80211_KCK_EXT_LEN 24
5514
+#define NL80211_KEK_EXT_LEN 32
50715515 #define NL80211_REPLAY_CTR_LEN 8
50725516
50735517 /**
....@@ -5076,6 +5520,7 @@
50765520 * @NL80211_REKEY_DATA_KEK: key encryption key (binary)
50775521 * @NL80211_REKEY_DATA_KCK: key confirmation key (binary)
50785522 * @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary)
5523
+ * @NL80211_REKEY_DATA_AKM: AKM data (OUI, suite type)
50795524 * @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal)
50805525 * @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal)
50815526 */
....@@ -5084,6 +5529,7 @@
50845529 NL80211_REKEY_DATA_KEK,
50855530 NL80211_REKEY_DATA_KCK,
50865531 NL80211_REKEY_DATA_REPLAY_CTR,
5532
+ NL80211_REKEY_DATA_AKM,
50875533
50885534 /* keep last */
50895535 NUM_NL80211_REKEY_DATA,
....@@ -5297,14 +5743,14 @@
52975743 NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
52985744 NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
52995745 NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
5300
- NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
5746
+ NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1U << 31,
53015747 };
53025748
53035749 /**
53045750 * enum nl80211_ext_feature_index - bit index of extended features.
53055751 * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates.
53065752 * @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can
5307
- * can request to use RRM (see %NL80211_ATTR_USE_RRM) with
5753
+ * request to use RRM (see %NL80211_ATTR_USE_RRM) with
53085754 * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
53095755 * the ASSOC_REQ_USE_RRM flag in the association request even if
53105756 * NL80211_FEATURE_QUIET is not advertized.
....@@ -5373,9 +5819,8 @@
53735819 * "radar detected" event.
53745820 * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and
53755821 * receiving control port frames over nl80211 instead of the netdevice.
5376
- * @NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT: This Driver support data ack
5377
- * rssi if firmware support, this flag is to intimate about ack rssi
5378
- * support to nl80211.
5822
+ * @NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT: This driver/device supports
5823
+ * (average) ACK signal strength reporting.
53795824 * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
53805825 * TXQs.
53815826 * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
....@@ -5387,9 +5832,11 @@
53875832 * timing measurement responder role.
53885833 *
53895834 * @NL80211_EXT_FEATURE_CAN_REPLACE_PTK0: Driver/device confirm that they are
5390
- * able to rekey an in-use key correctly. Userspace must not rekey PTK keys
5391
- * if this flag is not set. Ignoring this can leak clear text packets and/or
5392
- * freeze the connection.
5835
+ * able to rekey an in-use key correctly. Userspace must not rekey PTK keys
5836
+ * if this flag is not set. Ignoring this can leak clear text packets and/or
5837
+ * freeze the connection.
5838
+ * @NL80211_EXT_FEATURE_EXT_KEY_ID: Driver supports "Extended Key ID for
5839
+ * Individually Addressed Frames" from IEEE802.11-2016.
53935840 *
53945841 * @NL80211_EXT_FEATURE_AIRTIME_FAIRNESS: Driver supports getting airtime
53955842 * fairness for transmitted packets and has enabled airtime fairness
....@@ -5417,6 +5864,44 @@
54175864 *
54185865 * @NL80211_EXT_FEATURE_BEACON_PROTECTION: The driver supports Beacon protection
54195866 * and can receive key configuration for BIGTK using key indexes 6 and 7.
5867
+ * @NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT: The driver supports Beacon
5868
+ * protection as a client only and cannot transmit protected beacons.
5869
+ *
5870
+ * @NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH: The driver can disable the
5871
+ * forwarding of preauth frames over the control port. They are then
5872
+ * handled as ordinary data frames.
5873
+ *
5874
+ * @NL80211_EXT_FEATURE_PROTECTED_TWT: Driver supports protected TWT frames
5875
+ *
5876
+ * @NL80211_EXT_FEATURE_DEL_IBSS_STA: The driver supports removing stations
5877
+ * in IBSS mode, essentially by dropping their state.
5878
+ *
5879
+ * @NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS: management frame registrations
5880
+ * are possible for multicast frames and those will be reported properly.
5881
+ *
5882
+ * @NL80211_EXT_FEATURE_SCAN_FREQ_KHZ: This driver supports receiving and
5883
+ * reporting scan request with %NL80211_ATTR_SCAN_FREQ_KHZ. In order to
5884
+ * report %NL80211_ATTR_SCAN_FREQ_KHZ, %NL80211_SCAN_FLAG_FREQ_KHZ must be
5885
+ * included in the scan request.
5886
+ *
5887
+ * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver
5888
+ * can report tx status for control port over nl80211 tx operations.
5889
+ *
5890
+ * @NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION: Driver supports Operating
5891
+ * Channel Validation (OCV) when using driver's SME for RSNA handshakes.
5892
+ *
5893
+ * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK: Device wants to do 4-way
5894
+ * handshake with PSK in AP mode (PSK is passed as part of the start AP
5895
+ * command).
5896
+ *
5897
+ * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication
5898
+ * in AP mode (SAE password is passed as part of the start AP command).
5899
+ *
5900
+ * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery
5901
+ * frames transmission
5902
+ *
5903
+ * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports
5904
+ * unsolicited broadcast probe response transmission
54205905 *
54215906 * @NUM_NL80211_EXT_FEATURES: number of extended features.
54225907 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
....@@ -5449,7 +5934,9 @@
54495934 NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,
54505935 NL80211_EXT_FEATURE_DFS_OFFLOAD,
54515936 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
5452
- NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT,
5937
+ NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT,
5938
+ /* we renamed this - stay compatible */
5939
+ NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT,
54535940 NL80211_EXT_FEATURE_TXQS,
54545941 NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
54555942 NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
....@@ -5464,6 +5951,18 @@
54645951 NL80211_EXT_FEATURE_VLAN_OFFLOAD,
54655952 NL80211_EXT_FEATURE_AQL,
54665953 NL80211_EXT_FEATURE_BEACON_PROTECTION,
5954
+ NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH,
5955
+ NL80211_EXT_FEATURE_PROTECTED_TWT,
5956
+ NL80211_EXT_FEATURE_DEL_IBSS_STA,
5957
+ NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS,
5958
+ NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
5959
+ NL80211_EXT_FEATURE_SCAN_FREQ_KHZ,
5960
+ NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
5961
+ NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
5962
+ NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
5963
+ NL80211_EXT_FEATURE_SAE_OFFLOAD_AP,
5964
+ NL80211_EXT_FEATURE_FILS_DISCOVERY,
5965
+ NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
54675966
54685967 /* add new features before the definition below */
54695968 NUM_NL80211_EXT_FEATURES,
....@@ -5548,7 +6047,7 @@
55486047 * request parameters IE in the probe request
55496048 * @NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP: accept broadcast probe responses
55506049 * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE: send probe request frames at
5551
- * rate of at least 5.5M. In case non OCE AP is dicovered in the channel,
6050
+ * rate of at least 5.5M. In case non OCE AP is discovered in the channel,
55526051 * only the first probe req in the channel will be sent in high rate.
55536052 * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION: allow probe request
55546053 * tx deferral (dot11FILSProbeDelay shall be set to 15ms)
....@@ -5575,6 +6074,11 @@
55756074 * @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to
55766075 * only have supported rates and no additional capabilities (unless
55776076 * added by userspace explicitly.)
6077
+ * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with
6078
+ * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means
6079
+ * %NL80211_ATTR_SCAN_FREQUENCIES will not be included.
6080
+ * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by
6081
+ * 2.4/5 GHz APs
55786082 */
55796083 enum nl80211_scan_flags {
55806084 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
....@@ -5590,6 +6094,8 @@
55906094 NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
55916095 NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
55926096 NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
6097
+ NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13,
6098
+ NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14,
55936099 };
55946100
55956101 /**
....@@ -5677,7 +6183,7 @@
56776183 };
56786184
56796185 /**
5680
- * enum enum nl80211_protocol_features - nl80211 protocol features
6186
+ * enum nl80211_protocol_features - nl80211 protocol features
56816187 * @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting
56826188 * wiphy dumps (if requested by the application with the attribute
56836189 * %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the
....@@ -6009,6 +6515,539 @@
60096515 };
60106516
60116517 /**
6518
+ * enum nl80211_ftm_responder_attributes - fine timing measurement
6519
+ * responder attributes
6520
+ * @__NL80211_FTM_RESP_ATTR_INVALID: Invalid
6521
+ * @NL80211_FTM_RESP_ATTR_ENABLED: FTM responder is enabled
6522
+ * @NL80211_FTM_RESP_ATTR_LCI: The content of Measurement Report Element
6523
+ * (9.4.2.22 in 802.11-2016) with type 8 - LCI (9.4.2.22.10),
6524
+ * i.e. starting with the measurement token
6525
+ * @NL80211_FTM_RESP_ATTR_CIVIC: The content of Measurement Report Element
6526
+ * (9.4.2.22 in 802.11-2016) with type 11 - Civic (Section 9.4.2.22.13),
6527
+ * i.e. starting with the measurement token
6528
+ * @__NL80211_FTM_RESP_ATTR_LAST: Internal
6529
+ * @NL80211_FTM_RESP_ATTR_MAX: highest FTM responder attribute.
6530
+ */
6531
+enum nl80211_ftm_responder_attributes {
6532
+ __NL80211_FTM_RESP_ATTR_INVALID,
6533
+
6534
+ NL80211_FTM_RESP_ATTR_ENABLED,
6535
+ NL80211_FTM_RESP_ATTR_LCI,
6536
+ NL80211_FTM_RESP_ATTR_CIVICLOC,
6537
+
6538
+ /* keep last */
6539
+ __NL80211_FTM_RESP_ATTR_LAST,
6540
+ NL80211_FTM_RESP_ATTR_MAX = __NL80211_FTM_RESP_ATTR_LAST - 1,
6541
+};
6542
+
6543
+/*
6544
+ * enum nl80211_ftm_responder_stats - FTM responder statistics
6545
+ *
6546
+ * These attribute types are used with %NL80211_ATTR_FTM_RESPONDER_STATS
6547
+ * when getting FTM responder statistics.
6548
+ *
6549
+ * @__NL80211_FTM_STATS_INVALID: attribute number 0 is reserved
6550
+ * @NL80211_FTM_STATS_SUCCESS_NUM: number of FTM sessions in which all frames
6551
+ * were ssfully answered (u32)
6552
+ * @NL80211_FTM_STATS_PARTIAL_NUM: number of FTM sessions in which part of the
6553
+ * frames were successfully answered (u32)
6554
+ * @NL80211_FTM_STATS_FAILED_NUM: number of failed FTM sessions (u32)
6555
+ * @NL80211_FTM_STATS_ASAP_NUM: number of ASAP sessions (u32)
6556
+ * @NL80211_FTM_STATS_NON_ASAP_NUM: number of non-ASAP sessions (u32)
6557
+ * @NL80211_FTM_STATS_TOTAL_DURATION_MSEC: total sessions durations - gives an
6558
+ * indication of how much time the responder was busy (u64, msec)
6559
+ * @NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM: number of unknown FTM triggers -
6560
+ * triggers from initiators that didn't finish successfully the negotiation
6561
+ * phase with the responder (u32)
6562
+ * @NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM: number of FTM reschedule requests
6563
+ * - initiator asks for a new scheduling although it already has scheduled
6564
+ * FTM slot (u32)
6565
+ * @NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM: number of FTM triggers out of
6566
+ * scheduled window (u32)
6567
+ * @NL80211_FTM_STATS_PAD: used for padding, ignore
6568
+ * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal
6569
+ * @NL80211_FTM_STATS_MAX: highest possible FTM responder stats attribute
6570
+ */
6571
+enum nl80211_ftm_responder_stats {
6572
+ __NL80211_FTM_STATS_INVALID,
6573
+ NL80211_FTM_STATS_SUCCESS_NUM,
6574
+ NL80211_FTM_STATS_PARTIAL_NUM,
6575
+ NL80211_FTM_STATS_FAILED_NUM,
6576
+ NL80211_FTM_STATS_ASAP_NUM,
6577
+ NL80211_FTM_STATS_NON_ASAP_NUM,
6578
+ NL80211_FTM_STATS_TOTAL_DURATION_MSEC,
6579
+ NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM,
6580
+ NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM,
6581
+ NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM,
6582
+ NL80211_FTM_STATS_PAD,
6583
+
6584
+ /* keep last */
6585
+ __NL80211_FTM_STATS_AFTER_LAST,
6586
+ NL80211_FTM_STATS_MAX = __NL80211_FTM_STATS_AFTER_LAST - 1
6587
+};
6588
+
6589
+/**
6590
+ * enum nl80211_preamble - frame preamble types
6591
+ * @NL80211_PREAMBLE_LEGACY: legacy (HR/DSSS, OFDM, ERP PHY) preamble
6592
+ * @NL80211_PREAMBLE_HT: HT preamble
6593
+ * @NL80211_PREAMBLE_VHT: VHT preamble
6594
+ * @NL80211_PREAMBLE_DMG: DMG preamble
6595
+ * @NL80211_PREAMBLE_HE: HE preamble
6596
+ */
6597
+enum nl80211_preamble {
6598
+ NL80211_PREAMBLE_LEGACY,
6599
+ NL80211_PREAMBLE_HT,
6600
+ NL80211_PREAMBLE_VHT,
6601
+ NL80211_PREAMBLE_DMG,
6602
+ NL80211_PREAMBLE_HE,
6603
+};
6604
+
6605
+/**
6606
+ * enum nl80211_peer_measurement_type - peer measurement types
6607
+ * @NL80211_PMSR_TYPE_INVALID: invalid/unused, needed as we use
6608
+ * these numbers also for attributes
6609
+ *
6610
+ * @NL80211_PMSR_TYPE_FTM: flight time measurement
6611
+ *
6612
+ * @NUM_NL80211_PMSR_TYPES: internal
6613
+ * @NL80211_PMSR_TYPE_MAX: highest type number
6614
+ */
6615
+enum nl80211_peer_measurement_type {
6616
+ NL80211_PMSR_TYPE_INVALID,
6617
+
6618
+ NL80211_PMSR_TYPE_FTM,
6619
+
6620
+ NUM_NL80211_PMSR_TYPES,
6621
+ NL80211_PMSR_TYPE_MAX = NUM_NL80211_PMSR_TYPES - 1
6622
+};
6623
+
6624
+/**
6625
+ * enum nl80211_peer_measurement_status - peer measurement status
6626
+ * @NL80211_PMSR_STATUS_SUCCESS: measurement completed successfully
6627
+ * @NL80211_PMSR_STATUS_REFUSED: measurement was locally refused
6628
+ * @NL80211_PMSR_STATUS_TIMEOUT: measurement timed out
6629
+ * @NL80211_PMSR_STATUS_FAILURE: measurement failed, a type-dependent
6630
+ * reason may be available in the response data
6631
+ */
6632
+enum nl80211_peer_measurement_status {
6633
+ NL80211_PMSR_STATUS_SUCCESS,
6634
+ NL80211_PMSR_STATUS_REFUSED,
6635
+ NL80211_PMSR_STATUS_TIMEOUT,
6636
+ NL80211_PMSR_STATUS_FAILURE,
6637
+};
6638
+
6639
+/**
6640
+ * enum nl80211_peer_measurement_req - peer measurement request attributes
6641
+ * @__NL80211_PMSR_REQ_ATTR_INVALID: invalid
6642
+ *
6643
+ * @NL80211_PMSR_REQ_ATTR_DATA: This is a nested attribute with measurement
6644
+ * type-specific request data inside. The attributes used are from the
6645
+ * enums named nl80211_peer_measurement_<type>_req.
6646
+ * @NL80211_PMSR_REQ_ATTR_GET_AP_TSF: include AP TSF timestamp, if supported
6647
+ * (flag attribute)
6648
+ *
6649
+ * @NUM_NL80211_PMSR_REQ_ATTRS: internal
6650
+ * @NL80211_PMSR_REQ_ATTR_MAX: highest attribute number
6651
+ */
6652
+enum nl80211_peer_measurement_req {
6653
+ __NL80211_PMSR_REQ_ATTR_INVALID,
6654
+
6655
+ NL80211_PMSR_REQ_ATTR_DATA,
6656
+ NL80211_PMSR_REQ_ATTR_GET_AP_TSF,
6657
+
6658
+ /* keep last */
6659
+ NUM_NL80211_PMSR_REQ_ATTRS,
6660
+ NL80211_PMSR_REQ_ATTR_MAX = NUM_NL80211_PMSR_REQ_ATTRS - 1
6661
+};
6662
+
6663
+/**
6664
+ * enum nl80211_peer_measurement_resp - peer measurement response attributes
6665
+ * @__NL80211_PMSR_RESP_ATTR_INVALID: invalid
6666
+ *
6667
+ * @NL80211_PMSR_RESP_ATTR_DATA: This is a nested attribute with measurement
6668
+ * type-specific results inside. The attributes used are from the enums
6669
+ * named nl80211_peer_measurement_<type>_resp.
6670
+ * @NL80211_PMSR_RESP_ATTR_STATUS: u32 value with the measurement status
6671
+ * (using values from &enum nl80211_peer_measurement_status.)
6672
+ * @NL80211_PMSR_RESP_ATTR_HOST_TIME: host time (%CLOCK_BOOTTIME) when the
6673
+ * result was measured; this value is not expected to be accurate to
6674
+ * more than 20ms. (u64, nanoseconds)
6675
+ * @NL80211_PMSR_RESP_ATTR_AP_TSF: TSF of the AP that the interface
6676
+ * doing the measurement is connected to when the result was measured.
6677
+ * This shall be accurately reported if supported and requested
6678
+ * (u64, usec)
6679
+ * @NL80211_PMSR_RESP_ATTR_FINAL: If results are sent to the host partially
6680
+ * (*e.g. with FTM per-burst data) this flag will be cleared on all but
6681
+ * the last result; if all results are combined it's set on the single
6682
+ * result.
6683
+ * @NL80211_PMSR_RESP_ATTR_PAD: padding for 64-bit attributes, ignore
6684
+ *
6685
+ * @NUM_NL80211_PMSR_RESP_ATTRS: internal
6686
+ * @NL80211_PMSR_RESP_ATTR_MAX: highest attribute number
6687
+ */
6688
+enum nl80211_peer_measurement_resp {
6689
+ __NL80211_PMSR_RESP_ATTR_INVALID,
6690
+
6691
+ NL80211_PMSR_RESP_ATTR_DATA,
6692
+ NL80211_PMSR_RESP_ATTR_STATUS,
6693
+ NL80211_PMSR_RESP_ATTR_HOST_TIME,
6694
+ NL80211_PMSR_RESP_ATTR_AP_TSF,
6695
+ NL80211_PMSR_RESP_ATTR_FINAL,
6696
+ NL80211_PMSR_RESP_ATTR_PAD,
6697
+
6698
+ /* keep last */
6699
+ NUM_NL80211_PMSR_RESP_ATTRS,
6700
+ NL80211_PMSR_RESP_ATTR_MAX = NUM_NL80211_PMSR_RESP_ATTRS - 1
6701
+};
6702
+
6703
+/**
6704
+ * enum nl80211_peer_measurement_peer_attrs - peer attributes for measurement
6705
+ * @__NL80211_PMSR_PEER_ATTR_INVALID: invalid
6706
+ *
6707
+ * @NL80211_PMSR_PEER_ATTR_ADDR: peer's MAC address
6708
+ * @NL80211_PMSR_PEER_ATTR_CHAN: channel definition, nested, using top-level
6709
+ * attributes like %NL80211_ATTR_WIPHY_FREQ etc.
6710
+ * @NL80211_PMSR_PEER_ATTR_REQ: This is a nested attribute indexed by
6711
+ * measurement type, with attributes from the
6712
+ * &enum nl80211_peer_measurement_req inside.
6713
+ * @NL80211_PMSR_PEER_ATTR_RESP: This is a nested attribute indexed by
6714
+ * measurement type, with attributes from the
6715
+ * &enum nl80211_peer_measurement_resp inside.
6716
+ *
6717
+ * @NUM_NL80211_PMSR_PEER_ATTRS: internal
6718
+ * @NL80211_PMSR_PEER_ATTR_MAX: highest attribute number
6719
+ */
6720
+enum nl80211_peer_measurement_peer_attrs {
6721
+ __NL80211_PMSR_PEER_ATTR_INVALID,
6722
+
6723
+ NL80211_PMSR_PEER_ATTR_ADDR,
6724
+ NL80211_PMSR_PEER_ATTR_CHAN,
6725
+ NL80211_PMSR_PEER_ATTR_REQ,
6726
+ NL80211_PMSR_PEER_ATTR_RESP,
6727
+
6728
+ /* keep last */
6729
+ NUM_NL80211_PMSR_PEER_ATTRS,
6730
+ NL80211_PMSR_PEER_ATTR_MAX = NUM_NL80211_PMSR_PEER_ATTRS - 1,
6731
+};
6732
+
6733
+/**
6734
+ * enum nl80211_peer_measurement_attrs - peer measurement attributes
6735
+ * @__NL80211_PMSR_ATTR_INVALID: invalid
6736
+ *
6737
+ * @NL80211_PMSR_ATTR_MAX_PEERS: u32 attribute used for capability
6738
+ * advertisement only, indicates the maximum number of peers
6739
+ * measurements can be done with in a single request
6740
+ * @NL80211_PMSR_ATTR_REPORT_AP_TSF: flag attribute in capability
6741
+ * indicating that the connected AP's TSF can be reported in
6742
+ * measurement results
6743
+ * @NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR: flag attribute in capability
6744
+ * indicating that MAC address randomization is supported.
6745
+ * @NL80211_PMSR_ATTR_TYPE_CAPA: capabilities reported by the device,
6746
+ * this contains a nesting indexed by measurement type, and
6747
+ * type-specific capabilities inside, which are from the enums
6748
+ * named nl80211_peer_measurement_<type>_capa.
6749
+ * @NL80211_PMSR_ATTR_PEERS: nested attribute, the nesting index is
6750
+ * meaningless, just a list of peers to measure with, with the
6751
+ * sub-attributes taken from
6752
+ * &enum nl80211_peer_measurement_peer_attrs.
6753
+ *
6754
+ * @NUM_NL80211_PMSR_ATTR: internal
6755
+ * @NL80211_PMSR_ATTR_MAX: highest attribute number
6756
+ */
6757
+enum nl80211_peer_measurement_attrs {
6758
+ __NL80211_PMSR_ATTR_INVALID,
6759
+
6760
+ NL80211_PMSR_ATTR_MAX_PEERS,
6761
+ NL80211_PMSR_ATTR_REPORT_AP_TSF,
6762
+ NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR,
6763
+ NL80211_PMSR_ATTR_TYPE_CAPA,
6764
+ NL80211_PMSR_ATTR_PEERS,
6765
+
6766
+ /* keep last */
6767
+ NUM_NL80211_PMSR_ATTR,
6768
+ NL80211_PMSR_ATTR_MAX = NUM_NL80211_PMSR_ATTR - 1
6769
+};
6770
+
6771
+/**
6772
+ * enum nl80211_peer_measurement_ftm_capa - FTM capabilities
6773
+ * @__NL80211_PMSR_FTM_CAPA_ATTR_INVALID: invalid
6774
+ *
6775
+ * @NL80211_PMSR_FTM_CAPA_ATTR_ASAP: flag attribute indicating ASAP mode
6776
+ * is supported
6777
+ * @NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP: flag attribute indicating non-ASAP
6778
+ * mode is supported
6779
+ * @NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI: flag attribute indicating if LCI
6780
+ * data can be requested during the measurement
6781
+ * @NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC: flag attribute indicating if civic
6782
+ * location data can be requested during the measurement
6783
+ * @NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES: u32 bitmap attribute of bits
6784
+ * from &enum nl80211_preamble.
6785
+ * @NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS: bitmap of values from
6786
+ * &enum nl80211_chan_width indicating the supported channel
6787
+ * bandwidths for FTM. Note that a higher channel bandwidth may be
6788
+ * configured to allow for other measurements types with different
6789
+ * bandwidth requirement in the same measurement.
6790
+ * @NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT: u32 attribute indicating
6791
+ * the maximum bursts exponent that can be used (if not present anything
6792
+ * is valid)
6793
+ * @NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST: u32 attribute indicating
6794
+ * the maximum FTMs per burst (if not present anything is valid)
6795
+ * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
6796
+ * trigger based ranging measurement is supported
6797
+ * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
6798
+ * if non trigger based ranging measurement is supported
6799
+ *
6800
+ * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
6801
+ * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
6802
+ */
6803
+enum nl80211_peer_measurement_ftm_capa {
6804
+ __NL80211_PMSR_FTM_CAPA_ATTR_INVALID,
6805
+
6806
+ NL80211_PMSR_FTM_CAPA_ATTR_ASAP,
6807
+ NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP,
6808
+ NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI,
6809
+ NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC,
6810
+ NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES,
6811
+ NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS,
6812
+ NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT,
6813
+ NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
6814
+ NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED,
6815
+ NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED,
6816
+
6817
+ /* keep last */
6818
+ NUM_NL80211_PMSR_FTM_CAPA_ATTR,
6819
+ NL80211_PMSR_FTM_CAPA_ATTR_MAX = NUM_NL80211_PMSR_FTM_CAPA_ATTR - 1
6820
+};
6821
+
6822
+/**
6823
+ * enum nl80211_peer_measurement_ftm_req - FTM request attributes
6824
+ * @__NL80211_PMSR_FTM_REQ_ATTR_INVALID: invalid
6825
+ *
6826
+ * @NL80211_PMSR_FTM_REQ_ATTR_ASAP: ASAP mode requested (flag)
6827
+ * @NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE: preamble type (see
6828
+ * &enum nl80211_preamble), optional for DMG (u32)
6829
+ * @NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP: number of bursts exponent as in
6830
+ * 802.11-2016 9.4.2.168 "Fine Timing Measurement Parameters element"
6831
+ * (u8, 0-15, optional with default 15 i.e. "no preference")
6832
+ * @NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD: interval between bursts in units
6833
+ * of 100ms (u16, optional with default 0)
6834
+ * @NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION: burst duration, as in 802.11-2016
6835
+ * Table 9-257 "Burst Duration field encoding" (u8, 0-15, optional with
6836
+ * default 15 i.e. "no preference")
6837
+ * @NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST: number of successful FTM frames
6838
+ * requested per burst
6839
+ * (u8, 0-31, optional with default 0 i.e. "no preference")
6840
+ * @NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES: number of FTMR frame retries
6841
+ * (u8, default 3)
6842
+ * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag)
6843
+ * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC: request civic location data
6844
+ * (flag)
6845
+ * @NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED: request trigger based ranging
6846
+ * measurement (flag).
6847
+ * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED are
6848
+ * mutually exclusive.
6849
+ * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
6850
+ * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
6851
+ * ranging will be used.
6852
+ * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
6853
+ * ranging measurement (flag)
6854
+ * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
6855
+ * mutually exclusive.
6856
+ * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
6857
+ * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
6858
+ * ranging will be used.
6859
+ *
6860
+ * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
6861
+ * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
6862
+ */
6863
+enum nl80211_peer_measurement_ftm_req {
6864
+ __NL80211_PMSR_FTM_REQ_ATTR_INVALID,
6865
+
6866
+ NL80211_PMSR_FTM_REQ_ATTR_ASAP,
6867
+ NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE,
6868
+ NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP,
6869
+ NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD,
6870
+ NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION,
6871
+ NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST,
6872
+ NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES,
6873
+ NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI,
6874
+ NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
6875
+ NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
6876
+ NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
6877
+
6878
+ /* keep last */
6879
+ NUM_NL80211_PMSR_FTM_REQ_ATTR,
6880
+ NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
6881
+};
6882
+
6883
+/**
6884
+ * enum nl80211_peer_measurement_ftm_failure_reasons - FTM failure reasons
6885
+ * @NL80211_PMSR_FTM_FAILURE_UNSPECIFIED: unspecified failure, not used
6886
+ * @NL80211_PMSR_FTM_FAILURE_NO_RESPONSE: no response from the FTM responder
6887
+ * @NL80211_PMSR_FTM_FAILURE_REJECTED: FTM responder rejected measurement
6888
+ * @NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL: we already know the peer is
6889
+ * on a different channel, so can't measure (if we didn't know, we'd
6890
+ * try and get no response)
6891
+ * @NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE: peer can't actually do FTM
6892
+ * @NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP: invalid T1/T4 timestamps
6893
+ * received
6894
+ * @NL80211_PMSR_FTM_FAILURE_PEER_BUSY: peer reports busy, you may retry
6895
+ * later (see %NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME)
6896
+ * @NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS: parameters were changed
6897
+ * by the peer and are no longer supported
6898
+ */
6899
+enum nl80211_peer_measurement_ftm_failure_reasons {
6900
+ NL80211_PMSR_FTM_FAILURE_UNSPECIFIED,
6901
+ NL80211_PMSR_FTM_FAILURE_NO_RESPONSE,
6902
+ NL80211_PMSR_FTM_FAILURE_REJECTED,
6903
+ NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL,
6904
+ NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE,
6905
+ NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP,
6906
+ NL80211_PMSR_FTM_FAILURE_PEER_BUSY,
6907
+ NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS,
6908
+};
6909
+
6910
+/**
6911
+ * enum nl80211_peer_measurement_ftm_resp - FTM response attributes
6912
+ * @__NL80211_PMSR_FTM_RESP_ATTR_INVALID: invalid
6913
+ *
6914
+ * @NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON: FTM-specific failure reason
6915
+ * (u32, optional)
6916
+ * @NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX: optional, if bursts are reported
6917
+ * as separate results then it will be the burst index 0...(N-1) and
6918
+ * the top level will indicate partial results (u32)
6919
+ * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS: number of FTM Request frames
6920
+ * transmitted (u32, optional)
6921
+ * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES: number of FTM Request frames
6922
+ * that were acknowleged (u32, optional)
6923
+ * @NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME: retry time received from the
6924
+ * busy peer (u32, seconds)
6925
+ * @NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP: actual number of bursts exponent
6926
+ * used by the responder (similar to request, u8)
6927
+ * @NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION: actual burst duration used by
6928
+ * the responder (similar to request, u8)
6929
+ * @NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST: actual FTMs per burst used
6930
+ * by the responder (similar to request, u8)
6931
+ * @NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG: average RSSI across all FTM action
6932
+ * frames (optional, s32, 1/2 dBm)
6933
+ * @NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD: RSSI spread across all FTM action
6934
+ * frames (optional, s32, 1/2 dBm)
6935
+ * @NL80211_PMSR_FTM_RESP_ATTR_TX_RATE: bitrate we used for the response to the
6936
+ * FTM action frame (optional, nested, using &enum nl80211_rate_info
6937
+ * attributes)
6938
+ * @NL80211_PMSR_FTM_RESP_ATTR_RX_RATE: bitrate the responder used for the FTM
6939
+ * action frame (optional, nested, using &enum nl80211_rate_info attrs)
6940
+ * @NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG: average RTT (s64, picoseconds, optional
6941
+ * but one of RTT/DIST must be present)
6942
+ * @NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE: RTT variance (u64, ps^2, note that
6943
+ * standard deviation is the square root of variance, optional)
6944
+ * @NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD: RTT spread (u64, picoseconds,
6945
+ * optional)
6946
+ * @NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG: average distance (s64, mm, optional
6947
+ * but one of RTT/DIST must be present)
6948
+ * @NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE: distance variance (u64, mm^2, note
6949
+ * that standard deviation is the square root of variance, optional)
6950
+ * @NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD: distance spread (u64, mm, optional)
6951
+ * @NL80211_PMSR_FTM_RESP_ATTR_LCI: LCI data from peer (binary, optional);
6952
+ * this is the contents of the Measurement Report Element (802.11-2016
6953
+ * 9.4.2.22.1) starting with the Measurement Token, with Measurement
6954
+ * Type 8.
6955
+ * @NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC: civic location data from peer
6956
+ * (binary, optional);
6957
+ * this is the contents of the Measurement Report Element (802.11-2016
6958
+ * 9.4.2.22.1) starting with the Measurement Token, with Measurement
6959
+ * Type 11.
6960
+ * @NL80211_PMSR_FTM_RESP_ATTR_PAD: ignore, for u64/s64 padding only
6961
+ *
6962
+ * @NUM_NL80211_PMSR_FTM_RESP_ATTR: internal
6963
+ * @NL80211_PMSR_FTM_RESP_ATTR_MAX: highest attribute number
6964
+ */
6965
+enum nl80211_peer_measurement_ftm_resp {
6966
+ __NL80211_PMSR_FTM_RESP_ATTR_INVALID,
6967
+
6968
+ NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON,
6969
+ NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX,
6970
+ NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS,
6971
+ NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES,
6972
+ NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME,
6973
+ NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP,
6974
+ NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION,
6975
+ NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST,
6976
+ NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG,
6977
+ NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD,
6978
+ NL80211_PMSR_FTM_RESP_ATTR_TX_RATE,
6979
+ NL80211_PMSR_FTM_RESP_ATTR_RX_RATE,
6980
+ NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG,
6981
+ NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE,
6982
+ NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD,
6983
+ NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG,
6984
+ NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE,
6985
+ NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD,
6986
+ NL80211_PMSR_FTM_RESP_ATTR_LCI,
6987
+ NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC,
6988
+ NL80211_PMSR_FTM_RESP_ATTR_PAD,
6989
+
6990
+ /* keep last */
6991
+ NUM_NL80211_PMSR_FTM_RESP_ATTR,
6992
+ NL80211_PMSR_FTM_RESP_ATTR_MAX = NUM_NL80211_PMSR_FTM_RESP_ATTR - 1
6993
+};
6994
+
6995
+/**
6996
+ * enum nl80211_obss_pd_attributes - OBSS packet detection attributes
6997
+ * @__NL80211_HE_OBSS_PD_ATTR_INVALID: Invalid
6998
+ *
6999
+ * @NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET: the OBSS PD minimum tx power offset.
7000
+ * @NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET: the OBSS PD maximum tx power offset.
7001
+ * @NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET: the non-SRG OBSS PD maximum
7002
+ * tx power offset.
7003
+ * @NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP: bitmap that indicates the BSS color
7004
+ * values used by members of the SRG.
7005
+ * @NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP: bitmap that indicates the partial
7006
+ * BSSID values used by members of the SRG.
7007
+ * @NL80211_HE_OBSS_PD_ATTR_SR_CTRL: The SR Control field of SRP element.
7008
+ *
7009
+ * @__NL80211_HE_OBSS_PD_ATTR_LAST: Internal
7010
+ * @NL80211_HE_OBSS_PD_ATTR_MAX: highest OBSS PD attribute.
7011
+ */
7012
+enum nl80211_obss_pd_attributes {
7013
+ __NL80211_HE_OBSS_PD_ATTR_INVALID,
7014
+
7015
+ NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET,
7016
+ NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET,
7017
+ NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET,
7018
+ NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP,
7019
+ NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP,
7020
+ NL80211_HE_OBSS_PD_ATTR_SR_CTRL,
7021
+
7022
+ /* keep last */
7023
+ __NL80211_HE_OBSS_PD_ATTR_LAST,
7024
+ NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1,
7025
+};
7026
+
7027
+/**
7028
+ * enum nl80211_bss_color_attributes - BSS Color attributes
7029
+ * @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid
7030
+ *
7031
+ * @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color.
7032
+ * @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled.
7033
+ * @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used..
7034
+ *
7035
+ * @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal
7036
+ * @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute.
7037
+ */
7038
+enum nl80211_bss_color_attributes {
7039
+ __NL80211_HE_BSS_COLOR_ATTR_INVALID,
7040
+
7041
+ NL80211_HE_BSS_COLOR_ATTR_COLOR,
7042
+ NL80211_HE_BSS_COLOR_ATTR_DISABLED,
7043
+ NL80211_HE_BSS_COLOR_ATTR_PARTIAL,
7044
+
7045
+ /* keep last */
7046
+ __NL80211_HE_BSS_COLOR_ATTR_LAST,
7047
+ NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1,
7048
+};
7049
+
7050
+/**
60127051 * enum nl80211_iftype_akm_attributes - interface type AKM attributes
60137052 * @__NL80211_IFTYPE_AKM_ATTR_INVALID: Invalid
60147053 *
....@@ -6032,4 +7071,83 @@
60327071 NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1,
60337072 };
60347073
7074
+/**
7075
+ * enum nl80211_fils_discovery_attributes - FILS discovery configuration
7076
+ * from IEEE Std 802.11ai-2016, Annex C.3 MIB detail.
7077
+ *
7078
+ * @__NL80211_FILS_DISCOVERY_ATTR_INVALID: Invalid
7079
+ *
7080
+ * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU).
7081
+ * Allowed range: 0..10000 (TU = Time Unit)
7082
+ * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU).
7083
+ * Allowed range: 0..10000 (TU = Time Unit)
7084
+ * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action
7085
+ * frame including the headers.
7086
+ *
7087
+ * @__NL80211_FILS_DISCOVERY_ATTR_LAST: Internal
7088
+ * @NL80211_FILS_DISCOVERY_ATTR_MAX: highest attribute
7089
+ */
7090
+enum nl80211_fils_discovery_attributes {
7091
+ __NL80211_FILS_DISCOVERY_ATTR_INVALID,
7092
+
7093
+ NL80211_FILS_DISCOVERY_ATTR_INT_MIN,
7094
+ NL80211_FILS_DISCOVERY_ATTR_INT_MAX,
7095
+ NL80211_FILS_DISCOVERY_ATTR_TMPL,
7096
+
7097
+ /* keep last */
7098
+ __NL80211_FILS_DISCOVERY_ATTR_LAST,
7099
+ NL80211_FILS_DISCOVERY_ATTR_MAX = __NL80211_FILS_DISCOVERY_ATTR_LAST - 1
7100
+};
7101
+
7102
+/*
7103
+ * FILS discovery template minimum length with action frame headers and
7104
+ * mandatory fields.
7105
+ */
7106
+#define NL80211_FILS_DISCOVERY_TMPL_MIN_LEN 42
7107
+
7108
+/**
7109
+ * enum nl80211_unsol_bcast_probe_resp_attributes - Unsolicited broadcast probe
7110
+ * response configuration. Applicable only in 6GHz.
7111
+ *
7112
+ * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID: Invalid
7113
+ *
7114
+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU).
7115
+ * Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0
7116
+ * 26.17.2.3.2 (AP behavior for fast passive scanning).
7117
+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response
7118
+ * frame template (binary).
7119
+ *
7120
+ * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST: Internal
7121
+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX: highest attribute
7122
+ */
7123
+enum nl80211_unsol_bcast_probe_resp_attributes {
7124
+ __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID,
7125
+
7126
+ NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT,
7127
+ NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL,
7128
+
7129
+ /* keep last */
7130
+ __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST,
7131
+ NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX =
7132
+ __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1
7133
+};
7134
+
7135
+/**
7136
+ * enum nl80211_sae_pwe_mechanism - The mechanism(s) allowed for SAE PWE
7137
+ * derivation. Applicable only when WPA3-Personal SAE authentication is
7138
+ * used.
7139
+ *
7140
+ * @NL80211_SAE_PWE_UNSPECIFIED: not specified, used internally to indicate that
7141
+ * attribute is not present from userspace.
7142
+ * @NL80211_SAE_PWE_HUNT_AND_PECK: hunting-and-pecking loop only
7143
+ * @NL80211_SAE_PWE_HASH_TO_ELEMENT: hash-to-element only
7144
+ * @NL80211_SAE_PWE_BOTH: both hunting-and-pecking loop and hash-to-element
7145
+ * can be used.
7146
+ */
7147
+enum nl80211_sae_pwe_mechanism {
7148
+ NL80211_SAE_PWE_UNSPECIFIED,
7149
+ NL80211_SAE_PWE_HUNT_AND_PECK,
7150
+ NL80211_SAE_PWE_HASH_TO_ELEMENT,
7151
+ NL80211_SAE_PWE_BOTH,
7152
+};
60357153 #endif /* __LINUX_NL80211_H */