Sync with mac80211-next.git include/uapi/linux/nl80211.h

This brings in nl80211 definitions as of 2018-12-15.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2018-12-21 11:12:39 +02:00
parent 3a259f073a
commit 6a24adee9c

View file

@ -1033,6 +1033,38 @@
* %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its * %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its
* address(specified in %NL80211_ATTR_MAC). * address(specified in %NL80211_ATTR_MAC).
* *
* @NL80211_CMD_GET_FTM_RESPONDER_STATS: Retrieve FTM responder statistics, in
* the %NL80211_ATTR_FTM_RESPONDER_STATS attribute.
*
* @NL80211_CMD_PEER_MEASUREMENT_START: start a (set of) peer measurement(s)
* with the given parameters, which are encapsulated in the nested
* %NL80211_ATTR_PEER_MEASUREMENTS attribute. Optionally, MAC address
* 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
* the netlink extended ack message.
*
* To cancel a measurement, close the socket that requested it.
*
* Measurement results are reported to the socket that requested the
* measurement using @NL80211_CMD_PEER_MEASUREMENT_RESULT when they
* become available, so applications must ensure a large enough socket
* buffer size.
*
* Depending on driver support it may or may not be possible to start
* multiple concurrent measurements.
* @NL80211_CMD_PEER_MEASUREMENT_RESULT: This command number is used for the
* result notification from the driver to the requesting socket.
* @NL80211_CMD_PEER_MEASUREMENT_COMPLETE: Notification only, indicating that
* the measurement completed, using the measurement cookie
* (%NL80211_ATTR_COOKIE).
*
* @NL80211_CMD_NOTIFY_RADAR: Notify the kernel that a radar signal was
* detected and reported by a neighboring device on the channel
* indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes
* determining the width and type.
*
* @NL80211_CMD_MAX: highest used command number * @NL80211_CMD_MAX: highest used command number
* @__NL80211_CMD_AFTER_LAST: internal use * @__NL80211_CMD_AFTER_LAST: internal use
*/ */
@ -1245,6 +1277,14 @@ enum nl80211_commands {
NL80211_CMD_CONTROL_PORT_FRAME, NL80211_CMD_CONTROL_PORT_FRAME,
NL80211_CMD_GET_FTM_RESPONDER_STATS,
NL80211_CMD_PEER_MEASUREMENT_START,
NL80211_CMD_PEER_MEASUREMENT_RESULT,
NL80211_CMD_PEER_MEASUREMENT_COMPLETE,
NL80211_CMD_NOTIFY_RADAR,
/* add new commands above here */ /* add new commands above here */
/* used to define NL80211_CMD_MAX below */ /* used to define NL80211_CMD_MAX below */
@ -1701,7 +1741,7 @@ enum nl80211_commands {
* the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID * the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID
* is included in the probe request, but the match attributes * is included in the probe request, but the match attributes
* will never let it go through), -EINVAL may be returned. * will never let it go through), -EINVAL may be returned.
* If ommited, no filtering is done. * If omitted, no filtering is done.
* *
* @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported
* interface combinations. In each nested item, it contains attributes * interface combinations. In each nested item, it contains attributes
@ -1806,7 +1846,7 @@ enum nl80211_commands {
* *
* @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be * @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be
* used by the drivers which has MLME in firmware and does not have support * used by the drivers which has MLME in firmware and does not have support
* to report per station tx/rx activity to free up the staion entry from * to report per station tx/rx activity to free up the station entry from
* the list. This needs to be used when the driver advertises the * the list. This needs to be used when the driver advertises the
* capability to timeout the stations. * capability to timeout the stations.
* *
@ -2167,7 +2207,7 @@ enum nl80211_commands {
* *
* @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in * @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in
* the specified band is to be adjusted before doing * the specified band is to be adjusted before doing
* %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparision to figure out * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparison to figure out
* better BSSs. The attribute value is a packed structure * better BSSs. The attribute value is a packed structure
* value as specified by &struct nl80211_bss_select_rssi_adjust. * value as specified by &struct nl80211_bss_select_rssi_adjust.
* *
@ -2241,6 +2281,24 @@ enum nl80211_commands {
* association request when used with NL80211_CMD_NEW_STATION). Can be set * association request when used with NL80211_CMD_NEW_STATION). Can be set
* only if %NL80211_STA_FLAG_WME is set. * only if %NL80211_STA_FLAG_WME is set.
* *
* @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
* in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
* measurement (FTM) responder functionality and containing parameters as
* possible, see &enum nl80211_ftm_responder_attr
*
* @NL80211_ATTR_FTM_RESPONDER_STATS: Nested attribute with FTM responder
* statistics, see &enum nl80211_ftm_responder_stats.
*
* @NL80211_ATTR_TIMEOUT: Timeout for the given operation in milliseconds (u32),
* if the attribute is not given no timeout is requested. Note that 0 is an
* invalid value.
*
* @NL80211_ATTR_PEER_MEASUREMENTS: peer measurements request (and result)
* data, uses nested attributes specified in
* &enum nl80211_peer_measurement_attrs.
* This is also used for capability advertisement in the wiphy information,
* with the appropriate sub-attributes.
*
* @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined * @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use * @__NL80211_ATTR_AFTER_LAST: internal use
@ -2682,6 +2740,14 @@ enum nl80211_attrs {
NL80211_ATTR_HE_CAPABILITY, NL80211_ATTR_HE_CAPABILITY,
NL80211_ATTR_FTM_RESPONDER,
NL80211_ATTR_FTM_RESPONDER_STATS,
NL80211_ATTR_TIMEOUT,
NL80211_ATTR_PEER_MEASUREMENTS,
/* add attributes here, update the policy in nl80211.c */ /* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST, __NL80211_ATTR_AFTER_LAST,
@ -3051,6 +3117,14 @@ enum nl80211_sta_bss_param {
* @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
* @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm) * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm)
* @NL80211_STA_INFO_ACK_SIGNAL_AVG: avg signal strength of ACK frames (s8, dBm) * @NL80211_STA_INFO_ACK_SIGNAL_AVG: avg signal strength of ACK frames (s8, dBm)
* @NL80211_STA_INFO_RX_MPDUS: total number of received packets (MPDUs)
* (u32, from this station)
* @NL80211_STA_INFO_FCS_ERROR_COUNT: total number of packets (MPDUs) received
* with an FCS error (u32, from this station). This count may not include
* some packets with an FCS error due to TA corruption. Hence this counter
* might not be fully accurate.
* @NL80211_STA_INFO_CONNECTED_TO_GATE: set to true if STA has a path to a
* mesh gate (u8, 0 or 1)
* @__NL80211_STA_INFO_AFTER_LAST: internal * @__NL80211_STA_INFO_AFTER_LAST: internal
* @NL80211_STA_INFO_MAX: highest possible station info attribute * @NL80211_STA_INFO_MAX: highest possible station info attribute
*/ */
@ -3091,6 +3165,9 @@ enum nl80211_sta_info {
NL80211_STA_INFO_PAD, NL80211_STA_INFO_PAD,
NL80211_STA_INFO_ACK_SIGNAL, NL80211_STA_INFO_ACK_SIGNAL,
NL80211_STA_INFO_ACK_SIGNAL_AVG, NL80211_STA_INFO_ACK_SIGNAL_AVG,
NL80211_STA_INFO_RX_MPDUS,
NL80211_STA_INFO_FCS_ERROR_COUNT,
NL80211_STA_INFO_CONNECTED_TO_GATE,
/* keep last */ /* keep last */
__NL80211_STA_INFO_AFTER_LAST, __NL80211_STA_INFO_AFTER_LAST,
@ -3870,6 +3947,11 @@ enum nl80211_mesh_power_mode {
* remove it from the STA's list of peers. You may set this to 0 to disable * remove it from the STA's list of peers. You may set this to 0 to disable
* the removal of the STA. Default is 30 minutes. * the removal of the STA. Default is 30 minutes.
* *
* @NL80211_MESHCONF_CONNECTED_TO_GATE: If set to true then this mesh STA
* will advertise that it is connected to a gate in the mesh formation
* field. If left unset then the mesh formation field will only
* advertise such if there is an active root mesh path.
*
* @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
*/ */
enum nl80211_meshconf_params { enum nl80211_meshconf_params {
@ -3902,6 +3984,7 @@ enum nl80211_meshconf_params {
NL80211_MESHCONF_POWER_MODE, NL80211_MESHCONF_POWER_MODE,
NL80211_MESHCONF_AWAKE_WINDOW, NL80211_MESHCONF_AWAKE_WINDOW,
NL80211_MESHCONF_PLINK_TIMEOUT, NL80211_MESHCONF_PLINK_TIMEOUT,
NL80211_MESHCONF_CONNECTED_TO_GATE,
/* keep last */ /* keep last */
__NL80211_MESHCONF_ATTR_AFTER_LAST, __NL80211_MESHCONF_ATTR_AFTER_LAST,
@ -4834,7 +4917,7 @@ enum nl80211_iface_limit_attrs {
* numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4 * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
* => allows a STA plus three P2P interfaces * => allows a STA plus three P2P interfaces
* *
* The list of these four possiblities could completely be contained * The list of these four possibilities could completely be contained
* within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate * within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate
* that any of these groups must match. * that any of these groups must match.
* *
@ -4864,7 +4947,7 @@ enum nl80211_if_combination_attrs {
* enum nl80211_plink_state - state of a mesh peer link finite state machine * enum nl80211_plink_state - state of a mesh peer link finite state machine
* *
* @NL80211_PLINK_LISTEN: initial state, considered the implicit * @NL80211_PLINK_LISTEN: initial state, considered the implicit
* state of non existant mesh peer links * state of non existent mesh peer links
* @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to
* this mesh peer * this mesh peer
* @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received
@ -5225,6 +5308,13 @@ enum nl80211_feature_flags {
* @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
* except for supported rates from the probe request content if requested * except for supported rates from the probe request content if requested
* by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag. * by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
* @NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER: Driver supports enabling fine
* timing measurement responder role.
*
* @NL80211_EXT_FEATURE_CAN_REPLACE_PTK0: Driver/device confirm that they are
* able to rekey an in-use key correctly. Userspace must not rekey PTK keys
* if this flag is not set. Ignoring this can leak clear text packets and/or
* freeze the connection.
* *
* @NUM_NL80211_EXT_FEATURES: number of extended features. * @NUM_NL80211_EXT_FEATURES: number of extended features.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index. * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@ -5263,6 +5353,8 @@ enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_TXQS, NL80211_EXT_FEATURE_TXQS,
NL80211_EXT_FEATURE_SCAN_RANDOM_SN, NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
/* add new features before the definition below */ /* add new features before the definition below */
NUM_NL80211_EXT_FEATURES, NUM_NL80211_EXT_FEATURES,
@ -5347,7 +5439,7 @@ enum nl80211_timeout_reason {
* request parameters IE in the probe request * request parameters IE in the probe request
* @NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP: accept broadcast probe responses * @NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP: accept broadcast probe responses
* @NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE: send probe request frames at * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE: send probe request frames at
* rate of at least 5.5M. In case non OCE AP is dicovered in the channel, * rate of at least 5.5M. In case non OCE AP is discovered in the channel,
* only the first probe req in the channel will be sent in high rate. * only the first probe req in the channel will be sent in high rate.
* @NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION: allow probe request * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION: allow probe request
* tx deferral (dot11FILSProbeDelay shall be set to 15ms) * tx deferral (dot11FILSProbeDelay shall be set to 15ms)
@ -5802,4 +5894,458 @@ enum nl80211_external_auth_action {
NL80211_EXTERNAL_AUTH_ABORT, NL80211_EXTERNAL_AUTH_ABORT,
}; };
/**
* enum nl80211_ftm_responder_attributes - fine timing measurement
* responder attributes
* @__NL80211_FTM_RESP_ATTR_INVALID: Invalid
* @NL80211_FTM_RESP_ATTR_ENABLED: FTM responder is enabled
* @NL80211_FTM_RESP_ATTR_LCI: The content of Measurement Report Element
* (9.4.2.22 in 802.11-2016) with type 8 - LCI (9.4.2.22.10),
* i.e. starting with the measurement token
* @NL80211_FTM_RESP_ATTR_CIVIC: The content of Measurement Report Element
* (9.4.2.22 in 802.11-2016) with type 11 - Civic (Section 9.4.2.22.13),
* i.e. starting with the measurement token
* @__NL80211_FTM_RESP_ATTR_LAST: Internal
* @NL80211_FTM_RESP_ATTR_MAX: highest FTM responder attribute.
*/
enum nl80211_ftm_responder_attributes {
__NL80211_FTM_RESP_ATTR_INVALID,
NL80211_FTM_RESP_ATTR_ENABLED,
NL80211_FTM_RESP_ATTR_LCI,
NL80211_FTM_RESP_ATTR_CIVICLOC,
/* keep last */
__NL80211_FTM_RESP_ATTR_LAST,
NL80211_FTM_RESP_ATTR_MAX = __NL80211_FTM_RESP_ATTR_LAST - 1,
};
/*
* enum nl80211_ftm_responder_stats - FTM responder statistics
*
* These attribute types are used with %NL80211_ATTR_FTM_RESPONDER_STATS
* when getting FTM responder statistics.
*
* @__NL80211_FTM_STATS_INVALID: attribute number 0 is reserved
* @NL80211_FTM_STATS_SUCCESS_NUM: number of FTM sessions in which all frames
* were ssfully answered (u32)
* @NL80211_FTM_STATS_PARTIAL_NUM: number of FTM sessions in which part of the
* frames were successfully answered (u32)
* @NL80211_FTM_STATS_FAILED_NUM: number of failed FTM sessions (u32)
* @NL80211_FTM_STATS_ASAP_NUM: number of ASAP sessions (u32)
* @NL80211_FTM_STATS_NON_ASAP_NUM: number of non-ASAP sessions (u32)
* @NL80211_FTM_STATS_TOTAL_DURATION_MSEC: total sessions durations - gives an
* indication of how much time the responder was busy (u64, msec)
* @NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM: number of unknown FTM triggers -
* triggers from initiators that didn't finish successfully the negotiation
* phase with the responder (u32)
* @NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM: number of FTM reschedule requests
* - initiator asks for a new scheduling although it already has scheduled
* FTM slot (u32)
* @NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM: number of FTM triggers out of
* scheduled window (u32)
* @NL80211_FTM_STATS_PAD: used for padding, ignore
* @__NL80211_TXQ_ATTR_AFTER_LAST: Internal
* @NL80211_FTM_STATS_MAX: highest possible FTM responder stats attribute
*/
enum nl80211_ftm_responder_stats {
__NL80211_FTM_STATS_INVALID,
NL80211_FTM_STATS_SUCCESS_NUM,
NL80211_FTM_STATS_PARTIAL_NUM,
NL80211_FTM_STATS_FAILED_NUM,
NL80211_FTM_STATS_ASAP_NUM,
NL80211_FTM_STATS_NON_ASAP_NUM,
NL80211_FTM_STATS_TOTAL_DURATION_MSEC,
NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM,
NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM,
NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM,
NL80211_FTM_STATS_PAD,
/* keep last */
__NL80211_FTM_STATS_AFTER_LAST,
NL80211_FTM_STATS_MAX = __NL80211_FTM_STATS_AFTER_LAST - 1
};
/**
* enum nl80211_preamble - frame preamble types
* @NL80211_PREAMBLE_LEGACY: legacy (HR/DSSS, OFDM, ERP PHY) preamble
* @NL80211_PREAMBLE_HT: HT preamble
* @NL80211_PREAMBLE_VHT: VHT preamble
* @NL80211_PREAMBLE_DMG: DMG preamble
*/
enum nl80211_preamble {
NL80211_PREAMBLE_LEGACY,
NL80211_PREAMBLE_HT,
NL80211_PREAMBLE_VHT,
NL80211_PREAMBLE_DMG,
};
/**
* enum nl80211_peer_measurement_type - peer measurement types
* @NL80211_PMSR_TYPE_INVALID: invalid/unused, needed as we use
* these numbers also for attributes
*
* @NL80211_PMSR_TYPE_FTM: flight time measurement
*
* @NUM_NL80211_PMSR_TYPES: internal
* @NL80211_PMSR_TYPE_MAX: highest type number
*/
enum nl80211_peer_measurement_type {
NL80211_PMSR_TYPE_INVALID,
NL80211_PMSR_TYPE_FTM,
NUM_NL80211_PMSR_TYPES,
NL80211_PMSR_TYPE_MAX = NUM_NL80211_PMSR_TYPES - 1
};
/**
* enum nl80211_peer_measurement_status - peer measurement status
* @NL80211_PMSR_STATUS_SUCCESS: measurement completed successfully
* @NL80211_PMSR_STATUS_REFUSED: measurement was locally refused
* @NL80211_PMSR_STATUS_TIMEOUT: measurement timed out
* @NL80211_PMSR_STATUS_FAILURE: measurement failed, a type-dependent
* reason may be available in the response data
*/
enum nl80211_peer_measurement_status {
NL80211_PMSR_STATUS_SUCCESS,
NL80211_PMSR_STATUS_REFUSED,
NL80211_PMSR_STATUS_TIMEOUT,
NL80211_PMSR_STATUS_FAILURE,
};
/**
* enum nl80211_peer_measurement_req - peer measurement request attributes
* @__NL80211_PMSR_REQ_ATTR_INVALID: invalid
*
* @NL80211_PMSR_REQ_ATTR_DATA: This is a nested attribute with measurement
* type-specific request data inside. The attributes used are from the
* enums named nl80211_peer_measurement_<type>_req.
* @NL80211_PMSR_REQ_ATTR_GET_AP_TSF: include AP TSF timestamp, if supported
* (flag attribute)
*
* @NUM_NL80211_PMSR_REQ_ATTRS: internal
* @NL80211_PMSR_REQ_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_req {
__NL80211_PMSR_REQ_ATTR_INVALID,
NL80211_PMSR_REQ_ATTR_DATA,
NL80211_PMSR_REQ_ATTR_GET_AP_TSF,
/* keep last */
NUM_NL80211_PMSR_REQ_ATTRS,
NL80211_PMSR_REQ_ATTR_MAX = NUM_NL80211_PMSR_REQ_ATTRS - 1
};
/**
* enum nl80211_peer_measurement_resp - peer measurement response attributes
* @__NL80211_PMSR_RESP_ATTR_INVALID: invalid
*
* @NL80211_PMSR_RESP_ATTR_DATA: This is a nested attribute with measurement
* type-specific results inside. The attributes used are from the enums
* named nl80211_peer_measurement_<type>_resp.
* @NL80211_PMSR_RESP_ATTR_STATUS: u32 value with the measurement status
* (using values from &enum nl80211_peer_measurement_status.)
* @NL80211_PMSR_RESP_ATTR_HOST_TIME: host time (%CLOCK_BOOTTIME) when the
* result was measured; this value is not expected to be accurate to
* more than 20ms. (u64, nanoseconds)
* @NL80211_PMSR_RESP_ATTR_AP_TSF: TSF of the AP that the interface
* doing the measurement is connected to when the result was measured.
* This shall be accurately reported if supported and requested
* (u64, usec)
* @NL80211_PMSR_RESP_ATTR_FINAL: If results are sent to the host partially
* (*e.g. with FTM per-burst data) this flag will be cleared on all but
* the last result; if all results are combined it's set on the single
* result.
* @NL80211_PMSR_RESP_ATTR_PAD: padding for 64-bit attributes, ignore
*
* @NUM_NL80211_PMSR_RESP_ATTRS: internal
* @NL80211_PMSR_RESP_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_resp {
__NL80211_PMSR_RESP_ATTR_INVALID,
NL80211_PMSR_RESP_ATTR_DATA,
NL80211_PMSR_RESP_ATTR_STATUS,
NL80211_PMSR_RESP_ATTR_HOST_TIME,
NL80211_PMSR_RESP_ATTR_AP_TSF,
NL80211_PMSR_RESP_ATTR_FINAL,
NL80211_PMSR_RESP_ATTR_PAD,
/* keep last */
NUM_NL80211_PMSR_RESP_ATTRS,
NL80211_PMSR_RESP_ATTR_MAX = NUM_NL80211_PMSR_RESP_ATTRS - 1
};
/**
* enum nl80211_peer_measurement_peer_attrs - peer attributes for measurement
* @__NL80211_PMSR_PEER_ATTR_INVALID: invalid
*
* @NL80211_PMSR_PEER_ATTR_ADDR: peer's MAC address
* @NL80211_PMSR_PEER_ATTR_CHAN: channel definition, nested, using top-level
* attributes like %NL80211_ATTR_WIPHY_FREQ etc.
* @NL80211_PMSR_PEER_ATTR_REQ: This is a nested attribute indexed by
* measurement type, with attributes from the
* &enum nl80211_peer_measurement_req inside.
* @NL80211_PMSR_PEER_ATTR_RESP: This is a nested attribute indexed by
* measurement type, with attributes from the
* &enum nl80211_peer_measurement_resp inside.
*
* @NUM_NL80211_PMSR_PEER_ATTRS: internal
* @NL80211_PMSR_PEER_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_peer_attrs {
__NL80211_PMSR_PEER_ATTR_INVALID,
NL80211_PMSR_PEER_ATTR_ADDR,
NL80211_PMSR_PEER_ATTR_CHAN,
NL80211_PMSR_PEER_ATTR_REQ,
NL80211_PMSR_PEER_ATTR_RESP,
/* keep last */
NUM_NL80211_PMSR_PEER_ATTRS,
NL80211_PMSR_PEER_ATTR_MAX = NUM_NL80211_PMSR_PEER_ATTRS - 1,
};
/**
* enum nl80211_peer_measurement_attrs - peer measurement attributes
* @__NL80211_PMSR_ATTR_INVALID: invalid
*
* @NL80211_PMSR_ATTR_MAX_PEERS: u32 attribute used for capability
* advertisement only, indicates the maximum number of peers
* measurements can be done with in a single request
* @NL80211_PMSR_ATTR_REPORT_AP_TSF: flag attribute in capability
* indicating that the connected AP's TSF can be reported in
* measurement results
* @NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR: flag attribute in capability
* indicating that MAC address randomization is supported.
* @NL80211_PMSR_ATTR_TYPE_CAPA: capabilities reported by the device,
* this contains a nesting indexed by measurement type, and
* type-specific capabilities inside, which are from the enums
* named nl80211_peer_measurement_<type>_capa.
* @NL80211_PMSR_ATTR_PEERS: nested attribute, the nesting index is
* meaningless, just a list of peers to measure with, with the
* sub-attributes taken from
* &enum nl80211_peer_measurement_peer_attrs.
*
* @NUM_NL80211_PMSR_ATTR: internal
* @NL80211_PMSR_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_attrs {
__NL80211_PMSR_ATTR_INVALID,
NL80211_PMSR_ATTR_MAX_PEERS,
NL80211_PMSR_ATTR_REPORT_AP_TSF,
NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR,
NL80211_PMSR_ATTR_TYPE_CAPA,
NL80211_PMSR_ATTR_PEERS,
/* keep last */
NUM_NL80211_PMSR_ATTR,
NL80211_PMSR_ATTR_MAX = NUM_NL80211_PMSR_ATTR - 1
};
/**
* enum nl80211_peer_measurement_ftm_capa - FTM capabilities
* @__NL80211_PMSR_FTM_CAPA_ATTR_INVALID: invalid
*
* @NL80211_PMSR_FTM_CAPA_ATTR_ASAP: flag attribute indicating ASAP mode
* is supported
* @NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP: flag attribute indicating non-ASAP
* mode is supported
* @NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI: flag attribute indicating if LCI
* data can be requested during the measurement
* @NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC: flag attribute indicating if civic
* location data can be requested during the measurement
* @NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES: u32 bitmap attribute of bits
* from &enum nl80211_preamble.
* @NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS: bitmap of values from
* &enum nl80211_chan_width indicating the supported channel
* bandwidths for FTM. Note that a higher channel bandwidth may be
* configured to allow for other measurements types with different
* bandwidth requirement in the same measurement.
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT: u32 attribute indicating
* the maximum bursts exponent that can be used (if not present anything
* is valid)
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST: u32 attribute indicating
* the maximum FTMs per burst (if not present anything is valid)
*
* @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_ftm_capa {
__NL80211_PMSR_FTM_CAPA_ATTR_INVALID,
NL80211_PMSR_FTM_CAPA_ATTR_ASAP,
NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP,
NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI,
NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC,
NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES,
NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS,
NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT,
NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
/* keep last */
NUM_NL80211_PMSR_FTM_CAPA_ATTR,
NL80211_PMSR_FTM_CAPA_ATTR_MAX = NUM_NL80211_PMSR_FTM_CAPA_ATTR - 1
};
/**
* enum nl80211_peer_measurement_ftm_req - FTM request attributes
* @__NL80211_PMSR_FTM_REQ_ATTR_INVALID: invalid
*
* @NL80211_PMSR_FTM_REQ_ATTR_ASAP: ASAP mode requested (flag)
* @NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE: preamble type (see
* &enum nl80211_preamble), optional for DMG (u32)
* @NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP: number of bursts exponent as in
* 802.11-2016 9.4.2.168 "Fine Timing Measurement Parameters element"
* (u8, 0-15, optional with default 15 i.e. "no preference")
* @NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD: interval between bursts in units
* of 100ms (u16, optional with default 0)
* @NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION: burst duration, as in 802.11-2016
* Table 9-257 "Burst Duration field encoding" (u8, 0-15, optional with
* default 15 i.e. "no preference")
* @NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST: number of successful FTM frames
* requested per burst
* (u8, 0-31, optional with default 0 i.e. "no preference")
* @NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES: number of FTMR frame retries
* (u8, default 3)
* @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag)
* @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC: request civic location data
* (flag)
*
* @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
* @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_ftm_req {
__NL80211_PMSR_FTM_REQ_ATTR_INVALID,
NL80211_PMSR_FTM_REQ_ATTR_ASAP,
NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE,
NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP,
NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD,
NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION,
NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST,
NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES,
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI,
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
/* keep last */
NUM_NL80211_PMSR_FTM_REQ_ATTR,
NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
};
/**
* enum nl80211_peer_measurement_ftm_failure_reasons - FTM failure reasons
* @NL80211_PMSR_FTM_FAILURE_UNSPECIFIED: unspecified failure, not used
* @NL80211_PMSR_FTM_FAILURE_NO_RESPONSE: no response from the FTM responder
* @NL80211_PMSR_FTM_FAILURE_REJECTED: FTM responder rejected measurement
* @NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL: we already know the peer is
* on a different channel, so can't measure (if we didn't know, we'd
* try and get no response)
* @NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE: peer can't actually do FTM
* @NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP: invalid T1/T4 timestamps
* received
* @NL80211_PMSR_FTM_FAILURE_PEER_BUSY: peer reports busy, you may retry
* later (see %NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME)
* @NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS: parameters were changed
* by the peer and are no longer supported
*/
enum nl80211_peer_measurement_ftm_failure_reasons {
NL80211_PMSR_FTM_FAILURE_UNSPECIFIED,
NL80211_PMSR_FTM_FAILURE_NO_RESPONSE,
NL80211_PMSR_FTM_FAILURE_REJECTED,
NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL,
NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE,
NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP,
NL80211_PMSR_FTM_FAILURE_PEER_BUSY,
NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS,
};
/**
* enum nl80211_peer_measurement_ftm_resp - FTM response attributes
* @__NL80211_PMSR_FTM_RESP_ATTR_INVALID: invalid
*
* @NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON: FTM-specific failure reason
* (u32, optional)
* @NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX: optional, if bursts are reported
* as separate results then it will be the burst index 0...(N-1) and
* the top level will indicate partial results (u32)
* @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS: number of FTM Request frames
* transmitted (u32, optional)
* @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES: number of FTM Request frames
* that were acknowleged (u32, optional)
* @NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME: retry time received from the
* busy peer (u32, seconds)
* @NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP: actual number of bursts exponent
* used by the responder (similar to request, u8)
* @NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION: actual burst duration used by
* the responder (similar to request, u8)
* @NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST: actual FTMs per burst used
* by the responder (similar to request, u8)
* @NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG: average RSSI across all FTM action
* frames (optional, s32, 1/2 dBm)
* @NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD: RSSI spread across all FTM action
* frames (optional, s32, 1/2 dBm)
* @NL80211_PMSR_FTM_RESP_ATTR_TX_RATE: bitrate we used for the response to the
* FTM action frame (optional, nested, using &enum nl80211_rate_info
* attributes)
* @NL80211_PMSR_FTM_RESP_ATTR_RX_RATE: bitrate the responder used for the FTM
* action frame (optional, nested, using &enum nl80211_rate_info attrs)
* @NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG: average RTT (s64, picoseconds, optional
* but one of RTT/DIST must be present)
* @NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE: RTT variance (u64, ps^2, note that
* standard deviation is the square root of variance, optional)
* @NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD: RTT spread (u64, picoseconds,
* optional)
* @NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG: average distance (s64, mm, optional
* but one of RTT/DIST must be present)
* @NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE: distance variance (u64, mm^2, note
* that standard deviation is the square root of variance, optional)
* @NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD: distance spread (u64, mm, optional)
* @NL80211_PMSR_FTM_RESP_ATTR_LCI: LCI data from peer (binary, optional);
* this is the contents of the Measurement Report Element (802.11-2016
* 9.4.2.22.1) starting with the Measurement Token, with Measurement
* Type 8.
* @NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC: civic location data from peer
* (binary, optional);
* this is the contents of the Measurement Report Element (802.11-2016
* 9.4.2.22.1) starting with the Measurement Token, with Measurement
* Type 11.
* @NL80211_PMSR_FTM_RESP_ATTR_PAD: ignore, for u64/s64 padding only
*
* @NUM_NL80211_PMSR_FTM_RESP_ATTR: internal
* @NL80211_PMSR_FTM_RESP_ATTR_MAX: highest attribute number
*/
enum nl80211_peer_measurement_ftm_resp {
__NL80211_PMSR_FTM_RESP_ATTR_INVALID,
NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON,
NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX,
NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS,
NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES,
NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME,
NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP,
NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION,
NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST,
NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG,
NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD,
NL80211_PMSR_FTM_RESP_ATTR_TX_RATE,
NL80211_PMSR_FTM_RESP_ATTR_RX_RATE,
NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG,
NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE,
NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD,
NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG,
NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE,
NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD,
NL80211_PMSR_FTM_RESP_ATTR_LCI,
NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC,
NL80211_PMSR_FTM_RESP_ATTR_PAD,
/* keep last */
NUM_NL80211_PMSR_FTM_RESP_ATTR,
NL80211_PMSR_FTM_RESP_ATTR_MAX = NUM_NL80211_PMSR_FTM_RESP_ATTR - 1
};
#endif /* __LINUX_NL80211_H */ #endif /* __LINUX_NL80211_H */