]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Sync with wireless-next.git include/uapi/linux/nl80211.h
authorJouni Malinen <j@w1.fi>
Sat, 30 Jul 2022 08:12:00 +0000 (11:12 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 26 Aug 2022 14:27:45 +0000 (17:27 +0300)
This brings in nl80211 definitions as of 2022-07-22. In addition, update
nl80211_command_to_string() to cover the new defined commands.

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

index 824dd1b859cfa9399fef20c2aefa14536b3abad4..52dc80f3099379affbee2e99f38b4908c094736c 100644 (file)
@@ -179,6 +179,11 @@ static const char * nl80211_command_to_string(enum nl80211_commands cmd)
        C2S(NL80211_CMD_COLOR_CHANGE_COMPLETED)
        C2S(NL80211_CMD_SET_FILS_AAD)
        C2S(NL80211_CMD_ASSOC_COMEBACK)
+       C2S(NL80211_CMD_ADD_LINK)
+       C2S(NL80211_CMD_REMOVE_LINK)
+       C2S(NL80211_CMD_ADD_LINK_STA)
+       C2S(NL80211_CMD_MODIFY_LINK_STA)
+       C2S(NL80211_CMD_REMOVE_LINK_STA)
        C2S(__NL80211_CMD_AFTER_LAST)
        }
 #undef C2S
index 0568a79097b8aaac2c0e04eb41a636e99d0618b4..ffb7c573e299b92a9d41cd1aabe73d7434249d17 100644 (file)
  * Once the association is done, the driver cleans the FILS AAD data.
  */
 
+/**
+ * DOC: Multi-Link Operation
+ *
+ * In Multi-Link Operation, a connection between to MLDs utilizes multiple
+ * links. To use this in nl80211, various commands and responses now need
+ * to or will include the new %NL80211_ATTR_MLO_LINKS attribute.
+ * Additionally, various commands that need to operate on a specific link
+ * now need to be given the %NL80211_ATTR_MLO_LINK_ID attribute, e.g. to
+ * use %NL80211_CMD_START_AP or similar functions.
+ */
+
 /**
  * enum nl80211_commands - supported nl80211 commands
  *
  *     %NL80211_ATTR_CSA_C_OFFSETS_TX is an array of offsets to CSA
  *     counters which will be updated to the current value. This attribute
  *     is used during CSA period.
+ *     For TX on an MLD, the frequency can be omitted and the link ID be
+ *     specified, or if transmitting to a known peer MLD (with MLD addresses
+ *     in the frame) both can be omitted and the link will be selected by
+ *     lower layers.
+ *     For RX notification, %NL80211_ATTR_RX_HW_TIMESTAMP may be included to
+ *     indicate the frame RX timestamp and %NL80211_ATTR_TX_HW_TIMESTAMP may
+ *     be included to indicate the ack TX timestamp.
  * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this
  *     command may be used with the corresponding cookie to cancel the wait
  *     time if it is known that it is no longer necessary.  This command is
  *     transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies
  *     the TX command and %NL80211_ATTR_FRAME includes the contents of the
  *     frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged
- *     the frame.
+ *     the frame. %NL80211_ATTR_TX_HW_TIMESTAMP may be included to indicate the
+ *     tx timestamp and %NL80211_ATTR_RX_HW_TIMESTAMP may be included to
+ *     indicate the ack RX timestamp.
  * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for
  *     backward compatibility.
  *
  *     has been received. %NL80211_ATTR_FRAME is used to specify the
  *     frame contents.  The frame is the raw EAPoL data, without ethernet or
  *     802.11 headers.
+ *     For an MLD transmitter, the %NL80211_ATTR_MLO_LINK_ID may be given and
+ *     its effect will depend on the destination: If the destination is known
+ *     to be an MLD, this will be used as a hint to select the link to transmit
+ *     the frame on. If the destination is not an MLD, this will select both
+ *     the link to transmit on and the source address will be set to the link
+ *     address of that link.
  *     When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
  *     %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added
  *     indicating the protocol type of the received frame; whether the frame
  *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
  *      specify the timeout value.
  *
+ * @NL80211_CMD_ADD_LINK: Add a new link to an interface. The
+ *     %NL80211_ATTR_MLO_LINK_ID attribute is used for the new link.
+ * @NL80211_CMD_REMOVE_LINK: Remove a link from an interface. This may come
+ *     without %NL80211_ATTR_MLO_LINK_ID as an easy way to remove all links
+ *     in preparation for e.g. roaming to a regular (non-MLO) AP.
+ *
+ * @NL80211_CMD_ADD_LINK_STA: Add a link to an MLD station
+ * @NL80211_CMD_MODIFY_LINK_STA: Modify a link of an MLD station
+ * @NL80211_CMD_REMOVE_LINK_STA: Remove a link of an MLD station
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1481,6 +1517,13 @@ enum nl80211_commands {
 
        NL80211_CMD_ASSOC_COMEBACK,
 
+       NL80211_CMD_ADD_LINK,
+       NL80211_CMD_REMOVE_LINK,
+
+       NL80211_CMD_ADD_LINK_STA,
+       NL80211_CMD_MODIFY_LINK_STA,
+       NL80211_CMD_REMOVE_LINK_STA,
+
        /* add new commands above here */
 
        /* used to define NL80211_CMD_MAX below */
