| /* |
| * This file is part of the UWB stack for linux. |
| * |
| * Copyright (c) 2020-2022 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. |
| */ |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM mcps802154_region_fira |
| |
| #if !defined(FIRA_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) |
| #define FIRA_TRACE_H |
| |
| #include <linux/tracepoint.h> |
| #include "fira_session.h" |
| #include "net/fira_region_params.h" |
| #include <net/fira_region_nl.h> |
| |
| /* clang-format off */ |
| |
| #define FIRA_SESSION_ENTRY __field(u32, session_id) |
| #define FIRA_SESSION_ASSIGN __entry->session_id = session->id |
| #define FIRA_SESSION_PR_FMT "session_id=%d" |
| #define FIRA_SESSION_PR_ARG __entry->session_id |
| |
| #define FIRA_DEVICE_TYPE_SYMBOLS \ |
| { FIRA_DEVICE_TYPE_CONTROLEE, "controlee" }, \ |
| { FIRA_DEVICE_TYPE_CONTROLLER, "controller" } |
| TRACE_DEFINE_ENUM(FIRA_DEVICE_TYPE_CONTROLEE); |
| TRACE_DEFINE_ENUM(FIRA_DEVICE_TYPE_CONTROLLER); |
| |
| #define FIRA_DEVICE_ROLE_SYMBOLS \ |
| { FIRA_DEVICE_ROLE_RESPONDER, "responder" }, \ |
| { FIRA_DEVICE_ROLE_INITIATOR, "initiator" } |
| TRACE_DEFINE_ENUM(FIRA_DEVICE_ROLE_RESPONDER); |
| TRACE_DEFINE_ENUM(FIRA_DEVICE_ROLE_INITIATOR); |
| |
| #define FIRA_RANGING_ROUND_SYMBOLS \ |
| { FIRA_RANGING_ROUND_USAGE_OWR, "OWR" }, \ |
| { FIRA_RANGING_ROUND_USAGE_SSTWR, "SSTWR" }, \ |
| { FIRA_RANGING_ROUND_USAGE_DSTWR, "DSTWR" } |
| TRACE_DEFINE_ENUM(FIRA_RANGING_ROUND_USAGE_OWR); |
| TRACE_DEFINE_ENUM(FIRA_RANGING_ROUND_USAGE_SSTWR); |
| TRACE_DEFINE_ENUM(FIRA_RANGING_ROUND_USAGE_DSTWR); |
| |
| #define FIRA_MULTI_NODE_MODE_SYMBOLS \ |
| { FIRA_MULTI_NODE_MODE_UNICAST, "UNICAST" }, \ |
| { FIRA_MULTI_NODE_MODE_ONE_TO_MANY, "ONE_TO_MANY" }, \ |
| { FIRA_MULTI_NODE_MODE_MANY_TO_MANY, "MANY_TO_MANY" } |
| TRACE_DEFINE_ENUM(FIRA_MULTI_NODE_MODE_UNICAST); |
| TRACE_DEFINE_ENUM(FIRA_MULTI_NODE_MODE_ONE_TO_MANY); |
| TRACE_DEFINE_ENUM(FIRA_MULTI_NODE_MODE_MANY_TO_MANY); |
| |
| #define FIRA_RFRAME_CONFIG_SYMBOLS \ |
| { FIRA_RFRAME_CONFIG_SP0, "SP0" }, \ |
| { FIRA_RFRAME_CONFIG_SP1, "SP1" }, \ |
| { FIRA_RFRAME_CONFIG_SP2, "SP2" }, \ |
| { FIRA_RFRAME_CONFIG_SP3, "SP3" } |
| TRACE_DEFINE_ENUM(FIRA_RFRAME_CONFIG_SP0); |
| TRACE_DEFINE_ENUM(FIRA_RFRAME_CONFIG_SP1); |
| TRACE_DEFINE_ENUM(FIRA_RFRAME_CONFIG_SP2); |
| TRACE_DEFINE_ENUM(FIRA_RFRAME_CONFIG_SP3); |
| |
| #define FIRA_PREAMBULE_DURATION_SYMBOLS \ |
| { FIRA_PREAMBULE_DURATION_32, "32" }, \ |
| { FIRA_PREAMBULE_DURATION_64, "64" } |
| TRACE_DEFINE_ENUM(FIRA_PREAMBULE_DURATION_32); |
| TRACE_DEFINE_ENUM(FIRA_PREAMBULE_DURATION_64); |
| |
| #define FIRA_STS_SEGMENTS_SYMBOLS \ |
| { FIRA_STS_SEGMENTS_0, "0" }, \ |
| { FIRA_STS_SEGMENTS_1, "1" }, \ |
| { FIRA_STS_SEGMENTS_2, "2" }, \ |
| { FIRA_STS_SEGMENTS_3, "3" }, \ |
| { FIRA_STS_SEGMENTS_4, "4" } |
| TRACE_DEFINE_ENUM(FIRA_STS_SEGMENTS_0); |
| TRACE_DEFINE_ENUM(FIRA_STS_SEGMENTS_1); |
| TRACE_DEFINE_ENUM(FIRA_STS_SEGMENTS_2); |
| TRACE_DEFINE_ENUM(FIRA_STS_SEGMENTS_3); |
| TRACE_DEFINE_ENUM(FIRA_STS_SEGMENTS_4); |
| |
| #define FIRA_PSDU_DATA_RATE_SYMBOLS \ |
| { FIRA_PSDU_DATA_RATE_6M81, "6M81" }, \ |
| { FIRA_PSDU_DATA_RATE_7M80, "7M80" }, \ |
| { FIRA_PSDU_DATA_RATE_27M2, "27M2" }, \ |
| { FIRA_PSDU_DATA_RATE_31M2, "31M2" } |
| TRACE_DEFINE_ENUM(FIRA_PSDU_DATA_RATE_6M81); |
| TRACE_DEFINE_ENUM(FIRA_PSDU_DATA_RATE_7M80); |
| TRACE_DEFINE_ENUM(FIRA_PSDU_DATA_RATE_27M2); |
| TRACE_DEFINE_ENUM(FIRA_PSDU_DATA_RATE_31M2); |
| |
| #define FIRA_PHR_DATA_RATE_SYMBOLS \ |
| { FIRA_PHR_DATA_RATE_850K, "850k" }, \ |
| { FIRA_PHR_DATA_RATE_6M81, "6M81" } |
| TRACE_DEFINE_ENUM(FIRA_PHR_DATA_RATE_850K); |
| TRACE_DEFINE_ENUM(FIRA_PHR_DATA_RATE_6M81); |
| |
| #define FIRA_MAC_FCS_TYPE_CRC_SYMBOLS \ |
| { FIRA_MAC_FCS_TYPE_CRC_16, "16" }, \ |
| { FIRA_MAC_FCS_TYPE_CRC_32, "32" } |
| TRACE_DEFINE_ENUM(FIRA_MAC_FCS_TYPE_CRC_16); |
| TRACE_DEFINE_ENUM(FIRA_MAC_FCS_TYPE_CRC_32); |
| |
| #define FIRA_STS_MODE_SYMBOLS \ |
| { FIRA_STS_MODE_STATIC, "static" }, \ |
| { FIRA_STS_MODE_DYNAMIC, "dynamic" }, \ |
| { FIRA_STS_MODE_DYNAMIC_INDIVIDUAL_KEY, "dynamic_individual_key" }, \ |
| { FIRA_STS_MODE_PROVISIONED, "provisioned" }, \ |
| { FIRA_STS_MODE_PROVISIONED_INDIVIDUAL_KEY, "provisioned_individual_key" } |
| TRACE_DEFINE_ENUM(FIRA_STS_MODE_STATIC); |
| TRACE_DEFINE_ENUM(FIRA_STS_MODE_DYNAMIC); |
| TRACE_DEFINE_ENUM(FIRA_STS_MODE_DYNAMIC_INDIVIDUAL_KEY); |
| TRACE_DEFINE_ENUM(FIRA_STS_MODE_PROVISIONED); |
| TRACE_DEFINE_ENUM(FIRA_STS_MODE_PROVISIONED_INDIVIDUAL_KEY); |
| |
| #define FIRA_MESSAGE_TYPE \ |
| { FIRA_MESSAGE_ID_RANGING_INITIATION, "RIM" }, \ |
| { FIRA_MESSAGE_ID_RANGING_RESPONSE, "RRM" }, \ |
| { FIRA_MESSAGE_ID_RANGING_FINAL, "RFM" }, \ |
| { FIRA_MESSAGE_ID_CONTROL, "RCM" }, \ |
| { FIRA_MESSAGE_ID_MEASUREMENT_REPORT, "MRM" }, \ |
| { FIRA_MESSAGE_ID_RESULT_REPORT, "RRRM" }, \ |
| { FIRA_MESSAGE_ID_CONTROL_UPDATE, "CMU" } |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_RANGING_INITIATION); |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_RANGING_RESPONSE); |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_RANGING_FINAL); |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_CONTROL); |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_MEASUREMENT_REPORT); |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_RESULT_REPORT); |
| TRACE_DEFINE_ENUM(FIRA_MESSAGE_ID_CONTROL_UPDATE); |
| |
| #define mcps802154_rx_error_name(name) \ |
| { \ |
| MCPS802154_RX_ERROR_##name, #name \ |
| } |
| #define MCPS802154_RX_ERROR_SYMBOLS \ |
| mcps802154_rx_error_name(NONE), \ |
| mcps802154_rx_error_name(TIMEOUT), \ |
| mcps802154_rx_error_name(BAD_CKSUM), \ |
| mcps802154_rx_error_name(UNCORRECTABLE), \ |
| mcps802154_rx_error_name(FILTERED), \ |
| mcps802154_rx_error_name(SFD_TIMEOUT), \ |
| mcps802154_rx_error_name(PHR_DECODE), \ |
| mcps802154_rx_error_name(OTHER) |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_NONE); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_TIMEOUT); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_BAD_CKSUM); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_UNCORRECTABLE); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_FILTERED); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_SFD_TIMEOUT); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_PHR_DECODE); |
| TRACE_DEFINE_ENUM(MCPS802154_RX_ERROR_OTHER); |
| |
| #define mcps802154_tx_reason_name(name) \ |
| { \ |
| MCPS802154_ACCESS_TX_RETURN_REASON_##name, #name \ |
| } |
| #define MCPS802154_TX_REASON_SYMBOLS \ |
| mcps802154_tx_reason_name(CONSUMED), \ |
| mcps802154_tx_reason_name(FAILURE), \ |
| mcps802154_tx_reason_name(CANCEL) |
| TRACE_DEFINE_ENUM(MCPS802154_ACCESS_TX_RETURN_REASON_CONSUMED); |
| TRACE_DEFINE_ENUM(MCPS802154_ACCESS_TX_RETURN_REASON_FAILURE); |
| TRACE_DEFINE_ENUM(MCPS802154_ACCESS_TX_RETURN_REASON_CANCEL); |
| |
| #define FIRA_MEAS_SEQ_STEP_TYPE \ |
| { FIRA_MEASUREMENT_TYPE_RANGE, "range" }, \ |
| { FIRA_MEASUREMENT_TYPE_AOA, "AoA" }, \ |
| { FIRA_MEASUREMENT_TYPE_AOA_AZIMUTH, "AoA Azimuth" }, \ |
| { FIRA_MEASUREMENT_TYPE_AOA_ELEVATION, "AoA Elevation" }, \ |
| { FIRA_MEASUREMENT_TYPE_AOA_AZIMUTH_ELEVATION, \ |
| "AoA Azimuth/Elevation" } |
| TRACE_DEFINE_ENUM(FIRA_MEASUREMENT_TYPE_RANGE); |
| TRACE_DEFINE_ENUM(FIRA_MEASUREMENT_TYPE_AOA); |
| TRACE_DEFINE_ENUM(FIRA_MEASUREMENT_TYPE_AOA_AZIMUTH); |
| TRACE_DEFINE_ENUM(FIRA_MEASUREMENT_TYPE_AOA_ELEVATION); |
| TRACE_DEFINE_ENUM(FIRA_MEASUREMENT_TYPE_AOA_AZIMUTH_ELEVATION); |
| |
| #define fira_session_state_id_name(name) \ |
| { \ |
| FIRA_SESSION_STATE_ID_##name, #name \ |
| } |
| #define FIRA_SESSION_STATE_ID_SYMBOLS \ |
| fira_session_state_id_name(DEINIT), \ |
| fira_session_state_id_name(INIT), \ |
| fira_session_state_id_name(ACTIVE), \ |
| fira_session_state_id_name(IDLE) |
| TRACE_DEFINE_ENUM(FIRA_SESSION_STATE_ID_DEINIT); |
| TRACE_DEFINE_ENUM(FIRA_SESSION_STATE_ID_INIT); |
| TRACE_DEFINE_ENUM(FIRA_SESSION_STATE_ID_ACTIVE); |
| TRACE_DEFINE_ENUM(FIRA_SESSION_STATE_ID_IDLE); |
| |
| |
| #define fira_call_name(name) \ |
| { \ |
| FIRA_CALL_##name, #name \ |
| } |
| #define FIRA_CALL_SYMBOLS \ |
| fira_call_name(GET_CAPABILITIES), \ |
| fira_call_name(SESSION_INIT), \ |
| fira_call_name(SESSION_START), \ |
| fira_call_name(SESSION_STOP), \ |
| fira_call_name(SESSION_DEINIT), \ |
| fira_call_name(SESSION_SET_PARAMS), \ |
| fira_call_name(NEW_CONTROLEE), \ |
| fira_call_name(DEL_CONTROLEE), \ |
| fira_call_name(SESSION_NOTIFICATION), \ |
| fira_call_name(SESSION_GET_PARAMS), \ |
| fira_call_name(SESSION_GET_STATE), \ |
| fira_call_name(SESSION_GET_COUNT), \ |
| fira_call_name(SET_CONTROLEE), \ |
| fira_call_name(GET_CONTROLEES) |
| TRACE_DEFINE_ENUM(FIRA_CALL_GET_CAPABILITIES); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_INIT); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_START); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_STOP); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_DEINIT); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_SET_PARAMS); |
| TRACE_DEFINE_ENUM(FIRA_CALL_NEW_CONTROLEE); |
| TRACE_DEFINE_ENUM(FIRA_CALL_DEL_CONTROLEE); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_NOTIFICATION); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_GET_PARAMS); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_GET_STATE); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SESSION_GET_COUNT); |
| TRACE_DEFINE_ENUM(FIRA_CALL_SET_CONTROLEE); |
| TRACE_DEFINE_ENUM(FIRA_CALL_GET_CONTROLEES); |
| |
| |
| TRACE_EVENT(region_fira_session_params, |
| TP_PROTO(const struct fira_session *session, |
| const struct fira_session_params *params), |
| TP_ARGS(session, params), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(enum fira_device_type, device_type) |
| __field(enum fira_ranging_round_usage, ranging_round_usage) |
| __field(enum fira_multi_node_mode, multi_node_mode) |
| __field(__le16, controller_short_addr) |
| __field(int, initiation_time_ms) |
| __field(int, slot_duration_dtu) |
| __field(int, block_duration_dtu) |
| __field(u32, block_stride_len) |
| __field(u32, max_number_of_measurements) |
| __field(u32, max_rr_retry) |
| __field(int, round_duration_slots) |
| __field(bool, round_hopping) |
| __field(u8, priority) |
| __field(int, channel_number) |
| __field(int, preamble_code_index) |
| __field(enum fira_rframe_config, rframe_config) |
| __field(enum fira_preambule_duration, preamble_duration) |
| __field(enum fira_sfd_id, sfd_id) |
| __field(enum fira_sts_segments, number_of_sts_segments) |
| __field(enum fira_psdu_data_rate, psdu_data_rate) |
| __field(enum fira_mac_fcs_type, mac_fcs_type) |
| __field(enum fira_sts_mode, sts_config) |
| __array(u8, vupper64, FIRA_VUPPER64_SIZE) |
| __field(u32, sub_session_id) |
| __field(u32, session_key_len) |
| __field(bool, key_rotation) |
| __field(int, key_rotation_rate) |
| __field(bool, aoa_result_req) |
| __field(bool, report_tof) |
| __field(bool, report_aoa_azimuth) |
| __field(bool, report_aoa_elevation) |
| __field(bool, report_aoa_fom) |
| __field(bool, report_diagnostics) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->device_type = params->device_type; |
| __entry->ranging_round_usage = params->ranging_round_usage; |
| __entry->multi_node_mode = params->multi_node_mode; |
| __entry->controller_short_addr = params->controller_short_addr; |
| __entry->initiation_time_ms = params->initiation_time_ms; |
| __entry->slot_duration_dtu = params->slot_duration_dtu; |
| __entry->block_duration_dtu = params->block_duration_dtu; |
| __entry->block_stride_len = params->block_stride_len; |
| __entry->max_number_of_measurements = params->max_number_of_measurements; |
| __entry->max_rr_retry = params->max_rr_retry; |
| __entry->round_duration_slots = params->round_duration_slots; |
| __entry->round_hopping = params->round_hopping; |
| __entry->priority = params->priority; |
| __entry->channel_number = params->channel_number; |
| __entry->preamble_code_index = params->preamble_code_index; |
| __entry->rframe_config = params->rframe_config; |
| __entry->preamble_duration = params->preamble_duration; |
| __entry->sfd_id = params->sfd_id; |
| __entry->number_of_sts_segments = params->number_of_sts_segments; |
| __entry->psdu_data_rate = params->psdu_data_rate; |
| __entry->mac_fcs_type = params->mac_fcs_type; |
| __entry->sts_config = params->sts_config; |
| memcpy(__entry->vupper64, params->vupper64, sizeof(params->vupper64)); |
| __entry->sub_session_id = params->sub_session_id; |
| __entry->session_key_len = params->session_key_len; |
| __entry->key_rotation = params->key_rotation; |
| __entry->key_rotation_rate = params->key_rotation_rate; |
| __entry->aoa_result_req = params->aoa_result_req; |
| __entry->report_tof = params->report_tof; |
| __entry->report_aoa_azimuth = params->report_aoa_azimuth; |
| __entry->report_aoa_elevation = params->report_aoa_elevation; |
| __entry->report_aoa_fom = params->report_aoa_fom; |
| __entry->report_diagnostics = params->report_diagnostics; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " device_type=%s ranging_round_usage=%s multi_node_mode=%s " |
| "controller_short_addr=0x%x initiation_time_ms=%d slot_duration_dtu=%d " |
| "block_duration_dtu=%d block_stride_len=%d max_nb_of_measurements=%d " |
| "max_rr_retry=%d round_duration_slots=%d round_hopping=%d " |
| "priority=%d channel_number=%d preamble_code_index=%d rframe_config=%s " |
| "preamble_duration=%s sfd_id=%d number_of_sts_segments=%s psdu_data_rate=%s mac_fcs_type=%s " |
| "sts_config=%s vupper64=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x sub_session_id=%d session_key_len=%d " |
| "key_rotation=%d key_rotation_rate=%d aoa_result_req=%d report_tof=%d report_aoa_azimuth=%d " |
| "report_aoa_elevation=%d report_aoa_fom=%d diagnostics=%d", |
| FIRA_SESSION_PR_ARG, |
| __print_symbolic(__entry->device_type, FIRA_DEVICE_TYPE_SYMBOLS), |
| __print_symbolic(__entry->ranging_round_usage, FIRA_RANGING_ROUND_SYMBOLS), |
| __print_symbolic(__entry->multi_node_mode, FIRA_MULTI_NODE_MODE_SYMBOLS), |
| __entry->controller_short_addr, |
| __entry->initiation_time_ms, |
| __entry->slot_duration_dtu, |
| __entry->block_duration_dtu, |
| __entry->block_stride_len, |
| __entry->max_number_of_measurements, |
| __entry->max_rr_retry, |
| __entry->round_duration_slots, |
| __entry->round_hopping, |
| __entry->priority, |
| __entry->channel_number, |
| __entry->preamble_code_index, |
| __print_symbolic(__entry->rframe_config, FIRA_RFRAME_CONFIG_SYMBOLS), |
| __print_symbolic(__entry->preamble_duration, FIRA_PREAMBULE_DURATION_SYMBOLS), |
| __entry->sfd_id, |
| __print_symbolic(__entry->number_of_sts_segments, FIRA_STS_SEGMENTS_SYMBOLS), |
| __print_symbolic(__entry->psdu_data_rate, FIRA_PSDU_DATA_RATE_SYMBOLS), |
| __print_symbolic(__entry->mac_fcs_type, FIRA_MAC_FCS_TYPE_CRC_SYMBOLS), |
| __print_symbolic(__entry->sts_config, FIRA_STS_MODE_SYMBOLS), |
| __entry->vupper64[0], __entry->vupper64[1], __entry->vupper64[2], __entry->vupper64[3], |
| __entry->vupper64[4], __entry->vupper64[5], __entry->vupper64[6], __entry->vupper64[7], |
| __entry->sub_session_id, |
| __entry->session_key_len, |
| __entry->key_rotation, |
| __entry->key_rotation_rate, |
| __entry->aoa_result_req, |
| __entry->report_tof, |
| __entry->report_aoa_azimuth, |
| __entry->report_aoa_elevation, |
| __entry->report_aoa_fom, |
| __entry->report_diagnostics |
| ) |
| ); |
| |
| TRACE_EVENT(region_fira_session_meas_seq_params, |
| TP_PROTO(const struct fira_session *session, |
| const struct fira_measurement_sequence_step *step, |
| int index), |
| TP_ARGS(session, step, index), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(int, index) |
| __field(enum fira_measurement_type, type) |
| __field(u8, n_measurements) |
| __field(s8, rx_ant_set_nonranging) |
| __field(s8, rx_ant_sets_ranging_0) |
| __field(s8, rx_ant_sets_ranging_1) |
| __field(s8, tx_ant_set_nonranging) |
| __field(s8, tx_ant_set_ranging) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->index = index; |
| __entry->type = step->type; |
| __entry->n_measurements = step->n_measurements; |
| __entry->rx_ant_set_nonranging = step->rx_ant_set_nonranging; |
| __entry->rx_ant_sets_ranging_0 = step->rx_ant_sets_ranging[0]; |
| __entry->rx_ant_sets_ranging_1 = step->rx_ant_sets_ranging[1]; |
| __entry->tx_ant_set_nonranging = step->tx_ant_set_nonranging; |
| __entry->tx_ant_set_ranging = step->tx_ant_set_ranging; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " index=%d type=%s n_measurements=%d " |
| "rx_ant_set_nonranging=%d rx_ant_sets_ranging_0=%d " |
| "rx_ant_sets_ranging_1=%d tx_ant_set_nonranging=%d " |
| "tx_ant_set_ranging=%d", |
| FIRA_SESSION_PR_ARG, |
| __entry->index, |
| __print_symbolic(__entry->type, FIRA_MEAS_SEQ_STEP_TYPE), |
| __entry->n_measurements, |
| __entry->rx_ant_set_nonranging, |
| __entry->rx_ant_sets_ranging_0, |
| __entry->rx_ant_sets_ranging_1, |
| __entry->tx_ant_set_nonranging, |
| __entry->tx_ant_set_ranging) |
| ); |
| |
| TRACE_EVENT(region_fira_session_control, |
| TP_PROTO(const struct fira_local *local, |
| int session_id, enum fira_call call_id), |
| TP_ARGS(local, session_id, call_id), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(enum fira_call, call_id) |
| ), |
| TP_fast_assign( |
| __entry->session_id = session_id; |
| __entry->call_id = call_id; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " call_id=%s", |
| FIRA_SESSION_PR_ARG, |
| __print_symbolic(__entry->call_id, FIRA_CALL_SYMBOLS) |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_session_fsm_active_get_demand_return, |
| TP_PROTO(const struct fira_local *local, |
| const struct fira_session *session, |
| const struct fira_session_demand *fsd), |
| TP_ARGS(local, session, fsd), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(u32, block_start_dtu) |
| __field(u32, timestamp_dtu) |
| __field(int, max_duration_dtu) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->block_start_dtu = fsd->block_start_dtu; |
| __entry->timestamp_dtu = fsd->timestamp_dtu; |
| __entry->max_duration_dtu = fsd->max_duration_dtu; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " block_start_dtu=%#x " |
| "timestamp_dtu=%#x max_duration_dtu=%d", |
| FIRA_SESSION_PR_ARG, |
| __entry->block_start_dtu, |
| __entry->timestamp_dtu, |
| __entry->max_duration_dtu |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_get_access_controller, |
| TP_PROTO(const struct fira_local *local, |
| const struct fira_session *session, |
| const struct fira_session_demand *fsd), |
| TP_ARGS(local, session, fsd), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(int, block_index) |
| __field(int, add_blocks) |
| __field(int, round_index) |
| __field(int, block_stride_len) |
| __field(u32, block_start_dtu) |
| __field(u32, timestamp_dtu) |
| __field(int, max_duration_dtu) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->block_index = session->block_index; |
| __entry->add_blocks = fsd->add_blocks; |
| __entry->round_index = fsd->round_index; |
| __entry->block_stride_len = session->block_stride_len; |
| __entry->block_start_dtu = fsd->block_start_dtu; |
| __entry->timestamp_dtu = fsd->timestamp_dtu; |
| __entry->max_duration_dtu = fsd->max_duration_dtu; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " block_index=%d add_blocks=%d " |
| "round_index=%d block_stride_len=%d block_start_dtu=%#x " |
| "timestamp_dtu=%#x max_duration_dtu=%d", |
| FIRA_SESSION_PR_ARG, |
| __entry->block_index, |
| __entry->add_blocks, |
| __entry->round_index, |
| __entry->block_stride_len, |
| __entry->block_start_dtu, |
| __entry->timestamp_dtu, |
| __entry->max_duration_dtu |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_get_access_controlee, |
| TP_PROTO(const struct fira_local *local, |
| const struct fira_session *session, |
| const struct fira_session_demand *fsd), |
| TP_ARGS(local, session, fsd), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(int, block_index) |
| __field(int, add_blocks) |
| __field(int, round_index) |
| __field(u32, block_start_dtu) |
| __field(u32, timestamp_dtu) |
| __field(int, max_duration_dtu) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->block_index = session->block_index; |
| __entry->add_blocks = fsd->add_blocks; |
| __entry->round_index = fsd->round_index; |
| __entry->block_start_dtu = fsd->block_start_dtu; |
| __entry->timestamp_dtu = fsd->timestamp_dtu; |
| __entry->max_duration_dtu = fsd->max_duration_dtu; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " block_index=%d add_blocks=%d " |
| "round_index=%d block_start_dtu=%#x timestamp_dtu=%#x " |
| "max_duration_dtu=%d", |
| FIRA_SESSION_PR_ARG, |
| __entry->block_index, |
| __entry->add_blocks, |
| __entry->round_index, |
| __entry->block_start_dtu, |
| __entry->timestamp_dtu, |
| __entry->max_duration_dtu |
| ) |
| ); |
| |
| TRACE_EVENT(region_fira_rx_frame, |
| TP_PROTO(const struct fira_session *session, |
| enum fira_message_id message_id, |
| enum mcps802154_rx_error_type error), |
| TP_ARGS(session, message_id, error), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(enum fira_message_id, message_id) |
| __field(enum mcps802154_rx_error_type, error) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->message_id = message_id; |
| __entry->error = error; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " message_id=%s error=%s", |
| FIRA_SESSION_PR_ARG, |
| __print_symbolic(__entry->message_id, FIRA_MESSAGE_TYPE), |
| __print_symbolic(__entry->error, MCPS802154_RX_ERROR_SYMBOLS) |
| ) |
| ); |
| |
| TRACE_EVENT(region_fira_rx_frame_control, |
| TP_PROTO(const struct fira_local *local, |
| const struct fira_session *session, |
| int left_duration_dtu, int n_slots), |
| TP_ARGS(local, session, left_duration_dtu, n_slots), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(u32, block_start_dtu) |
| __field(int, block_index) |
| __field(int, round_index) |
| __field(bool, stop_inband) |
| __field(int, left_duration_dtu) |
| __field(int, n_slots) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->block_start_dtu = session->block_start_dtu; |
| __entry->block_index = session->block_index; |
| __entry->round_index = session->round_index; |
| __entry->stop_inband = session->stop_inband; |
| __entry->left_duration_dtu = left_duration_dtu; |
| __entry->n_slots = n_slots; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " block_start_dtu=%#x block_index=%d " |
| "round_index=%d stop_inband=%s left_duration_dtu=%d n_slots=%d", |
| FIRA_SESSION_PR_ARG, |
| __entry->block_start_dtu, |
| __entry->block_index, |
| __entry->round_index, |
| __entry->stop_inband ? "true": "false", |
| __entry->left_duration_dtu, |
| __entry->n_slots |
| ) |
| ); |
| |
| TRACE_EVENT(region_fira_tx_get_frame, |
| TP_PROTO(const struct fira_session *session, |
| enum fira_message_id message_id), |
| TP_ARGS(session, message_id), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(enum fira_message_id, message_id) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->message_id = message_id; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " message_id=%s", |
| FIRA_SESSION_PR_ARG, |
| __print_symbolic(__entry->message_id, FIRA_MESSAGE_TYPE) |
| ) |
| ); |
| |
| TRACE_EVENT(region_fira_tx_return, |
| TP_PROTO(const struct fira_session *session, |
| enum mcps802154_access_tx_return_reason reason), |
| TP_ARGS(session, reason), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(enum mcps802154_access_tx_return_reason, reason) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->reason = reason; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " reason=%s", |
| FIRA_SESSION_PR_ARG, |
| __print_symbolic(__entry->reason, |
| MCPS802154_TX_REASON_SYMBOLS) |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_session_fsm_change_state, |
| TP_PROTO(const struct fira_session *session, enum fira_session_state_id new_state_id), |
| TP_ARGS(session, new_state_id), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(enum fira_session_state_id, new_state_id) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->new_state_id = new_state_id; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " new_state_id=%s", |
| FIRA_SESSION_PR_ARG, |
| __print_symbolic(__entry->new_state_id, |
| FIRA_SESSION_STATE_ID_SYMBOLS) |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_access_done, |
| TP_PROTO(const struct fira_local *local, |
| const struct fira_session *session, |
| int access_duration_dtu, bool error), |
| TP_ARGS(local, session, access_duration_dtu, error), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(int, access_duration_dtu) |
| __field(bool, error) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->access_duration_dtu = access_duration_dtu; |
| __entry->error = error; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " access_duration_dtu=%d error=%s", |
| FIRA_SESSION_PR_ARG, |
| __entry->access_duration_dtu, |
| __entry->error ? "true": "false" |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_is_controlee_synchronised, |
| TP_PROTO(const struct fira_session *session, |
| int drift_ppm, int rx_margin_ppm), |
| TP_ARGS(session, drift_ppm, rx_margin_ppm), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(int, block_index_sync) |
| __field(int, drift_ppm) |
| __field(int, rx_margin_ppm) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->block_index_sync = session->controlee.block_index_sync; |
| __entry->drift_ppm = drift_ppm; |
| __entry->rx_margin_ppm = rx_margin_ppm; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " block_index_sync=%d drift_ppm=%d rx_margin_ppm=%d", |
| FIRA_SESSION_PR_ARG, |
| __entry->block_index_sync, |
| __entry->drift_ppm, |
| __entry->rx_margin_ppm |
| ) |
| ); |
| |
| TRACE_EVENT( |
| region_fira_session_report, |
| TP_PROTO(const struct fira_session *session, |
| const struct fira_report_info *report_info), |
| TP_ARGS(session, report_info), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| __field(int, sequence_number) |
| __field(int, block_index) |
| __field(int, n_ranging_data) |
| __field(int, n_stopped_controlees) |
| __field(int, n_slots) |
| __field(bool, stopped) |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| __entry->sequence_number = session->sequence_number; |
| __entry->block_index = session->block_index; |
| __entry->n_ranging_data = report_info->n_ranging_data; |
| __entry->n_stopped_controlees = report_info->n_stopped_controlees; |
| __entry->n_slots = report_info->n_slots; |
| __entry->stopped = report_info->stopped; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT " sequence_number=%d block_index=%d " |
| "n_ranging_data=%d n_stopped_controlees=%d n_slots=%d stopped=%s", |
| FIRA_SESSION_PR_ARG, |
| __entry->sequence_number, |
| __entry->block_index, |
| __entry->n_ranging_data, |
| __entry->n_stopped_controlees, |
| __entry->n_slots, |
| __entry->stopped ? "true": "false" |
| ) |
| ); |
| |
| TRACE_EVENT(fira_nondeferred_not_supported, |
| TP_PROTO(const struct fira_session *session), |
| TP_ARGS(session), |
| TP_STRUCT__entry( |
| FIRA_SESSION_ENTRY |
| ), |
| TP_fast_assign( |
| FIRA_SESSION_ASSIGN; |
| ), |
| TP_printk(FIRA_SESSION_PR_FMT, |
| FIRA_SESSION_PR_ARG |
| ) |
| ); |
| |
| #endif /* !FIRA_TRACE_H || TRACE_HEADER_MULTI_READ */ |
| |
| #undef TRACE_INCLUDE_PATH |
| #define TRACE_INCLUDE_PATH . |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_FILE fira_trace |
| #include <trace/define_trace.h> |