]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Sync with mac80211-next.git include/uapi/linux/nl80211.h
authorJouni Malinen <j@w1.fi>
Mon, 16 Nov 2020 11:14:27 +0000 (13:14 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 16 Nov 2020 11:15:21 +0000 (13:15 +0200)
This brings in nl80211 definitions as of 2020-11-11.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/drivers/nl80211_copy.h

index dad8c8f8581f850e5f77c15b1b8bb17fb071d926..3e0d4a038ab663b80a087d25a36022756d5f2502 100644 (file)
  *
  * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers
  * can indicate they support offloading EAPOL handshakes for WPA/WPA2
- * preshared key authentication. In %NL80211_CMD_CONNECT the preshared
- * key should be specified using %NL80211_ATTR_PMK. Drivers supporting
- * this offload may reject the %NL80211_CMD_CONNECT when no preshared
- * key material is provided, for example when that driver does not
- * support setting the temporal keys through %CMD_NEW_KEY.
+ * preshared key authentication in station mode. In %NL80211_CMD_CONNECT
+ * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
+ * supporting this offload may reject the %NL80211_CMD_CONNECT when no
+ * preshared key material is provided, for example when that driver does
+ * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
  *
  * Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be
  * set by drivers indicating offload support of the PTK/GTK EAPOL
- * handshakes during 802.1X authentication. In order to use the offload
- * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS
- * attribute flag. Drivers supporting this offload may reject the
- * %NL80211_CMD_CONNECT when the attribute flag is not present.
+ * handshakes during 802.1X authentication in station mode. In order to
+ * use the offload the %NL80211_CMD_CONNECT should have
+ * %NL80211_ATTR_WANT_1X_4WAY_HS attribute flag. Drivers supporting this
+ * offload may reject the %NL80211_CMD_CONNECT when the attribute flag is
+ * not present.
+ *
+ * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK flag drivers
+ * can indicate they support offloading EAPOL handshakes for WPA/WPA2
+ * preshared key authentication in AP mode. In %NL80211_CMD_START_AP
+ * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
+ * supporting this offload may reject the %NL80211_CMD_START_AP when no
+ * preshared key material is provided, for example when that driver does
+ * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
  *
  * For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK
  * using %NL80211_CMD_SET_PMK. For offloaded FT support also
  * DOC: SAE authentication offload
  *
  * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
- * support offloading SAE authentication for WPA3-Personal networks. In
- * %NL80211_CMD_CONNECT the password for SAE should be specified using
- * %NL80211_ATTR_SAE_PASSWORD.
+ * support offloading SAE authentication for WPA3-Personal networks in station
+ * mode. Similarly @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP flag can be set by
+ * drivers indicating the offload support in AP mode.
+ *
+ * The password for SAE should be specified using %NL80211_ATTR_SAE_PASSWORD in
+ * %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP for station and AP mode
+ * respectively.
  */
 
 /**
  * @NL80211_CMD_SET_STATION: Set station attributes for station identified by
  *     %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
  * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the
- *     the interface identified by %NL80211_ATTR_IFINDEX.
+ *     interface identified by %NL80211_ATTR_IFINDEX.
  * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
  *     or, if no MAC address given, all stations, on the interface identified
  *     by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
  * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by
  *     %NL80211_ATTR_MAC.
  * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
- *     the interface identified by %NL80211_ATTR_IFINDEX.
+ *     interface identified by %NL80211_ATTR_IFINDEX.
  * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
  *     or, if no MAC address given, all mesh paths, on the interface identified
  *     by %NL80211_ATTR_IFINDEX.
  *     authentication/association or not receiving a response from the AP.
  *     Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as
  *     well to remain backwards compatible.
- *     When establishing a security association, drivers that support 4 way
- *     handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when
- *     the 4 way handshake is completed successfully.
  * @NL80211_CMD_ROAM: Notification indicating the card/driver roamed by itself.
- *     When a security association was established with the new AP (e.g. if
- *     the FT protocol was used for roaming or the driver completed the 4 way
- *     handshake), this event should be followed by an
+ *     When a security association was established on an 802.1X network using
+ *     fast transition, this event should be followed by an
  *     %NL80211_CMD_PORT_AUTHORIZED event.
  * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
  *     userspace that a connection was dropped by the AP or due to other
  *     of any other interfaces, and other interfaces will again take
  *     precedence when they are used.
  *
- * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
+ * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface
+ *     (no longer supported).
  *
  * @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform
  *     multicast to unicast conversion. When enabled, all multicast packets
  *     various triggers. These triggers can be configured through this
  *     command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
  *     more background information, see
- *     http://wireless.kernel.org/en/users/Documentation/WoWLAN.
+ *     https://wireless.wiki.kernel.org/en/users/Documentation/WoWLAN.
  *     The @NL80211_CMD_SET_WOWLAN command can also be used as a notification
  *     from the driver reporting the wakeup reason. In this case, the
  *     @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason
  * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules.
  *
  * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the
- *     the new channel information (Channel Switch Announcement - CSA)
+ *     new channel information (Channel Switch Announcement - CSA)
  *     in the beacon for some time (as defined in the
  *     %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
  *     new channel. Userspace provides the new channel information (using
  * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
  *     configured PMK for the authenticator address identified by
  *     %NL80211_ATTR_MAC.
- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way
- *     handshake was completed successfully by the driver. The BSSID is
- *     specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
- *     offload should send this event after indicating 802.11 association with
- *     %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
- *     %NL80211_CMD_DISCONNECT should be indicated instead.
- *
+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
+ *     completed successfully. Drivers that support 4 way handshake offload
+ *     should send this event after indicating 802.1X FT assocation with
+ *     %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
+ *     should be indicated instead.
  * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
  *     and RX notification.  This command is used both as a request to transmit
  *     a control port frame and as a notification that a control port frame
  *     randomization may be enabled and configured by specifying the
  *     %NL80211_ATTR_MAC and %NL80211_ATTR_MAC_MASK attributes.
  *     If a timeout is requested, use the %NL80211_ATTR_TIMEOUT attribute.
- *     A u64 cookie for further %NL80211_ATTR_COOKIE use is is returned in
+ *     A u64 cookie for further %NL80211_ATTR_COOKIE use is returned in
  *     the netlink extended ack message.
  *
  *     To cancel a measurement, close the socket that requested it.
@@ -1511,7 +1519,7 @@ enum nl80211_commands {
  *     rates as defined by IEEE 802.11 7.3.2.2 but without the length
  *     restriction (at most %NL80211_MAX_SUPP_RATES).
  * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
- *     to, or the AP interface the station was originally added to to.
+ *     to, or the AP interface the station was originally added to.
  * @NL80211_ATTR_STA_INFO: information about a station, part of station info
  *     given for %NL80211_CMD_GET_STATION, nested attribute containing
  *     info as possible, see &enum nl80211_sta_info.
@@ -1743,8 +1751,9 @@ enum nl80211_commands {
  *     specify just a single bitrate, which is to be used for the beacon.
  *     The driver must also specify support for this with the extended
  *     features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
- *     NL80211_EXT_FEATURE_BEACON_RATE_HT and
- *     NL80211_EXT_FEATURE_BEACON_RATE_VHT.
+ *     NL80211_EXT_FEATURE_BEACON_RATE_HT,
+ *     NL80211_EXT_FEATURE_BEACON_RATE_VHT and
+ *     NL80211_EXT_FEATURE_BEACON_RATE_HE.
  *
  * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
  *     at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
@@ -2073,10 +2082,10 @@ enum nl80211_commands {
  *     operation).
  * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
  *     for the time while performing a channel switch.
- * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel
- *     switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
- * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel
- *     switch counters in the probe response (%NL80211_ATTR_PROBE_RESP).
+ * @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel
+ *     switch or color change counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
+ * @NL80211_ATTR_CNTDWN_OFFS_PRESP: An array of offsets (u16) to the channel
+ *     switch or color change counters in the probe response (%NL80211_ATTR_PROBE_RESP).
  *
  * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
  *     As specified in the &enum nl80211_rxmgmt_flags.
@@ -2084,7 +2093,7 @@ enum nl80211_commands {
  * @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels.
  *
  * @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported
- *      supported operating classes.
+ *      operating classes.
  *
  * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space
  *     controls DFS operation in IBSS mode. If the flag is included in
@@ -2362,10 +2371,11 @@ enum nl80211_commands {
  *
  * @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with
  *     %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID.
- *     For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way
- *     handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is
- *     used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute
- *     specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well.
+ *     For %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP it is used to provide
+ *     PSK for offloading 4-way handshake for WPA/WPA2-PSK networks. For 802.1X
+ *     authentication it is used with %NL80211_CMD_SET_PMK. For offloaded FT
+ *     support this attribute specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME
+ *     is included as well.
  *
  * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to
  *     indicate that it supports multiple active scheduled scan requests.
@@ -2395,7 +2405,7 @@ enum nl80211_commands {
  *      nl80211_txq_stats)
  * @NL80211_ATTR_TXQ_LIMIT: Total packet limit for the TXQ queues for this phy.
  *      The smaller of this and the memory limit is enforced.
- * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory memory limit (in bytes) for the
+ * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory limit (in bytes) for the
  *      TXQ queues for this phy. The smaller of this and the packet limit is
  *      enforced.
  * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
@@ -2505,6 +2515,25 @@ enum nl80211_commands {
  * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from
  *     association request when used with NL80211_CMD_NEW_STATION).
  *
+ * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
+ *     discovery. It is a nested attribute, see
+ *     &enum nl80211_fils_discovery_attributes.
+ *
+ * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
+ *     unsolicited broadcast probe response. It is a nested attribute, see
+ *     &enum nl80211_unsol_bcast_probe_resp_attributes.
+ *
+ * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
+ *     association request when used with NL80211_CMD_NEW_STATION)
+ * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element
+ *     override mask. Used with NL80211_ATTR_S1G_CAPABILITY in
+ *     NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT.
+ *
+ * @NL80211_ATTR_SAE_PWE: Indicates the mechanism(s) allowed for SAE PWE
+ *     derivation in WPA3-Personal networks which are using SAE authentication.
+ *     This is a u8 attribute that encapsulates one of the values from
+ *     &enum nl80211_sae_pwe_mechanism.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2811,8 +2840,8 @@ enum nl80211_attrs {
        NL80211_ATTR_CH_SWITCH_COUNT,
        NL80211_ATTR_CH_SWITCH_BLOCK_TX,
        NL80211_ATTR_CSA_IES,
-       NL80211_ATTR_CSA_C_OFF_BEACON,
-       NL80211_ATTR_CSA_C_OFF_PRESP,
+       NL80211_ATTR_CNTDWN_OFFS_BEACON,
+       NL80211_ATTR_CNTDWN_OFFS_PRESP,
 
        NL80211_ATTR_RXMGMT_FLAGS,
 
@@ -2987,6 +3016,15 @@ enum nl80211_attrs {
 
        NL80211_ATTR_HE_6GHZ_CAPABILITY,
 
+       NL80211_ATTR_FILS_DISCOVERY,
+
+       NL80211_ATTR_UNSOL_BCAST_PROBE_RESP,
+
+       NL80211_ATTR_S1G_CAPABILITY,
+       NL80211_ATTR_S1G_CAPABILITY_MASK,
+
+       NL80211_ATTR_SAE_PWE,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -2999,6 +3037,8 @@ enum nl80211_attrs {
 #define        NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
 #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
 #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA
+#define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON
+#define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP
 
 /*
  * Allow user space programs to use #ifdef on new attributes by defining them
@@ -3176,6 +3216,18 @@ enum nl80211_he_gi {
        NL80211_RATE_INFO_HE_GI_3_2,
 };
 
+/**
+ * enum nl80211_he_ltf - HE long training field
+ * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec
+ * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec
+ * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec
+ */
+enum nl80211_he_ltf {
+       NL80211_RATE_INFO_HE_1XLTF,
+       NL80211_RATE_INFO_HE_2XLTF,
+       NL80211_RATE_INFO_HE_4XLTF,
+};
+
 /**
  * enum nl80211_he_ru_alloc - HE RU allocation values
  * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
@@ -3370,6 +3422,8 @@ enum nl80211_sta_bss_param {
  * @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
  * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
  *     of STA's association
+ * @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a
+ *     authentication server (u8, 0 or 1)
  * @__NL80211_STA_INFO_AFTER_LAST: internal
  * @NL80211_STA_INFO_MAX: highest possible station info attribute
  */
@@ -3417,6 +3471,7 @@ enum nl80211_sta_info {
        NL80211_STA_INFO_AIRTIME_WEIGHT,
        NL80211_STA_INFO_AIRTIME_LINK_METRIC,
        NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
+       NL80211_STA_INFO_CONNECTED_TO_AS,
 
        /* keep last */
        __NL80211_STA_INFO_AFTER_LAST,
@@ -3712,6 +3767,16 @@ enum nl80211_wmm_rule {
  * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
  *     in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_OFFSET: frequency offset in KHz
+ * @NL80211_FREQUENCY_ATTR_1MHZ: 1 MHz operation is allowed
+ *     on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_2MHZ: 2 MHz operation is allowed
+ *     on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_4MHZ: 4 MHz operation is allowed
+ *     on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_8MHZ: 8 MHz operation is allowed
+ *     on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
+ *     on this channel in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
  *     currently defined
  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -3743,6 +3808,11 @@ enum nl80211_frequency_attr {
        NL80211_FREQUENCY_ATTR_WMM,
        NL80211_FREQUENCY_ATTR_NO_HE,
        NL80211_FREQUENCY_ATTR_OFFSET,
+       NL80211_FREQUENCY_ATTR_1MHZ,
+       NL80211_FREQUENCY_ATTR_2MHZ,
+       NL80211_FREQUENCY_ATTR_4MHZ,
+       NL80211_FREQUENCY_ATTR_8MHZ,
+       NL80211_FREQUENCY_ATTR_16MHZ,
 
        /* keep last */
        __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4036,6 +4106,7 @@ enum nl80211_user_reg_hint_type {
  *     receiving frames destined to the local BSS
  * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
  *     currently defined
+ * @NL80211_SURVEY_INFO_FREQUENCY_OFFSET: center frequency offset in KHz
  * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
  */
 enum nl80211_survey_info {
@@ -4051,6 +4122,7 @@ enum nl80211_survey_info {
        NL80211_SURVEY_INFO_TIME_SCAN,
        NL80211_SURVEY_INFO_PAD,
        NL80211_SURVEY_INFO_TIME_BSS_RX,
+       NL80211_SURVEY_INFO_FREQUENCY_OFFSET,
 
        /* keep last */
        __NL80211_SURVEY_INFO_AFTER_LAST,
@@ -4236,6 +4308,16 @@ enum nl80211_mesh_power_mode {
  *     field.  If left unset then the mesh formation field will only
  *     advertise such if there is an active root mesh path.
  *
+ * @NL80211_MESHCONF_NOLEARN: Try to avoid multi-hop path discovery (e.g.
+ *      PREQ/PREP for HWMP) if the destination is a direct neighbor. Note that
+ *      this might not be the optimal decision as a multi-hop route might be
+ *      better. So if using this setting you will likely also want to disable
+ *      dot11MeshForwarding and use another mesh routing protocol on top.
+ *
+ * @NL80211_MESHCONF_CONNECTED_TO_AS: If set to true then this mesh STA
+ *     will advertise that it is connected to a authentication server
+ *     in the mesh formation field.
+ *
  * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
  */
 enum nl80211_meshconf_params {
@@ -4269,6 +4351,8 @@ enum nl80211_meshconf_params {
        NL80211_MESHCONF_AWAKE_WINDOW,
        NL80211_MESHCONF_PLINK_TIMEOUT,
        NL80211_MESHCONF_CONNECTED_TO_GATE,
+       NL80211_MESHCONF_NOLEARN,
+       NL80211_MESHCONF_CONNECTED_TO_AS,
 
        /* keep last */
        __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -4437,6 +4521,11 @@ enum nl80211_key_mode {
  *     attribute must be provided as well
  * @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_1: 1 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_2: 2 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
  */
 enum nl80211_chan_width {
        NL80211_CHAN_WIDTH_20_NOHT,
@@ -4447,6 +4536,11 @@ enum nl80211_chan_width {
        NL80211_CHAN_WIDTH_160,
        NL80211_CHAN_WIDTH_5,
        NL80211_CHAN_WIDTH_10,
+       NL80211_CHAN_WIDTH_1,
+       NL80211_CHAN_WIDTH_2,
+       NL80211_CHAN_WIDTH_4,
+       NL80211_CHAN_WIDTH_8,
+       NL80211_CHAN_WIDTH_16,
 };
 
 /**
@@ -4457,11 +4551,15 @@ enum nl80211_chan_width {
  * @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible
  * @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide
  * @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide
+ * @NL80211_BSS_CHAN_WIDTH_1: control channel is 1 MHz wide
+ * @NL80211_BSS_CHAN_WIDTH_2: control channel is 2 MHz wide
  */
 enum nl80211_bss_scan_width {
        NL80211_BSS_CHAN_WIDTH_20,
        NL80211_BSS_CHAN_WIDTH_10,
        NL80211_BSS_CHAN_WIDTH_5,
+       NL80211_BSS_CHAN_WIDTH_1,
+       NL80211_BSS_CHAN_WIDTH_2,
 };
 
 /**
@@ -4702,6 +4800,10 @@ enum nl80211_key_attributes {
  * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
  *     see &struct nl80211_txrate_vht
  * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi
+ * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection,
+ *     see &struct nl80211_txrate_he
+ * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
+ * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
  * @__NL80211_TXRATE_AFTER_LAST: internal
  * @NL80211_TXRATE_MAX: highest TX rate attribute
  */
@@ -4711,6 +4813,9 @@ enum nl80211_tx_rate_attributes {
        NL80211_TXRATE_HT,
        NL80211_TXRATE_VHT,
        NL80211_TXRATE_GI,
+       NL80211_TXRATE_HE,
+       NL80211_TXRATE_HE_GI,
+       NL80211_TXRATE_HE_LTF,
 
        /* keep last */
        __NL80211_TXRATE_AFTER_LAST,
@@ -4728,6 +4833,15 @@ struct nl80211_txrate_vht {
        __u16 mcs[NL80211_VHT_NSS_MAX];
 };
 
+#define NL80211_HE_NSS_MAX             8
+/**
+ * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap
+ * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
+ */
+struct nl80211_txrate_he {
+       __u16 mcs[NL80211_HE_NSS_MAX];
+};
+
 enum nl80211_txrate_gi {
        NL80211_TXRATE_DEFAULT_GI,
        NL80211_TXRATE_FORCE_SGI,
@@ -4740,6 +4854,7 @@ enum nl80211_txrate_gi {
  * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
+ * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
  *     since newer kernel versions may support more bands
  */
@@ -4748,6 +4863,7 @@ enum nl80211_band {
        NL80211_BAND_5GHZ,
        NL80211_BAND_60GHZ,
        NL80211_BAND_6GHZ,
+       NL80211_BAND_S1GHZ,
 
        NUM_NL80211_BANDS,
 };
@@ -5636,7 +5752,7 @@ enum nl80211_feature_flags {
  * enum nl80211_ext_feature_index - bit index of extended features.
  * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates.
  * @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can
- *     can request to use RRM (see %NL80211_ATTR_USE_RRM) with
+ *     request to use RRM (see %NL80211_ATTR_USE_RRM) with
  *     %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
  *     the ASSOC_REQ_USE_RRM flag in the association request even if
  *     NL80211_FEATURE_QUIET is not advertized.
@@ -5773,6 +5889,25 @@ enum nl80211_feature_flags {
  * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver
  *     can report tx status for control port over nl80211 tx operations.
  *
+ * @NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION: Driver supports Operating
+ *     Channel Validation (OCV) when using driver's SME for RSNA handshakes.
+ *
+ * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK: Device wants to do 4-way
+ *     handshake with PSK in AP mode (PSK is passed as part of the start AP
+ *     command).
+ *
+ * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication
+ *     in AP mode (SAE password is passed as part of the start AP command).
+ *
+ * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery
+ *     frames transmission
+ *
+ * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports
+ *     unsolicited broadcast probe response transmission
+ *
+ * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate
+ *     configuration (AP/mesh) with HE rates.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -5828,6 +5963,12 @@ enum nl80211_ext_feature_index {
        NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
        NL80211_EXT_FEATURE_SCAN_FREQ_KHZ,
        NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
+       NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
+       NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
+       NL80211_EXT_FEATURE_SAE_OFFLOAD_AP,
+       NL80211_EXT_FEATURE_FILS_DISCOVERY,
+       NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
+       NL80211_EXT_FEATURE_BEACON_RATE_HE,
 
        /* add new features before the definition below */
        NUM_NL80211_EXT_FEATURES,
@@ -5942,6 +6083,8 @@ enum nl80211_timeout_reason {
  * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with
  *     %NL80211_ATTR_SCAN_FREQ_KHZ. This also means
  *     %NL80211_ATTR_SCAN_FREQUENCIES will not be included.
+ * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by
+ *     2.4/5 GHz APs
  */
 enum nl80211_scan_flags {
        NL80211_SCAN_FLAG_LOW_PRIORITY                          = 1<<0,
@@ -5958,6 +6101,7 @@ enum nl80211_scan_flags {
        NL80211_SCAN_FLAG_RANDOM_SN                             = 1<<11,
        NL80211_SCAN_FLAG_MIN_PREQ_CONTENT                      = 1<<12,
        NL80211_SCAN_FLAG_FREQ_KHZ                              = 1<<13,
+       NL80211_SCAN_FLAG_COLOCATED_6GHZ                        = 1<<14,
 };
 
 /**
@@ -6045,7 +6189,7 @@ enum nl80211_dfs_state {
 };
 
 /**
- * enum enum nl80211_protocol_features - nl80211 protocol features
+ * enum nl80211_protocol_features - nl80211 protocol features
  * @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting
  *     wiphy dumps (if requested by the application with the attribute
  *     %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the
@@ -6860,6 +7004,13 @@ enum nl80211_peer_measurement_ftm_resp {
  *
  * @NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET: the OBSS PD minimum tx power offset.
  * @NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET: the OBSS PD maximum tx power offset.
+ * @NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET: the non-SRG OBSS PD maximum
+ *     tx power offset.
+ * @NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP: bitmap that indicates the BSS color
+ *     values used by members of the SRG.
+ * @NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP: bitmap that indicates the partial
+ *     BSSID values used by members of the SRG.
+ * @NL80211_HE_OBSS_PD_ATTR_SR_CTRL: The SR Control field of SRP element.
  *
  * @__NL80211_HE_OBSS_PD_ATTR_LAST: Internal
  * @NL80211_HE_OBSS_PD_ATTR_MAX: highest OBSS PD attribute.
@@ -6869,6 +7020,10 @@ enum nl80211_obss_pd_attributes {
 
        NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET,
        NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET,
+       NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET,
+       NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP,
+       NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP,
+       NL80211_HE_OBSS_PD_ATTR_SR_CTRL,
 
        /* keep last */
        __NL80211_HE_OBSS_PD_ATTR_LAST,
@@ -6922,4 +7077,83 @@ enum nl80211_iftype_akm_attributes {
        NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1,
 };
 
+/**
+ * enum nl80211_fils_discovery_attributes - FILS discovery configuration
+ * from IEEE Std 802.11ai-2016, Annex C.3 MIB detail.
+ *
+ * @__NL80211_FILS_DISCOVERY_ATTR_INVALID: Invalid
+ *
+ * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU).
+ *     Allowed range: 0..10000 (TU = Time Unit)
+ * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU).
+ *     Allowed range: 0..10000 (TU = Time Unit)
+ * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action
+ *     frame including the headers.
+ *
+ * @__NL80211_FILS_DISCOVERY_ATTR_LAST: Internal
+ * @NL80211_FILS_DISCOVERY_ATTR_MAX: highest attribute
+ */
+enum nl80211_fils_discovery_attributes {
+       __NL80211_FILS_DISCOVERY_ATTR_INVALID,
+
+       NL80211_FILS_DISCOVERY_ATTR_INT_MIN,
+       NL80211_FILS_DISCOVERY_ATTR_INT_MAX,
+       NL80211_FILS_DISCOVERY_ATTR_TMPL,
+
+       /* keep last */
+       __NL80211_FILS_DISCOVERY_ATTR_LAST,
+       NL80211_FILS_DISCOVERY_ATTR_MAX = __NL80211_FILS_DISCOVERY_ATTR_LAST - 1
+};
+
+/*
+ * FILS discovery template minimum length with action frame headers and
+ * mandatory fields.
+ */
+#define NL80211_FILS_DISCOVERY_TMPL_MIN_LEN 42
+
+/**
+ * enum nl80211_unsol_bcast_probe_resp_attributes - Unsolicited broadcast probe
+ *     response configuration. Applicable only in 6GHz.
+ *
+ * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID: Invalid
+ *
+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU).
+ *     Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0
+ *     26.17.2.3.2 (AP behavior for fast passive scanning).
+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response
+ *     frame template (binary).
+ *
+ * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST: Internal
+ * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX: highest attribute
+ */
+enum nl80211_unsol_bcast_probe_resp_attributes {
+       __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID,
+
+       NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT,
+       NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL,
+
+       /* keep last */
+       __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST,
+       NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX =
+               __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1
+};
+
+/**
+ * enum nl80211_sae_pwe_mechanism - The mechanism(s) allowed for SAE PWE
+ *     derivation. Applicable only when WPA3-Personal SAE authentication is
+ *     used.
+ *
+ * @NL80211_SAE_PWE_UNSPECIFIED: not specified, used internally to indicate that
+ *     attribute is not present from userspace.
+ * @NL80211_SAE_PWE_HUNT_AND_PECK: hunting-and-pecking loop only
+ * @NL80211_SAE_PWE_HASH_TO_ELEMENT: hash-to-element only
+ * @NL80211_SAE_PWE_BOTH: both hunting-and-pecking loop and hash-to-element
+ *     can be used.
+ */
+enum nl80211_sae_pwe_mechanism {
+       NL80211_SAE_PWE_UNSPECIFIED,
+       NL80211_SAE_PWE_HUNT_AND_PECK,
+       NL80211_SAE_PWE_HASH_TO_ELEMENT,
+       NL80211_SAE_PWE_BOTH,
+};
 #endif /* __LINUX_NL80211_H */