mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
260 lines
12 KiB
Diff
260 lines
12 KiB
Diff
--- a/nl80211.h
|
|
+++ b/nl80211.h
|
|
@@ -324,6 +324,17 @@
|
|
*/
|
|
|
|
/**
|
|
+ * 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_CMD_UNSPEC: unspecified command to catch errors
|
|
@@ -366,14 +377,22 @@
|
|
* the non-transmitting interfaces are deleted as well.
|
|
*
|
|
* @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
|
|
- * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
|
|
+ * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC
|
|
+ * represents peer's MLD address for MLO pairwise key. For MLO group key,
|
|
+ * the link is identified by %NL80211_ATTR_MLO_LINK_ID.
|
|
* @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,
|
|
* %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.
|
|
+ * For MLO connection, the link to set default key is identified by
|
|
+ * %NL80211_ATTR_MLO_LINK_ID.
|
|
* @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
|
|
* %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,
|
|
- * and %NL80211_ATTR_KEY_SEQ attributes.
|
|
+ * and %NL80211_ATTR_KEY_SEQ attributes. %NL80211_ATTR_MAC represents
|
|
+ * peer's MLD address for MLO pairwise key. The link to add MLO
|
|
+ * group key is identified by %NL80211_ATTR_MLO_LINK_ID.
|
|
* @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX
|
|
- * or %NL80211_ATTR_MAC.
|
|
+ * or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC represents peer's MLD address
|
|
+ * for MLO pairwise key. The link to delete group key is identified by
|
|
+ * %NL80211_ATTR_MLO_LINK_ID.
|
|
*
|
|
* @NL80211_CMD_GET_BEACON: (not used)
|
|
* @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
|
|
@@ -753,6 +772,13 @@
|
|
* %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
|
|
@@ -763,7 +789,9 @@
|
|
* 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.
|
|
*
|
|
@@ -1108,6 +1136,12 @@
|
|
* 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
|
|
@@ -1237,6 +1271,16 @@
|
|
* 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 +1525,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 +2391,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 +2716,44 @@ 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.
|
|
+ * @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
|
|
+ * (re)associations.
|
|
+ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
|
|
+ * transmit power to stay within regulatory limits. u32, dBi.
|
|
+ *
|
|
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
|
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
|
* @__NL80211_ATTR_AFTER_LAST: internal use
|
|
@@ -3177,6 +3268,23 @@ enum nl80211_attrs {
|
|
|
|
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,
|
|
+ NL80211_ATTR_TD_BITMAP,
|
|
+
|
|
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
|
|
+
|
|
/* add attributes here, update the policy in nl80211.c */
|
|
|
|
__NL80211_ATTR_AFTER_LAST,
|
|
@@ -3231,6 +3339,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
|
|
@@ -4853,6 +4966,8 @@ 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_MLD_ADDR: MLD address of this BSS if connected to it.
|
|
* @__NL80211_BSS_AFTER_LAST: internal
|
|
* @NL80211_BSS_MAX: highest BSS attribute
|
|
*/
|
|
@@ -4878,6 +4993,8 @@ enum nl80211_bss {
|
|
NL80211_BSS_PARENT_BSSID,
|
|
NL80211_BSS_CHAIN_SIGNAL,
|
|
NL80211_BSS_FREQUENCY_OFFSET,
|
|
+ NL80211_BSS_MLO_LINK_ID,
|
|
+ NL80211_BSS_MLD_ADDR,
|
|
|
|
/* keep last */
|
|
__NL80211_BSS_AFTER_LAST,
|
|
@@ -5874,7 +5991,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)
|
|
@@ -6174,6 +6291,14 @@ enum nl80211_feature_flags {
|
|
* @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
|
|
* detection.
|
|
*
|
|
+ * @NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE: Device can perform a MAC address
|
|
+ * change without having to bring the underlying network device down
|
|
+ * first. For example, in station mode this can be used to vary the
|
|
+ * origin MAC address prior to a connection to a new AP for privacy
|
|
+ * or other reasons. Note that certain driver specific restrictions
|
|
+ * might apply, e.g. no scans in progress, no offchannel operations
|
|
+ * in progress, and no active connections.
|
|
+ *
|
|
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
|
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
|
*/
|
|
@@ -6241,6 +6366,7 @@ enum nl80211_ext_feature_index {
|
|
NL80211_EXT_FEATURE_BSS_COLOR,
|
|
NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
|
|
NL80211_EXT_FEATURE_RADAR_BACKGROUND,
|
|
+ NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
|
|
|
|
/* add new features before the definition below */
|
|
NUM_NL80211_EXT_FEATURES,
|