@@ -2340,8 +2383,10 @@ enum nl80211_commands {
  *
  * @NL80211_ATTR_IFTYPE_EXT_CAPA: Nested attribute of the following attributes:
  *     %NL80211_ATTR_IFTYPE, %NL80211_ATTR_EXT_CAPA,
- *     %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per
- *     interface type.
+ *     %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities and
+ *     other interface-type specific capabilities per interface type. For MLO,
+ *     %NL80211_ATTR_EML_CAPABILITY and %NL80211_ATTR_MLD_CAPA_AND_OPS are
+ *     present.
  *
  * @NL80211_ATTR_MU_MIMO_GROUP_DATA: array of 24 bytes that defines a MU-MIMO
  *     groupID for monitor mode.
@@ -2663,6 +2708,39 @@ enum nl80211_commands {
  *     association request when used with NL80211_CMD_NEW_STATION). Can be set
  *     only if %NL80211_STA_FLAG_WME is set.
  *
+ * @NL80211_ATTR_MLO_LINK_ID: A (u8) link ID for use with MLO, to be used with
+ *     various commands that need a link ID to operate.
+ * @NL80211_ATTR_MLO_LINKS: A nested array of links, each containing some
+ *     per-link information and a link ID.
+ * @NL80211_ATTR_MLD_ADDR: An MLD address, used with various commands such as
+ *     authenticate/associate.
+ *
+ * @NL80211_ATTR_MLO_SUPPORT: Flag attribute to indicate user space supports MLO
+ *     connection. Used with %NL80211_CMD_CONNECT. If this attribute is not
+ *     included in NL80211_CMD_CONNECT drivers must not perform MLO connection.
+ *
+ * @NL80211_ATTR_MAX_NUM_AKM_SUITES: U16 attribute. Indicates maximum number of
+ *     AKM suites allowed for %NL80211_CMD_CONNECT, %NL80211_CMD_ASSOCIATE and
+ *     %NL80211_CMD_START_AP in %NL80211_CMD_GET_WIPHY response. If this
+ *     attribute is not present userspace shall consider maximum number of AKM
+ *     suites allowed as %NL80211_MAX_NR_AKM_SUITES which is the legacy maximum
+ *     number prior to the introduction of this attribute.
+ *
+ * @NL80211_ATTR_EML_CAPABILITY: EML Capability information (u16)
+ * @NL80211_ATTR_MLD_CAPA_AND_OPS: MLD Capabilities and Operations (u16)
+ *
+ * @NL80211_ATTR_TX_HW_TIMESTAMP: Hardware timestamp for TX operation in
+ *     nanoseconds (u64). This is the device clock timestamp so it will
+ *     probably reset when the device is stopped or the firmware is reset.
+ *     When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the frame TX
+ *     timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
+ *     the ack TX timestamp.
+ * @NL80211_ATTR_RX_HW_TIMESTAMP: Hardware timestamp for RX operation in
+ *     nanoseconds (u64). This is the device clock timestamp so it will
+ *     probably reset when the device is stopped or the firmware is reset.
+ *     When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX
+ *     timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
+ *     the incoming frame RX timestamp.
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3175,6 +3253,22 @@ enum nl80211_attrs {
 
        NL80211_ATTR_EHT_CAPABILITY,
 
+       NL80211_ATTR_DISABLE_EHT,
+
+       NL80211_ATTR_MLO_LINKS,
+       NL80211_ATTR_MLO_LINK_ID,
+       NL80211_ATTR_MLD_ADDR,
+
+       NL80211_ATTR_MLO_SUPPORT,
+
+       NL80211_ATTR_MAX_NUM_AKM_SUITES,
+
+       NL80211_ATTR_EML_CAPABILITY,
+       NL80211_ATTR_MLD_CAPA_AND_OPS,
+
+       NL80211_ATTR_TX_HW_TIMESTAMP,
+       NL80211_ATTR_RX_HW_TIMESTAMP,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -3229,6 +3323,11 @@ enum nl80211_attrs {
 #define NL80211_HE_MIN_CAPABILITY_LEN           16
 #define NL80211_HE_MAX_CAPABILITY_LEN           54
 #define NL80211_MAX_NR_CIPHER_SUITES           5
+
+/*
+ * NL80211_MAX_NR_AKM_SUITES is obsolete when %NL80211_ATTR_MAX_NUM_AKM_SUITES
+ * present in %NL80211_CMD_GET_WIPHY response.
+ */
 #define NL80211_MAX_NR_AKM_SUITES              2
 #define NL80211_EHT_MIN_CAPABILITY_LEN          13
 #define NL80211_EHT_MAX_CAPABILITY_LEN          51
@@ -4851,6 +4950,7 @@ enum nl80211_bss_scan_width {
  *     Contains a nested array of signal strength attributes (u8, dBm),
  *     using the nesting index as the antenna number.
  * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
+ * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
  * @__NL80211_BSS_AFTER_LAST: internal
  * @NL80211_BSS_MAX: highest BSS attribute
  */
@@ -4876,6 +4976,7 @@ enum nl80211_bss {
        NL80211_BSS_PARENT_BSSID,
        NL80211_BSS_CHAIN_SIGNAL,
        NL80211_BSS_FREQUENCY_OFFSET,
+       NL80211_BSS_MLO_LINK_ID,
 
        /* keep last */
        __NL80211_BSS_AFTER_LAST,
@@ -5872,7 +5973,7 @@ enum nl80211_ap_sme_features {
  * @NL80211_FEATURE_INACTIVITY_TIMER: This driver takes care of freeing up
  *     the connected inactive stations in AP mode.
  * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested
- *     to work properly to suppport receiving regulatory hints from
+ *     to work properly to support receiving regulatory hints from
  *     cellular base stations.
  * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: (no longer available, only
  *     here to reserve the value for API/ABI compatibility)