From bf0859d5330d2f529f63a3fb8e025b5a6535014c Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 11 Jan 2024 06:01:35 -0800 Subject: [PATCH] fw-api: CL 25775134 - update fw common interface files HTT stats: add pdev RTT stats Change-Id: I415fa2f884330167f9a51f53f4f04f0bdb7f6a3f CRs-Fixed: 2262693 --- fw/htt.h | 5 + fw/htt_stats.h | 535 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 540 insertions(+) diff --git a/fw/htt.h b/fw/htt.h index 96c8f1e7e6..e0de862d59 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -816,6 +816,11 @@ typedef enum { HTT_STATS_PDEV_MLO_IPC_STATS_TAG = 191, /* htt_pdev_mlo_ipc_stats_tlv */ HTT_STATS_WHAL_WSI_TAG = 192, /* htt_stats_whal_wsi_tlv */ HTT_STATS_LATENCY_PROF_CAL_DATA_TAG = 193, /* htt_stats_latency_prof_cal_data_tlv */ + HTT_STATS_PDEV_RTT_RESP_STATS_TAG = 194, /* htt_stats_pdev_rtt_resp_stats_tlv */ + HTT_STATS_PDEV_RTT_INIT_STATS_TAG = 195, /* htt_stats_pdev_rtt_init_stats_tlv */ + HTT_STATS_PDEV_RTT_HW_STATS_TAG = 196, /* htt_stats_pdev_rtt_hw_stats_tlv */ + HTT_STATS_PDEV_RTT_TBR_SELFGEN_QUEUED_STATS_TAG = 197, /* htt_stats_pdev_rtt_tbr_selfgen_queued_stats_tlv */ + HTT_STATS_PDEV_RTT_TBR_CMD_RESULT_STATS_TAG = 198, /* htt_stats_pdev_rtt_tbr_cmd_result_stats_tlv */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index eda2748aa6..9f15c38451 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -599,6 +599,26 @@ enum htt_dbg_ext_stats_type { */ HTT_DBG_PDEV_MLO_IPC_STATS = 64, + /** HTT_DBG_EXT_PDEV_RTT_RESP_STATS + * PARAMS: + * - No Params + * RESP MSG: + * - htt_stats_pdev_rtt_resp_stats_tlv + * - htt_stats_pdev_rtt_hw_stats_tlv + * - htt_stats_pdev_rtt_tbr_selfgen_queued_stats_tlv + * - htt_stats_pdev_rtt_tbr_cmd_result_stats_tlv + */ + HTT_DBG_EXT_PDEV_RTT_RESP_STATS = 65, + + /** HTT_DBG_EXT_PDEV_RTT_INITIATOR_STATS + * PARAMS: + * - No Params + * RESP MSG: + * - htt_stats_pdev_rtt_init_stats_tlv + * - htt_stats_pdev_rtt_hw_stats_tlv + */ + HTT_DBG_EXT_PDEV_RTT_INITIATOR_STATS = 66, + /* keep this last */ HTT_DBG_NUM_EXT_STATS = 256, @@ -7842,6 +7862,521 @@ typedef struct { htt_stats_vdev_rtt_init_stats_tlv vdev_rtt_init_stats; } htt_vdev_rtt_init_stats_t; + +#define HTT_STATS_MAX_SCH_CMD_RESULT 25 + +/* TXSEND self generated frames */ +typedef enum { + HTT_TXSEND_FTYPE_SGEN_TF_POLL, + HTT_TXSEND_FTYPE_SGEN_TF_SOUND, + HTT_TXSEND_FTYPE_SGEN_TBR_NDPA, + HTT_TXSEND_FTYPE_SGEN_TBR_NDP, + HTT_TXSEND_FTYPE_SGEN_TBR_LMR, + HTT_TXSEND_FTYPE_SGEN_TF_REPORT, + + HTT_TXSEND_FTYPE_MAX +} +htt_stats_txsend_ftype_t; + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /* 11AZ TBR SU Stats */ + A_UINT32 tbr_su_ftype_queued[HTT_TXSEND_FTYPE_MAX]; + /* 11AZ TBR MU Stats */ + A_UINT32 tbr_mu_ftype_queued[HTT_TXSEND_FTYPE_MAX]; +} htt_stats_pdev_rtt_tbr_selfgen_queued_stats_tlv; + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /** tbr_num_sch_cmd_result_buckets: + * Number of sch cmd results buckets in use per chip + * Each bucket contains the counter of the number of times that bucket + * index was seen in the sch_cmd_result. The last bucket will capture + * the count of sch_cmd_result matching the last bucket index and the + * count of all the sch_cmd_results that exceeded the last bucket index + * value. + * tbr_num_sch_cmd_result_buckets must be <= HTT_STATS_MAX_SCH_CMD_RESULT + */ + A_UINT32 tbr_num_sch_cmd_result_buckets; + /* cmd result status for SU frames in case of TB ranging */ + A_UINT32 opaque_tbr_su_ftype_cmd_result[HTT_TXSEND_FTYPE_MAX][HTT_STATS_MAX_SCH_CMD_RESULT]; + /* cmd result status for MU frames in case of TB ranging */ + A_UINT32 opaque_tbr_mu_ftype_cmd_result[HTT_TXSEND_FTYPE_MAX][HTT_STATS_MAX_SCH_CMD_RESULT]; +} htt_stats_pdev_rtt_tbr_cmd_result_stats_tlv; + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /** ista_ranging_ndpa_cnt: + * Indicates the number of Ranging NDPA sent successfully. + */ + A_UINT32 ista_ranging_ndpa_cnt; + /** ista_ranging_ndp_cnt: + * Indicates the number of Ranging NDP sent successfully. + */ + A_UINT32 ista_ranging_ndp_cnt; + /** ista_ranging_i2r_lmr_cnt: + * Indicates the number of Ranging I2R LMR sent successfully. + */ + A_UINT32 ista_ranging_i2r_lmr_cnt; + /** rtsa_ranging_resp_cnt + * Indicates the number of times RXPCU initiates a Ranging response + * as a RSTA. + */ + A_UINT32 rtsa_ranging_resp_cnt; + /** rtsa_ranging_ndp_cnt: + * Indicates the number of Ranging NDP response sent successfully. + */ + A_UINT32 rtsa_ranging_ndp_cnt; + /** rsta_ranging_lmr_cnt: + * Indicates the number of Ranging R2I LMR response sent successfully. + */ + A_UINT32 rsta_ranging_lmr_cnt; + /** tb_ranging_cts2s_rcvd_cnt: + * Indicates the number of expected CTS2S response received for TF Poll + * sent. + */ + A_UINT32 tb_ranging_cts2s_rcvd_cnt; + /** tb_ranging_ndp_rcvd_cnt: + * Indicates the number of expected NDP response received for TF Sound + * or Secure Sound sent. + */ + A_UINT32 tb_ranging_ndp_rcvd_cnt; + /** tb_ranging_lmr_rcvd_cnt: + * Indicates the number of expected LMR response received for TF Report + * sent. + */ + A_UINT32 tb_ranging_lmr_rcvd_cnt; + /** tb_ranging_tf_poll_resp_sent_cnt: + * Indicates the number of successful responses sent for TF Poll + * received. + */ + A_UINT32 tb_ranging_tf_poll_resp_sent_cnt; + /** tb_ranging_tf_sound_resp_sent_cnt: + * Indicates the number of successful responses sent for TF Sound + * (or Secure) received. + */ + A_UINT32 tb_ranging_tf_sound_resp_sent_cnt; + /** tb_ranging_tf_report_resp_sent_cnt: + * Indicates the number of successful responses sent for TF Report + * received. + */ + A_UINT32 tb_ranging_tf_report_resp_sent_cnt; +} htt_stats_pdev_rtt_hw_stats_tlv; + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + A_UINT32 pdev_id; + /** tx_11mc_ftm_suc: + * Number of 11mc Fine Timing Measurement frames transmitted successfully. + */ + A_UINT32 tx_11mc_ftm_suc; + /** tx_11mc_ftm_suc_retry: + * Number of Fine Timing Measurement frames transmitted successfully + * after retrying. + */ + A_UINT32 tx_11mc_ftm_suc_retry; + /** tx_11mc_ftm_fail: + * Number of Fine Timing Measurement frames not transmitted successfully. + */ + A_UINT32 tx_11mc_ftm_fail; + /** rx_11mc_ftmr_cnt: + * Number of FTMR frames received, including initial, non-initial, + * and duplicates. + */ + A_UINT32 rx_11mc_ftmr_cnt; + /** rx_11mc_ftmr_dup_cnt: + * Number of duplicate Fine Timing Measurement Request frames received, + * including both initial and non-initial. + */ + A_UINT32 rx_11mc_ftmr_dup_cnt; + /** rx_11mc_iftmr_cnt: + * Number of initial Fine Timing Measurement Request frames received. + */ + A_UINT32 rx_11mc_iftmr_cnt; + /** rx_11mc_iftmr_dup_cnt: + * Number of duplicate initial Fine Timing Measurement Request frames + * received. + */ + A_UINT32 rx_11mc_iftmr_dup_cnt; + /** ftmr_drop_11mc_resp_role_not_enabled_cnt: + * Number of FTMR frames dropped as 11mc is not supported for this VAP. + */ + A_UINT32 ftmr_drop_11mc_resp_role_not_enabled_cnt; + /** initiator_active_responder_rejected_cnt: + * Number of responder sessions rejected when initiator was active. + */ + A_UINT32 initiator_active_responder_rejected_cnt; + /** responder_terminate_cnt: + * Number of times Responder session got terminated. + */ + A_UINT32 responder_terminate_cnt; + /** active_rsta_open: + * Number of active responder contexts in open mode. + */ + A_UINT32 active_rsta_open; + /** active_rsta_mac: + * Number of active responder contexts in mac security mode. + */ + A_UINT32 active_rsta_mac; + /** active_rsta_mac_phy: + * Number of active responder contexts in mac_phy security mode. + */ + A_UINT32 active_rsta_mac_phy; + /** num_assoc_ranging_peers: + * Number of active associated ISTA ranging peers. + */ + A_UINT32 num_assoc_ranging_peers; + /** num_unassoc_ranging_peers: + * Number of active un-associated ISTA ranging peers. + */ + A_UINT32 num_unassoc_ranging_peers; + /** responder_alloc_cnt: + * Number of responder contexts allocated. + */ + A_UINT32 responder_alloc_cnt; + /** responder_alloc_failure: + * Number of times responder context failed to be allocated. + */ + A_UINT32 responder_alloc_failure; + /** pn_check_failure_cnt: + * Number of times PN check failed. + */ + A_UINT32 pn_check_failure_cnt; + /** pasn_m1_auth_recv_cnt: + * Num of M1 auth frames received for PASN over the air from iSTA. + */ + A_UINT32 pasn_m1_auth_recv_cnt; + /** pasn_m1_auth_drop_cnt: + * Number of M1 auth frames received for PASN over the air from iSTA + * but dropped in FW due to any reason (such as unavailability of + * responder ctxt or any other check). + */ + A_UINT32 pasn_m1_auth_drop_cnt; + /** pasn_m2_auth_recv_cnt: + * Number of M2 auth frames received in FW for PASN from Host driver. + */ + A_UINT32 pasn_m2_auth_recv_cnt; + /** pasn_m2_auth_tx_fail_cnt: + * Number of M2 auth frames received in FW but Tx failed. + */ + A_UINT32 pasn_m2_auth_tx_fail_cnt; + /** pasn_m3_auth_recv_cnt: + * Number of M3 auth frames received for PASN. + */ + A_UINT32 pasn_m3_auth_recv_cnt; + /** pasn_m3_auth_drop_cnt: + * Number of M3 auth frames received for PASN over the air from iSTA but + * dropped in FW due to any reason. + */ + A_UINT32 pasn_m3_auth_drop_cnt; + /** pasn_peer_create_request_cnt: + * Number of times FW requested PASN peer create request to Host. + */ + A_UINT32 pasn_peer_create_request_cnt; + /** pasn_peer_create_timeout_cnt: + * Number of times PASN peer was not created within timeout period. + */ + A_UINT32 pasn_peer_create_timeout_cnt; + /** pasn_peer_created_cnt: + * Number of times Host sent PASN peer create request to FW. + */ + A_UINT32 pasn_peer_created_cnt; + /** sec_ranging_not_supported_mfp_not_setup: + * management frame protection not setup, drop secure ranging request. + */ + A_UINT32 sec_ranging_not_supported_mfp_not_setup; + /** non_sec_ranging_discarded_for_assoc_peer_with_mfpr_set: + * Non secured ranging request discarded for Assoc peer with MFPR set. + */ + A_UINT32 non_sec_ranging_discarded_for_assoc_peer_with_mfpr_set; + /** open_ranging_discarded_with_URNM_MFPR_set_for_pasn_peer: + * Failure in case non-secured frame is received for PASN peer and + * URNM_MFPR is set. + */ + A_UINT32 open_ranging_discarded_with_URNM_MFPR_set_for_pasn_peer; + /** unassoc_non_pasn_ranging_not_supported_with_URNM_MFPR: + * Failure in case non-assoc/non-PASN sta is sending open FTMR and + * RSTA does not support un-secured ranging. + */ + A_UINT32 unassoc_non_pasn_ranging_not_supported_with_URNM_MFPR; + /** num_req_bw_20_MHz: + * Number of requests with BW 20 MHz. + */ + A_UINT32 num_req_bw_20_MHz; + /** num_req_bw_40_MHz: + * Number of requests with BW 40 MHz. + */ + A_UINT32 num_req_bw_40_MHz; + /** num_req_bw_80_MHz: + * Number of requests with BW 80 MHz. + */ + A_UINT32 num_req_bw_80_MHz; + /** num_req_bw_160_MHz: + * Number of requests with BW 160 MHz. + */ + A_UINT32 num_req_bw_160_MHz; + /** tx_11az_ftm_successful: + * Number of 11AZ FTM frames transmitted successfully. + */ + A_UINT32 tx_11az_ftm_successful; + /** tx_11az_ftm_failed: + * Number of 11AZ FTM frames for which Tx failed. + */ + A_UINT32 tx_11az_ftm_failed; + /** rx_11az_ftmr_cnt: + * Number of 11AZ FTM frames received. + */ + A_UINT32 rx_11az_ftmr_cnt; + /** rx_11az_ftmr_dup_cnt: + * Number of duplicate 11az ftmr frames dropped. + */ + A_UINT32 rx_11az_ftmr_dup_cnt; + /** rx_11az_iftmr_dup_cnt: + * Number of duplicate 11az iftmr frames dropped. + */ + A_UINT32 rx_11az_iftmr_dup_cnt; + /** malformed_ftmr: + * Number of malformed FTMR frames received from client leading to + * frame parse error. + */ + A_UINT32 malformed_ftmr; + /** ftmr_drop_ntb_resp_role_not_enabled_cnt: + * Number of FTMR frames dropped as NTB is not supported for this VAP. + */ + A_UINT32 ftmr_drop_ntb_resp_role_not_enabled_cnt; + /** ftmr_drop_tb_resp_role_not_enabled_cnt: + * Number of FTMR frames dropped as TB is not supported for this VAP. + */ + A_UINT32 ftmr_drop_tb_resp_role_not_enabled_cnt; + /** invalid_ftm_request_params: + * Number of FTMR frames received with invalid params. + */ + A_UINT32 invalid_ftm_request_params; + /** requested_bw_format_not_supported: + * FTMR rejected as requested format is lower or higher than AP's + * capability, or unknown. + */ + A_UINT32 requested_bw_format_not_supported; + /** ntb_unsec_unassoc_mode_ranging_peer_alloc_failed: + * AST entry creation failed for NTB unsecured mode. + */ + A_UINT32 ntb_unsec_unassoc_mode_ranging_peer_alloc_failed; + /** tb_unassoc_unsec_mode_pasn_peer_creation_failed: + * PASN peer creation failed for unsecured mode TBR. + */ + A_UINT32 tb_unassoc_unsec_mode_pasn_peer_creation_failed; + /** num_ranging_sequences_processed: + * Number of ranging sequences processed for NTB and TB. + */ + A_UINT32 num_ranging_sequences_processed; + /** Number of NDPs transmitted for NTBR */ + A_UINT32 ntb_tx_ndp; + A_UINT32 ndp_rx_cnt; + /** Number of NDPAs received for 11AZ NTB ranging */ + A_UINT32 num_ntb_ranging_NDPAs_recv; + /** Number of LMR frames received */ + A_UINT32 recv_lmr; + /** invalid_ftmr_cnt: + * Number of invalid FTMR frames received + * iftmr with null ie element is invalid + * The Frame is valid if any of the following combination is present: + * a. LCI sub ie + parameter ie + * b. LCR sub ie + parameter ie + * c. parameter ie + * d. LCI sub ie + LCR sub ie + parameter ie + */ + A_UINT32 invalid_ftmr_cnt; + /** Number of times the 'max time b/w measurement' timer got expired */ + A_UINT32 max_time_bw_meas_exp_cnt; +} htt_stats_pdev_rtt_resp_stats_tlv; + +/* STATS_TYPE: HTT_DBG_EXT_PDEV_RTT_RESP_STATS + * TLV_TAGS: + * HTT_STATS_PDEV_RTT_RESP_STATS_TAG + * HTT_STATS_PDEV_RTT_HW_STATS_TAG + * HTT_STATS_PDEV_RTT_TBR_SELFGEN_QUEUED_STATS_TAG + * HTT_STATS_PDEV_RTT_TBR_CMD_RESULT_STATS_TAG + */ +typedef struct { + htt_stats_pdev_rtt_resp_stats_tlv pdev_rtt_resp_stats; + htt_stats_pdev_rtt_hw_stats_tlv pdev_rtt_hw_stats; + htt_stats_pdev_rtt_tbr_selfgen_queued_stats_tlv pdev_rtt_tbr_selfgen_queued_stats; + htt_stats_pdev_rtt_tbr_cmd_result_stats_tlv pdev_rtt_tbr_cmd_result_stats; +} htt_pdev_rtt_resp_stats_t; + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + A_UINT32 pdev_id; + /** tx_11mc_ftmr_cnt: + * Number of 11mc Fine Timing Measurement request frames transmitted + * successfully. + */ + A_UINT32 tx_11mc_ftmr_cnt; + /** tx_11mc_ftmr_fail: + * Number of 11mc Fine Timing Measurement request frames not transmitted + * successfully. + */ + A_UINT32 tx_11mc_ftmr_fail; + /** tx_11mc_ftmr_suc_retry: + * Number of 11mc Fine Timing Measurement request frames transmitted + * successfully after retrying. + */ + A_UINT32 tx_11mc_ftmr_suc_retry; + /** rx_11mc_ftm_cnt: + * Number of 11mc Fine Timing Measurement frames received, including + * initial, non-initial, and duplicates. + */ + A_UINT32 rx_11mc_ftm_cnt; + /** Count of Ranging Measurement requests received from host */ + A_UINT32 tx_meas_req_count; + /** Initiator role not supported on the vdev */ + A_UINT32 init_role_not_enabled; + /** Number of times Initiator context got terminated */ + A_UINT32 initiator_terminate_cnt; + /** Number of times Tx of FTMR failed */ + A_UINT32 tx_11az_ftmr_fail; + /** tx_11az_ftmr_start: + * Number of Fine Timing Measurement start requests transmitted + * successfully. + */ + A_UINT32 tx_11az_ftmr_start; + /** tx_11az_ftmr_stop: + * Number of Fine Timing Measurement stop requests transmitted + * successfully. + */ + A_UINT32 tx_11az_ftmr_stop; + /** Number of FTM frames received successfully */ + A_UINT32 rx_11az_ftm_cnt; + /** Number of active ISTA sessions */ + A_UINT32 active_ista; + /** HE preamble not enabled on Initiator side */ + A_UINT32 invalid_preamble; + /** Initiator invalid channel bw format */ + A_UINT32 invalid_chan_bw_format; + /* mgmt_buff_alloc_fail_cnt Management Buffer allocation failure count */ + A_UINT32 mgmt_buff_alloc_fail_cnt; + /** ftm_parse_failure: + * Count of FTM frame IE parse failure or RSTA sending measurement + * negotiation failure. + */ + A_UINT32 ftm_parse_failure; + /** Count of NTB/TB ranging negotiation completed successfully */ + A_UINT32 ranging_negotiation_successful_cnt; + /** incompatible_ftm_params: + * Number of occurrences of failure due to incompatible parameters + * suggested by rSTA during negotiation. + */ + A_UINT32 incompatible_ftm_params; + /** sec_ranging_req_in_open_mode: + * Number of occurrences of failure if BSS peer exists in open mode and + * secured mode RTT ranging is requested. + */ + A_UINT32 sec_ranging_req_in_open_mode; + /** ftmr_tx_failed_null_11az_peer: + * Number of occurrences where FTMR was not transmitted as there was + * no 11AZ peer. + */ + A_UINT32 ftmr_tx_failed_null_11az_peer; + /** Number of times ftmr retry timed out */ + A_UINT32 ftmr_retry_timeout; + /** Number of times the 'max time b/w measurement' timer got expired */ + A_UINT32 max_time_bw_meas_exp_cnt; + /** tb_meas_duration_expiry_cnt: + * Number of times TBR measurement duration expired. + */ + A_UINT32 tb_meas_duration_expiry_cnt; + /** num_tb_ranging_requests: + * Number of TB ranging requests ready for negotiation. + */ + A_UINT32 num_tb_ranging_requests; + /** Number of times NTB ranging was triggered successfully */ + A_UINT32 ntbr_triggered_successfully; + /** Number of times NTB ranging failed to be triggered */ + A_UINT32 ntbr_trigger_failed; + /** No valid index found for programming vreg settings */ + A_UINT32 invalid_or_no_vreg_idx; + /** Number of times VREG setting failed */ + A_UINT32 set_vreg_params_failed; + /** Number of occurrences of SAC mismatch */ + A_UINT32 sac_mismatch; + /** pasn_m1_auth_recv_cnt: + * Number of M1 auth frames received for PASN from Host. + */ + A_UINT32 pasn_m1_auth_recv_cnt; + /** pasn_m1_auth_tx_fail_cnt: + * Number of M1 auth frames received in FW but Tx failed. + */ + A_UINT32 pasn_m1_auth_tx_fail_cnt; + /** pasn_m2_auth_recv_cnt: + * Number of M2 auth frames received in FW for PASN over the air from rSTA. + */ + A_UINT32 pasn_m2_auth_recv_cnt; + /** pasn_m2_auth_drop_cnt: + * Number of M2 auth frames received in FW but dropped due to any reason. + */ + A_UINT32 pasn_m2_auth_drop_cnt; + /** pasn_m3_auth_recv_cnt: + * Number of M3 auth frames received for PASN from Host. + */ + A_UINT32 pasn_m3_auth_recv_cnt; + /** pasn_m3_auth_tx_fail_cnt: + * Number of M3 auth frames received in FW but Tx failed. + */ + A_UINT32 pasn_m3_auth_tx_fail_cnt; + /** pasn_peer_create_request_cnt: + * Number of times FW requested PASN peer create request to Host. + */ + A_UINT32 pasn_peer_create_request_cnt; + /** pasn_peer_create_timeout_cnt: + * Number of times PASN peer was not created within timeout period. + */ + A_UINT32 pasn_peer_create_timeout_cnt; + /** pasn_peer_created_cnt: + * Number of times Host sent PASN peer create request to FW. + */ + A_UINT32 pasn_peer_created_cnt; + /** Number of occurrences of Tx of NDPA failing */ + A_UINT32 ntbr_ndpa_failed; + /** ntbr_sequence_successful: + * The NDPA, NDP and LMR exchanges are successful and sched cmd status + * is 0. + */ + A_UINT32 ntbr_sequence_successful; + /** ntbr_ndp_failed: + * Number of occurrences of NDPA being transmitted successfully + * but NDP failing for NTB ranging. + */ + A_UINT32 ntbr_ndp_failed; + /** sch_cmd_status_cnts: + * Elements 0-7 count the number of times the sch_cmd_status was equal to + * the corresponding value of the index of the array sch_cmd_status_cnts[], + * and element 8 counts the numbers of times the status was some other + * value >=8. + */ + A_UINT32 sch_cmd_status_cnts[9]; + /** Number of times LMR reception timed out */ + A_UINT32 lmr_timeout; + /** Number of LMR frames received */ + A_UINT32 lmr_recv; + /** Number of trigger frames received */ + A_UINT32 num_trigger_frames_received; + /** Number of NDPAs received for TBR */ + A_UINT32 num_tb_ranging_NDPAs_recv; + /** Number of ranging NDPs received for NTBR/TB */ + A_UINT32 ndp_rx_cnt; +} htt_stats_pdev_rtt_init_stats_tlv; + +/* STATS_TYPE: HTT_DBG_EXT_PDEV_RTT_INITIATOR_STATS + * TLV_TAGS: + * HTT_STATS_PDEV_RTT_INIT_STATS_TAG + * HTT_STATS_PDEV_RTT_HW_STATS_TAG + */ +typedef struct { + htt_stats_pdev_rtt_init_stats_tlv pdev_rtt_init_stats; + htt_stats_pdev_rtt_hw_stats_tlv pdev_rtt_hw_stats; +} htt_pdev_rtt_init_stats_t; + + /* STATS_TYPE : HTT_DBG_EXT_PKTLOG_AND_HTT_RING_STATS * TLV_TAGS: * - HTT_STATS_PKTLOG_AND_HTT_RING_STATS_TAG