blob: 714f1b85a42f5724be6a50fedd28d2c73d93de46 [file] [log] [blame]
/*
* This file is part of the UWB stack for linux.
*
* Copyright (c) 2020-2021 Qorvo US, Inc.
*
* This software is provided under the GNU General Public License, version 2
* (GPLv2), as well as under a Qorvo commercial license.
*
* You may choose to use this software under the terms of the GPLv2 License,
* version 2 ("GPLv2"), as published by the Free Software Foundation.
* You should have received a copy of the GPLv2 along with this program. If
* not, see <http://www.gnu.org/licenses/>.
*
* This program is distributed under the GPLv2 in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GPLv2 for more
* details.
*
* If you cannot meet the requirements of the GPLv2, you may not use this
* software for any purpose without first obtaining a commercial license from
* Qorvo. Please contact Qorvo to inquire about licensing terms.
*/
#ifndef FIRA_REGION_NL_H
#define FIRA_REGION_NL_H
/**
* enum fira_call - Fira calls identifiers.
*
* @FIRA_CALL_GET_CAPABILITIES:
* Request Fira capabilities.
* @FIRA_CALL_SESSION_INIT:
* Initialize Fira session.
* @FIRA_CALL_SESSION_START:
* Start Fira session.
* @FIRA_CALL_SESSION_STOP:
* Stop Fira session.
* @FIRA_CALL_SESSION_DEINIT:
* Deinit Fira session.
* @FIRA_CALL_SESSION_SET_PARAMS:
* Set session parameters.
* @FIRA_CALL_NEW_CONTROLEE:
* Add a new controlee to a session.
* @FIRA_CALL_DEL_CONTROLEE:
* Delete controlee from the session.
* @FIRA_CALL_SESSION_NOTIFICATION:
* Notify session reports.
* @FIRA_CALL_SESSION_GET_PARAMS:
* Get session parameters.
* @FIRA_CALL_SESSION_GET_STATE:
* Get session state.
* @FIRA_CALL_SESSION_GET_COUNT:
* Get count of active and inactive sessions.
* @FIRA_CALL_MAX: Internal use.
*/
enum fira_call {
FIRA_CALL_GET_CAPABILITIES,
FIRA_CALL_SESSION_INIT,
FIRA_CALL_SESSION_START,
FIRA_CALL_SESSION_STOP,
FIRA_CALL_SESSION_DEINIT,
FIRA_CALL_SESSION_SET_PARAMS,
FIRA_CALL_NEW_CONTROLEE,
FIRA_CALL_DEL_CONTROLEE,
FIRA_CALL_SESSION_NOTIFICATION,
FIRA_CALL_SESSION_GET_PARAMS,
FIRA_CALL_SESSION_GET_STATE,
FIRA_CALL_SESSION_GET_COUNT,
FIRA_CALL_SESSION_STATE_NOTIFICATION,
FIRA_CALL_MAX,
};
/**
* enum fira_capability_attrs - Fira capabilities.
*
* @FIRA_CAPABILITY_ATTR_FIRA_PHY_VERSION_RANGE:
* FiRa PHY version range supported, ex: 0x01010202 -> support from 1.1 to 2.2.
* @FIRA_CAPABILITY_ATTR_FIRA_MAC_VERSION_RANGE:
* FiRa MAC version range supported, ex: @0x01010202 -> support from 1.1 to 2.2.
* @FIRA_CAPABILITY_ATTR_DEVICE_CLASS:
* Class of FiRa device.
* @FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLEE_RESPONDER:
* Acting as a controlee/responder supported.
* @FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLEE_INITIATOR:
* Acting as a controlee/initiator supported.
* @FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLLER_RESPONDER:
* Acting as a controller/responder supported.
* @FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLLER_INITIATOR:
* Acting as a controller/initiator supported.
* @FIRA_CAPABILITY_ATTR_MULTI_NODE_MODE_UNICAST:
* Unicast supported.
* @FIRA_CAPABILITY_ATTR_MULTI_NODE_MODE_ONE_TO_MANY:
* One to many supported.
* @FIRA_CAPABILITY_ATTR_RANGING_ROUND_USAGE_SS_TWR:
* SS-TWR supported.
* @FIRA_CAPABILITY_ATTR_RANGING_ROUND_USAGE_DS_TWR:
* DS-TWR supported.
* @FIRA_CAPABILITY_ATTR_NUMBER_OF_CONTROLEES_MAX:
* Maximum number of controlee, no limit if not present (but the size of
* the control message is a limit).
* @FIRA_CAPABILITY_ATTR_ROUND_HOPPING:
* Round hopping supported.
* @FIRA_CAPABILITY_ATTR_BLOCK_STRIDING:
* Block striding supported.
* @FIRA_CAPABILITY_ATTR_EMBEDDED_MODE_NON_DEFERRED:
* Non-deferred mode supported.
* @FIRA_CAPABILITY_ATTR_CHANNEL_NUMBER:
* Bitmask, with bits 5, 6, 8, 9, 10, 12, 13 and 14 representing
* the corresponding channel support.
* @FIRA_CAPABILITY_ATTR_RFRAME_CONFIG_SP0:
* SP0 supported.
* @FIRA_CAPABILITY_ATTR_RFRAME_CONFIG_SP1:
* SP1 supported.
* @FIRA_CAPABILITY_ATTR_RFRAME_CONFIG_SP3:
* SP3 supported.
* @FIRA_CAPABILITY_ATTR_PRF_MODE_BPRF:
* BPRF supported.
* @FIRA_CAPABILITY_ATTR_PRF_MODE_HPRF:
* HPRF supported.
* @FIRA_CAPABILITY_ATTR_PREAMBLE_DURATION_64:
* Preamble duration 64 symbols supported.
* @FIRA_CAPABILITY_ATTR_PREAMBLE_DURATION_32:
* Preamble duration 32 symbols supported.
* @FIRA_CAPABILITY_ATTR_SFD_ID_0:
* SFD 0 supported.
* @FIRA_CAPABILITY_ATTR_SFD_ID_1:
* SFD 1 supported.
* @FIRA_CAPABILITY_ATTR_SFD_ID_2:
* SFD 2 supported.
* @FIRA_CAPABILITY_ATTR_SFD_ID_3:
* SFD 3 supported.
* @FIRA_CAPABILITY_ATTR_SFD_ID_4:
* SFD 4 supported.
* @FIRA_CAPABILITY_ATTR_NUMBER_OF_STS_SEGMENTS_0:
* 0 segment for STS supported (SP0).
* @FIRA_CAPABILITY_ATTR_NUMBER_OF_STS_SEGMENTS_1:
* 1 segment for STS supported.
* @FIRA_CAPABILITY_ATTR_NUMBER_OF_STS_SEGMENTS_2:
* 2 segments for STS supported.
* @FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_6M81:
* 6.81 Mbps support.
* @FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_7M80:
* 7.80 Mbps support.
* @FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_27M2:
* 27.2 Mbps support.
* @FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_31M2:
* 31.2 Mbps support.
* @FIRA_CAPABILITY_ATTR_BPRF_PHR_DATA_RATE_850K:
* 850 kbps for PHR in BPRF supported.
* @FIRA_CAPABILITY_ATTR_BPRF_PHR_DATA_RATE_6M81:
* 6.81 Mbps for PHR in BPRF supported.
* @FIRA_CAPABILITY_ATTR_MAC_FCS_TYPE_CRC32:
* CRC32 supported.
* @FIRA_CAPABILITY_ATTR_TX_ADAPTIVE_PAYLOAD_POWER:
* Adaptive payload power for TX supported.
* @FIRA_CAPABILITY_ATTR_RX_ANTENNA_PAIRS:
* Number of antenna pairs for RX.
* @FIRA_CAPABILITY_ATTR_TX_ANTENNAS:
* Number of antennas for TX.
* @FIRA_CAPABILITY_ATTR_STS_CONFIG_STATIC:
* Static STS supported.
* @FIRA_CAPABILITY_ATTR_STS_CONFIG_DYNAMIC:
* Dynamic STS supported.
* @FIRA_CAPABILITY_ATTR_STS_CONFIG_DYNAMIC_INDIVIDUAL:
* Dynamic STS for controlee individual keys supported.
* @FIRA_CAPABILITY_ATTR_AOA_AZIMUTH:
* AoA in azimuth supported.
* @FIRA_CAPABILITY_ATTR_AOA_AZIMUTH_FULL:
* AoA in azimuth supported on full circle (front/back difference).
* @FIRA_CAPABILITY_ATTR_AOA_ELEVATION:
* AoA in elevation supported.
* @FIRA_CAPABILITY_ATTR_AOA_FOM:
* AoA FOM supported.
*
* @FIRA_CAPABILITY_ATTR_UNSPEC: Invalid command.
* @__FIRA_CAPABILITY_ATTR_AFTER_LAST: Internal use.
* @FIRA_CAPABILITY_ATTR_MAX: Internal use.
*/
enum fira_capability_attrs {
FIRA_CAPABILITY_ATTR_UNSPEC,
/* Main session capabilities. */
FIRA_CAPABILITY_ATTR_FIRA_PHY_VERSION_RANGE,
FIRA_CAPABILITY_ATTR_FIRA_MAC_VERSION_RANGE,
FIRA_CAPABILITY_ATTR_DEVICE_CLASS,
FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLEE_RESPONDER,
FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLEE_INITIATOR,
FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLLER_RESPONDER,
FIRA_CAPABILITY_ATTR_DEVICE_TYPE_CONTROLLER_INITIATOR,
FIRA_CAPABILITY_ATTR_MULTI_NODE_MODE_UNICAST,
FIRA_CAPABILITY_ATTR_MULTI_NODE_MODE_ONE_TO_MANY,
FIRA_CAPABILITY_ATTR_RANGING_ROUND_USAGE_SS_TWR,
FIRA_CAPABILITY_ATTR_RANGING_ROUND_USAGE_DS_TWR,
FIRA_CAPABILITY_ATTR_NUMBER_OF_CONTROLEES_MAX,
/* Behaviour. */
FIRA_CAPABILITY_ATTR_ROUND_HOPPING,
FIRA_CAPABILITY_ATTR_BLOCK_STRIDING,
FIRA_CAPABILITY_ATTR_EMBEDDED_MODE_NON_DEFERRED,
/* Radio. */
FIRA_CAPABILITY_ATTR_CHANNEL_NUMBER,
FIRA_CAPABILITY_ATTR_RFRAME_CONFIG_SP0,
FIRA_CAPABILITY_ATTR_RFRAME_CONFIG_SP1,
FIRA_CAPABILITY_ATTR_RFRAME_CONFIG_SP3,
FIRA_CAPABILITY_ATTR_PRF_MODE_BPRF,
FIRA_CAPABILITY_ATTR_PRF_MODE_HPRF,
FIRA_CAPABILITY_ATTR_PREAMBLE_DURATION_64,
FIRA_CAPABILITY_ATTR_PREAMBLE_DURATION_32,
FIRA_CAPABILITY_ATTR_SFD_ID_0,
FIRA_CAPABILITY_ATTR_SFD_ID_1,
FIRA_CAPABILITY_ATTR_SFD_ID_2,
FIRA_CAPABILITY_ATTR_SFD_ID_3,
FIRA_CAPABILITY_ATTR_SFD_ID_4,
FIRA_CAPABILITY_ATTR_NUMBER_OF_STS_SEGMENTS_0,
FIRA_CAPABILITY_ATTR_NUMBER_OF_STS_SEGMENTS_1,
FIRA_CAPABILITY_ATTR_NUMBER_OF_STS_SEGMENTS_2,
FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_6M81,
FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_7M80,
FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_27M2,
FIRA_CAPABILITY_ATTR_PSDU_DATA_RATE_31M2,
FIRA_CAPABILITY_ATTR_BPRF_PHR_DATA_RATE_850K,
FIRA_CAPABILITY_ATTR_BPRF_PHR_DATA_RATE_6M81,
FIRA_CAPABILITY_ATTR_MAC_FCS_TYPE_CRC32,
FIRA_CAPABILITY_ATTR_TX_ADAPTIVE_PAYLOAD_POWER,
/* Antenna. */
FIRA_CAPABILITY_ATTR_RX_ANTENNA_PAIRS,
FIRA_CAPABILITY_ATTR_TX_ANTENNAS,
/* STS and crypto capabilities. */
FIRA_CAPABILITY_ATTR_STS_CONFIG_STATIC,
FIRA_CAPABILITY_ATTR_STS_CONFIG_DYNAMIC,
FIRA_CAPABILITY_ATTR_STS_CONFIG_DYNAMIC_INDIVIDUAL,
/* Report. */
FIRA_CAPABILITY_ATTR_AOA_AZIMUTH,
FIRA_CAPABILITY_ATTR_AOA_AZIMUTH_FULL,
FIRA_CAPABILITY_ATTR_AOA_ELEVATION,
FIRA_CAPABILITY_ATTR_AOA_FOM,
__FIRA_CAPABILITY_ATTR_AFTER_LAST,
FIRA_CAPABILITY_ATTR_MAX = __FIRA_CAPABILITY_ATTR_AFTER_LAST - 1
};
/**
* enum fira_call_attrs - Fira call attributes.
*
* @FIRA_CALL_ATTR_SESSION_ID:
* Session identifier.
* @FIRA_CALL_ATTR_SESSION_PARAMS:
* Session parameters.
* @FIRA_CALL_ATTR_CONTROLEES:
* Controlees information.
* @FIRA_CALL_ATTR_RANGING_DATA:
* Ranging data.
*
* @FIRA_CALL_ATTR_UNSPEC: Invalid command.
* @__FIRA_CALL_ATTR_AFTER_LAST: Internal use.
* @FIRA_CALL_ATTR_MAX: Internal use.
*/
enum fira_call_attrs {
FIRA_CALL_ATTR_UNSPEC,
FIRA_CALL_ATTR_SESSION_ID,
FIRA_CALL_ATTR_SESSION_PARAMS,
FIRA_CALL_ATTR_CONTROLEES,
FIRA_CALL_ATTR_RANGING_DATA,
FIRA_CALL_ATTR_SESSION_STATE,
FIRA_CALL_ATTR_SESSION_COUNT,
__FIRA_CALL_ATTR_AFTER_LAST,
FIRA_CALL_ATTR_MAX = __FIRA_CALL_ATTR_AFTER_LAST - 1
};
/**
* enum fira_session_param_attrs - Fira session parameters attributes.
*
* @FIRA_SESSION_PARAM_ATTR_DEVICE_TYPE:
* Controlee (0) or controller (1)
* @FIRA_SESSION_PARAM_ATTR_DEVICE_ROLE:
* Responder (0) or initiator (1)
* @FIRA_SESSION_PARAM_ATTR_RANGING_ROUND_USAGE:
* OWR (0, unused, not in FiRa 1.1), SS-TWR (1) or DS-TWR (2, default)
* @FIRA_SESSION_PARAM_ATTR_MULTI_NODE_MODE:
* Unicast (0), one to many (1) or many to many (2, unused)
* @FIRA_SESSION_PARAM_ATTR_SHORT_ADDR:
* Override device address for this session (UCI: DEVICE_MAC_ADDRESS)
* @FIRA_SESSION_PARAM_ATTR_DESTINATION_SHORT_ADDR:
* Controller short addresses (UCI: DST_MAC_ADDRESS) [controlee only]
* @FIRA_SESSION_PARAM_ATTR_INITIATION_TIME_MS:
* Initiation time in unit of 1200 RSTU (same as ms), default 0.
* @FIRA_SESSION_PARAM_ATTR_SLOT_DURATION_RSTU:
* Duration of a slot in RSTU, default 2400. (2 ms)
* @FIRA_SESSION_PARAM_ATTR_BLOCK_DURATION_MS:
* Block size in unit of 1200 RSTU (same as ms), default 200.
* @FIRA_SESSION_PARAM_ATTR_ROUND_DURATION_SLOTS:
* Number of slots per ranging round, default 30 (UCI: SLOTS_PER_RR)
* @FIRA_SESSION_PARAM_ATTR_BLOCK_STRIDING_VALUE:
* Value of block striding, default 0, can be changed when the
* session is active [controller only]
* @FIRA_SESSION_PARAM_ATTR_MAX_RR_RETRY:
* Number of failed ranging round attempts before stopping the session,
* or disabled (0, default) [controller only]
* @FIRA_SESSION_PARAM_ATTR_ROUND_HOPPING:
* Disabled (0, default) or enabled (1)
* @FIRA_SESSION_PARAM_ATTR_BLOCK_STRIDING:
* Disabled (0, default) or enabled upon controller decision (1)
* @FIRA_SESSION_PARAM_ATTR_PRIORITY:
* Priority value, higher has more priority (1-100, default 50)
* @FIRA_SESSION_PARAM_ATTR_RESULT_REPORT_PHASE:
* Disabled (0) or enabled (1, default) report phase [controller only]
* @FIRA_SESSION_PARAM_ATTR_MAX_NUMBER_OF_MEASUREMENTS:
* Number of measurements
* @FIRA_SESSION_PARAM_ATTR_MR_AT_INITIATOR:
* Measurement report available at responder (0, default)
* or at initiator (1) [controller only]
* @FIRA_SESSION_PARAM_ATTR_EMBEDDED_MODE:
* Deferred (0, default) or non-deferred (1) (not in UCI)
* @FIRA_SESSION_PARAM_ATTR_IN_BAND_TERMINATION_ATTEMPT_COUNT:
* 1-10, default 1 [controller only]
* @FIRA_SESSION_PARAM_ATTR_CHANNEL_NUMBER:
* Override channel for this session: 5, 6, 8, 9, 10, 12, 13 or 14
* @FIRA_SESSION_PARAM_ATTR_PREAMBLE_CODE_INDEX:
* Override preamble code for this session, BPRF (9-24),
* HPRF (25-32, not supported)
* @FIRA_SESSION_PARAM_ATTR_RFRAME_CONFIG:
* SP0 (0), SP1 (1), SP2 (2, unused, not in FiRa 1.1) or SP3 (3, default)
* @FIRA_SESSION_PARAM_ATTR_PRF_MODE:
* BPRF (0, default) or HPRF (1, not supported)
* @FIRA_SESSION_PARAM_ATTR_PREAMBLE_DURATION:
* 64 (1, default) or 32 (0, only for HPRF)
* @FIRA_SESSION_PARAM_ATTR_SFD_ID:
* BPRF (0 or 2), HPRF (1-4, not supported), default 2
* @FIRA_SESSION_PARAM_ATTR_NUMBER_OF_STS_SEGMENTS:
* 0-2, default to 0 for SP0, default to 1 for SP1 & SP3, 2 not supported
* @FIRA_SESSION_PARAM_ATTR_PSDU_DATA_RATE:
* 6.81 Mbps (0, default), 7.80 Mbps (1, not supported),
* 27.2 Mbps (2, not supported), 31.2 Mbps (3, not supported)
* @FIRA_SESSION_PARAM_ATTR_BPRF_PHR_DATA_RATE:
* 850 kbps (0, default) or 6.81 Mbps (1)
* @FIRA_SESSION_PARAM_ATTR_MAC_FCS_TYPE:
* CRC16 (0, default) or CRC32 (1, not supported)
* @FIRA_SESSION_PARAM_ATTR_TX_ADAPTIVE_PAYLOAD_POWER:
* Disable adaptive payload power for TX (0, default) or enable (1)
* @FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_SELECTION:
* Reception antenna selection bitmask,
* bit 0 selects first antenna pair, etc. 0 for single RX (default)
* @FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_PAIR_AZIMUTH:
* Index of the antenna pair used for azimuth angle measure,
* or 0xff if none (default)
* @FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_PAIR_ELEVATION:
* Index of the antenna pair used for elevation angle measure,
* or 0xff if none (default)
* @FIRA_SESSION_PARAM_ATTR_TX_ANTENNA_SELECTION:
* Tx antenna selection bitmask, bit 0 selects antenna 0, etc. Default to 1,
* switch between ranging rounds
* @FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_SWITCH:
* If several antenna pairs are selected, switch pairs between round (0, default),
* use azimuth pair for POLL and elevation pair for FINAL messages when using
* DS-TWR as a responder (1),
* or, when controller, request two rangings per peer, use azimuth for first
* ranging and elevation for second ranging (2)
* @FIRA_SESSION_PARAM_ATTR_STS_CONFIG:
* Static STS (0, default), dynamic STS (1) or dynamic STS for controlee
* individual keys (2)
* @FIRA_SESSION_PARAM_ATTR_SUB_SESSION_ID:
* For dynamic STS for controlee individual key, sub session ID [controlee only]
* @FIRA_SESSION_PARAM_ATTR_VUPPER64:
* vUpper64 for static STS (UCI: STATIC_STS_IV | VENDOR_ID)
* @FIRA_SESSION_PARAM_ATTR_SESSION_KEY:
* For dynamic STS, session key (not in UCI)
* @FIRA_SESSION_PARAM_ATTR_SUB_SESSION_KEY:
* For dynamic STS for controlee individual keys, sub session key [controlee only]
* @FIRA_SESSION_PARAM_ATTR_KEY_ROTATION:
* Disable (0, default) or enabled (1)
* @FIRA_SESSION_PARAM_ATTR_KEY_ROTATION_RATE:
* Key rotation rate parameter n, key rotated after 2^n rounds
* @FIRA_SESSION_PARAM_ATTR_AOA_RESULT_REQ:
* No local AoA report (0) or -90 to +90 (1, default)
* @FIRA_SESSION_PARAM_ATTR_REPORT_TOF:
* Report ToF in result message, disabled (0) or enabled (1, default)
* @FIRA_SESSION_PARAM_ATTR_REPORT_AOA_AZIMUTH:
* Report AoA azimuth in result message, disabled (0, default) or enabled (1)
* @FIRA_SESSION_PARAM_ATTR_REPORT_AOA_ELEVATION:
* Report AoA elevation in result message, disabled (0, default) or enabled (1)
* @FIRA_SESSION_PARAM_ATTR_REPORT_AOA_FOM:
* Report AoA FOM in result message, disabled (0, default) or enabled (1)
* @FIRA_SESSION_PARAM_ATTR_DATA_VENDOR_OUI:
* Set the vendor OUI for custom data exchanges
* @FIRA_SESSION_PARAM_ATTR_DATA_PAYLOAD:
* Set the data payload to send in next ranging packet
*
* @FIRA_SESSION_PARAM_ATTR_UNSPEC: Invalid command.
* @__FIRA_SESSION_PARAM_ATTR_AFTER_LAST: Internal use.
* @FIRA_SESSION_PARAM_ATTR_MAX: Internal use.
*/
enum fira_session_param_attrs {
FIRA_SESSION_PARAM_ATTR_UNSPEC,
/* Main session parameters */
FIRA_SESSION_PARAM_ATTR_DEVICE_TYPE,
FIRA_SESSION_PARAM_ATTR_DEVICE_ROLE,
FIRA_SESSION_PARAM_ATTR_RANGING_ROUND_USAGE,
FIRA_SESSION_PARAM_ATTR_MULTI_NODE_MODE,
FIRA_SESSION_PARAM_ATTR_SHORT_ADDR,
FIRA_SESSION_PARAM_ATTR_DESTINATION_SHORT_ADDR,
/* Timings */
FIRA_SESSION_PARAM_ATTR_INITIATION_TIME_MS,
FIRA_SESSION_PARAM_ATTR_SLOT_DURATION_RSTU,
FIRA_SESSION_PARAM_ATTR_BLOCK_DURATION_MS,
FIRA_SESSION_PARAM_ATTR_ROUND_DURATION_SLOTS,
FIRA_SESSION_PARAM_ATTR_BLOCK_STRIDING_VALUE,
/* Behaviour */
FIRA_SESSION_PARAM_ATTR_MAX_RR_RETRY,
FIRA_SESSION_PARAM_ATTR_ROUND_HOPPING,
FIRA_SESSION_PARAM_ATTR_BLOCK_STRIDING,
FIRA_SESSION_PARAM_ATTR_PRIORITY,
FIRA_SESSION_PARAM_ATTR_RESULT_REPORT_PHASE,
FIRA_SESSION_PARAM_ATTR_MR_AT_INITIATOR,
FIRA_SESSION_PARAM_ATTR_EMBEDDED_MODE,
FIRA_SESSION_PARAM_ATTR_IN_BAND_TERMINATION_ATTEMPT_COUNT,
/* Radio */
FIRA_SESSION_PARAM_ATTR_CHANNEL_NUMBER,
FIRA_SESSION_PARAM_ATTR_PREAMBLE_CODE_INDEX,
FIRA_SESSION_PARAM_ATTR_RFRAME_CONFIG,
FIRA_SESSION_PARAM_ATTR_PRF_MODE,
FIRA_SESSION_PARAM_ATTR_PREAMBLE_DURATION,
FIRA_SESSION_PARAM_ATTR_SFD_ID,
FIRA_SESSION_PARAM_ATTR_NUMBER_OF_STS_SEGMENTS,
FIRA_SESSION_PARAM_ATTR_PSDU_DATA_RATE,
FIRA_SESSION_PARAM_ATTR_BPRF_PHR_DATA_RATE,
FIRA_SESSION_PARAM_ATTR_MAC_FCS_TYPE,
FIRA_SESSION_PARAM_ATTR_TX_ADAPTIVE_PAYLOAD_POWER,
/* Antenna */
FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_SELECTION,
FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_PAIR_AZIMUTH,
FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_PAIR_ELEVATION,
FIRA_SESSION_PARAM_ATTR_TX_ANTENNA_SELECTION,
FIRA_SESSION_PARAM_ATTR_RX_ANTENNA_SWITCH,
/* STS and crypto */
FIRA_SESSION_PARAM_ATTR_STS_CONFIG,
FIRA_SESSION_PARAM_ATTR_SUB_SESSION_ID,
FIRA_SESSION_PARAM_ATTR_VUPPER64,
FIRA_SESSION_PARAM_ATTR_SESSION_KEY,
FIRA_SESSION_PARAM_ATTR_SUB_SESSION_KEY,
FIRA_SESSION_PARAM_ATTR_KEY_ROTATION,
FIRA_SESSION_PARAM_ATTR_KEY_ROTATION_RATE,
/* Report */
FIRA_SESSION_PARAM_ATTR_AOA_RESULT_REQ,
FIRA_SESSION_PARAM_ATTR_REPORT_TOF,
FIRA_SESSION_PARAM_ATTR_REPORT_AOA_AZIMUTH,
FIRA_SESSION_PARAM_ATTR_REPORT_AOA_ELEVATION,
FIRA_SESSION_PARAM_ATTR_REPORT_AOA_FOM,
/* Custom Data */
FIRA_SESSION_PARAM_ATTR_DATA_VENDOR_OUI,
FIRA_SESSION_PARAM_ATTR_DATA_PAYLOAD,
FIRA_SESSION_PARAM_ATTR_MAX_NUMBER_OF_MEASUREMENTS,
__FIRA_SESSION_PARAM_ATTR_AFTER_LAST,
FIRA_SESSION_PARAM_ATTR_MAX = __FIRA_SESSION_PARAM_ATTR_AFTER_LAST - 1
};
/**
* enum fira_call_controlee_attrs - Fira session parameters attributes.
*
* @FIRA_CALL_CONTROLEE_ATTR_SHORT_ADDR:
* Controlee short address.
* @FIRA_CALL_CONTROLEE_ATTR_SUB_SESSION_ID:
* Controlee sub session identifier
* @FIRA_CALL_CONTROLEE_ATTR_SUB_SESSION_KEY:
* Controlee sub session key
*
* @FIRA_CALL_CONTROLEE_ATTR_UNSPEC: Invalid command.
* @__FIRA_CALL_CONTROLEE_ATTR_AFTER_LAST: Internal use.
* @FIRA_CALL_CONTROLEE_ATTR_MAX: Internal use.
*/
enum fira_call_controlee_attrs {
FIRA_CALL_CONTROLEE_ATTR_UNSPEC,
FIRA_CALL_CONTROLEE_ATTR_SHORT_ADDR,
FIRA_CALL_CONTROLEE_ATTR_SUB_SESSION_ID,
FIRA_CALL_CONTROLEE_ATTR_SUB_SESSION_KEY,
__FIRA_CALL_CONTROLEE_ATTR_AFTER_LAST,
FIRA_CALL_CONTROLEE_ATTR_MAX = __FIRA_CALL_CONTROLEE_ATTR_AFTER_LAST - 1
};
/**
* enum fira_ranging_data_attrs_stopped_values - Values for
* FIRA_RANGING_DATA_ATTR_STOPPED attribute.
*
* @FIRA_RANGING_DATA_ATTR_STOPPED_REQUEST:
* Stopped due to stop request.
* @FIRA_RANGING_DATA_ATTR_STOPPED_IN_BAND:
* Stopped using in band signaling from the controller [controlee only].
* @FIRA_RANGING_DATA_ATTR_STOPPED_NO_RESPONSE:
* Stopped due to maximum attempts reached with no response [controller
* only].
*/
enum fira_ranging_data_attrs_stopped_values {
FIRA_RANGING_DATA_ATTR_STOPPED_REQUEST,
FIRA_RANGING_DATA_ATTR_STOPPED_IN_BAND,
FIRA_RANGING_DATA_ATTR_STOPPED_NO_RESPONSE,
};
/**
* enum fira_ranging_data_attrs - Fira ranging data attributes.
*
* @FIRA_RANGING_DATA_ATTR_STOPPED:
* If present, session was stopped, see
* &enum fira_ranging_data_attrs_stopped_values.
* @FIRA_RANGING_DATA_ATTR_BLOCK_INDEX:
* Current block index.
* @FIRA_RANGING_DATA_ATTR_TIMESTAMP_NS:
* Timestamp in nanoseconds in the CLOCK_MONOTONIC time reference.
* @FIRA_RANGING_DATA_ATTR_RANGING_INTERVAL_MS:
* Current ranging interval (block size * (stride + 1)) in unit of
* 1200 RSTU (same as ms).
* @FIRA_RANGING_DATA_ATTR_MEASUREMENTS:
* Measurements, see fira_ranging_data_measurements.
*
* @FIRA_RANGING_DATA_ATTR_UNSPEC: Invalid command.
* @__FIRA_RANGING_DATA_ATTR_AFTER_LAST: Internal use.
* @FIRA_RANGING_DATA_ATTR_MAX: Internal use.
*/
enum fira_ranging_data_attrs {
FIRA_RANGING_DATA_ATTR_UNSPEC,
FIRA_RANGING_DATA_ATTR_STOPPED,
FIRA_RANGING_DATA_ATTR_BLOCK_INDEX,
FIRA_RANGING_DATA_ATTR_TIMESTAMP_NS,
FIRA_RANGING_DATA_ATTR_RANGING_INTERVAL_MS,
FIRA_RANGING_DATA_ATTR_MEASUREMENTS,
__FIRA_RANGING_DATA_ATTR_AFTER_LAST,
FIRA_RANGING_DATA_ATTR_MAX = __FIRA_RANGING_DATA_ATTR_AFTER_LAST - 1
};
/**
* enum fira_ranging_data_measurements_attrs - Fira ranging data measurements
* attributes.
*
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_SHORT_ADDR:
* Address of the participing device.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_STOPPED:
* If present, ranging was stopped as requested [controller only].
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_STATUS:
* Status of the measurement (0: success, 1: tx failed, 2: rx timeout,
* 3: rx phy dec error, 4: rx phy toa error, 5: rx phy sts error,
* 6: rx mac dec error, 7: rx mac ie dec error, 8: rx mac ie missing)
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_SLOT_INDEX:
* In case of failure slot index where the error was detected.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_NLOS:
* Set if in non line of sight.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOS:
* Set if in line of sight.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_DISTANCE_MM:
* Distance in mm.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOCAL_AOA:
* Local AoA measurement,
* cf. fira_ranging_data_measurements_aoa_attrs.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOCAL_AOA_AZIMUTH:
* Local AoA measurement for azimuth,
* cf. fira_ranging_data_measurements_aoa_attrs.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOCAL_AOA_ELEVATION:
* Local AoA measurement for elevation,
* cf. fira_ranging_data_measurements_aoa_attrs.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_AZIMUTH_2PI:
* Estimation of reception angle in the azimuth of the participing device.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_ELEVATION_PI:
* Estimation of reception angle in elevation of the participing device.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_AZIMUTH_FOM:
* Estimation of azimuth reliability of the participing device.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_ELEVATION_FOM:
* Estimation of elevation reliability of the participing device.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_DATA_PAYLOAD_SEQ_SENT:
* Sequence number of last data sent
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_DATA_PAYLOAD_RECV:
* Received Data payload in the SP1 RFRAME
*
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_UNSPEC: Invalid command.
* @__FIRA_RANGING_DATA_MEASUREMENTS_ATTR_AFTER_LAST: Internal use.
* @FIRA_RANGING_DATA_MEASUREMENTS_ATTR_MAX: Internal use.
*/
enum fira_ranging_data_measurements_attrs {
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_UNSPEC,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_SHORT_ADDR,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_STOPPED,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_STATUS,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_SLOT_INDEX,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_NLOS,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOS,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_DISTANCE_MM,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOCAL_AOA,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOCAL_AOA_AZIMUTH,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_LOCAL_AOA_ELEVATION,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_AZIMUTH_2PI,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_ELEVATION_PI,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_AZIMUTH_FOM,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_REMOTE_AOA_ELEVATION_FOM,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_DATA_PAYLOAD_SEQ_SENT,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_DATA_PAYLOAD_RECV,
__FIRA_RANGING_DATA_MEASUREMENTS_ATTR_AFTER_LAST,
FIRA_RANGING_DATA_MEASUREMENTS_ATTR_MAX =
__FIRA_RANGING_DATA_MEASUREMENTS_ATTR_AFTER_LAST - 1
};
/**
* enum fira_ranging_data_measurements_aoa_attrs - Fira ranging AoA measurements
* attributes.
*
* @FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_RX_ANTENNA_PAIR:
* Antenna pair index.
* @FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AOA_2PI:
* Estimation of reception angle.
* @FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AOA_FOM:
* Estimation of local AoA reliability.
* @FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_PDOA_2PI:
* Estimation of reception phase difference.
*
* @FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_UNSPEC: Invalid command.
* @__FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AFTER_LAST: Internal use.
* @FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_MAX: Internal use.
*/
enum fira_ranging_data_measurements_aoa_attrs {
FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_UNSPEC,
FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_RX_ANTENNA_PAIR,
FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AOA_2PI,
FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AOA_FOM,
FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_PDOA_2PI,
__FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AFTER_LAST,
FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_MAX =
__FIRA_RANGING_DATA_MEASUREMENTS_AOA_ATTR_AFTER_LAST - 1
};
#endif /* FIRA_REGION_NL_H */