]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
iw: update nl80211.h
authorJohannes Berg <johannes.berg@intel.com>
Fri, 2 Oct 2020 10:15:38 +0000 (12:15 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 2 Oct 2020 10:15:52 +0000 (12:15 +0200)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
nl80211.h

index 631f3a997b3cd1edc07085d10e190be5d18529d5..47700a2b9af962f387a7759af4092e2a6a04412a 100644 (file)
--- a/nl80211.h
+++ b/nl80211.h
  * 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.
  */
 
 /**
  *     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
  * @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
@@ -2082,10 +2080,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.
@@ -2515,6 +2513,20 @@ 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.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2821,8 +2833,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,
 
@@ -2997,6 +3009,13 @@ 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,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -3009,6 +3028,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
@@ -3186,6 +3207,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
@@ -3725,6 +3758,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
@@ -3756,6 +3799,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,
@@ -4049,6 +4097,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 {
@@ -4064,6 +4113,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,
@@ -4741,6 +4791,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
  */
@@ -4750,6 +4804,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,
@@ -4767,6 +4824,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,
@@ -5821,6 +5887,15 @@ enum nl80211_feature_flags {
  *     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
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -5878,6 +5953,9 @@ enum nl80211_ext_feature_index {
        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,
 
        /* add new features before the definition below */
        NUM_NL80211_EXT_FEATURES,
@@ -5992,6 +6070,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,
@@ -6008,6 +6088,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,
 };
 
 /**
@@ -6910,6 +6991,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.
@@ -6919,6 +7007,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,
@@ -6972,4 +7064,64 @@ 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
+};
 #endif /* __LINUX_NL80211_H */