qcacmn: Add support for undecoded frame error stats

Display phyrx aborted undecoded frame count and the aborted
reason statistics as part of pdev rx mon stats.

Change-Id: Ia86074e62af3179855734b47801715abd1899fe1
CRs-Fixed: 3123540
This commit is contained in:
Basamma Yakkanahalli
2022-02-17 13:42:00 +05:30
committed by Madan Koyyalamudi
parent 7908fb906c
commit 70f4513196
3 changed files with 133 additions and 1 deletions

View File

@@ -214,6 +214,80 @@ enum {
CDP_MON_PPDU_END,
};
#ifdef QCA_UNDECODED_METADATA_SUPPORT
/**
* enum cdp_mon_phyrx_abort_reason_code: Phy err code to store the reason
* why PHY generated an abort request.
*/
enum cdp_mon_phyrx_abort_reason_code {
CDP_PHYRX_ERR_PHY_OFF = 0,
CDP_PHYRX_ERR_SYNTH_OFF,
CDP_PHYRX_ERR_OFDMA_TIMING,
CDP_PHYRX_ERR_OFDMA_SIGNAL_PARITY,
CDP_PHYRX_ERR_OFDMA_RATE_ILLEGAL,
CDP_PHYRX_ERR_OFDMA_LENGTH_ILLEGAL,
CDP_PHYRX_ERR_OFDMA_RESTART,
CDP_PHYRX_ERR_OFDMA_SERVICE,
CDP_PHYRX_ERR_PPDU_OFDMA_POWER_DROP,
CDP_PHYRX_ERR_CCK_BLOKKER,
CDP_PHYRX_ERR_CCK_TIMING = 10,
CDP_PHYRX_ERR_CCK_HEADER_CRC,
CDP_PHYRX_ERR_CCK_RATE_ILLEGAL,
CDP_PHYRX_ERR_CCK_LENGTH_ILLEGAL,
CDP_PHYRX_ERR_CCK_RESTART,
CDP_PHYRX_ERR_CCK_SERVICE,
CDP_PHYRX_ERR_CCK_POWER_DROP,
CDP_PHYRX_ERR_HT_CRC_ERR,
CDP_PHYRX_ERR_HT_LENGTH_ILLEGAL,
CDP_PHYRX_ERR_HT_RATE_ILLEGAL,
CDP_PHYRX_ERR_HT_ZLF = 20,
CDP_PHYRX_ERR_FALSE_RADAR_EXT,
CDP_PHYRX_ERR_GREEN_FIELD,
CDP_PHYRX_ERR_BW_GT_DYN_BW,
CDP_PHYRX_ERR_HT_LSIG_RATE_MISMATCH,
CDP_PHYRX_ERR_VHT_CRC_ERROR,
CDP_PHYRX_ERR_VHT_SIGA_UNSUPPORTED,
CDP_PHYRX_ERR_VHT_LSIG_LEN_INVALID,
CDP_PHYRX_ERR_VHT_NDP_OR_ZLF,
CDP_PHYRX_ERR_VHT_NSYM_LT_ZERO,
CDP_PHYRX_ERR_VHT_RX_EXTRA_SYMBOL_MISMATCH = 30,
CDP_PHYRX_ERR_VHT_RX_SKIP_GROUP_ID0,
CDP_PHYRX_ERR_VHT_RX_SKIP_GROUP_ID1TO62,
CDP_PHYRX_ERR_VHT_RX_SKIP_GROUP_ID63,
CDP_PHYRX_ERR_OFDM_LDPC_DECODER_DISABLED,
CDP_PHYRX_ERR_DEFER_NAP,
CDP_PHYRX_ERR_FDOMAIN_TIMEOUT,
CDP_PHYRX_ERR_LSIG_REL_CHECK,
CDP_PHYRX_ERR_BT_COLLISION,
CDP_PHYRX_ERR_UNSUPPORTED_MU_FEEDBACK,
CDP_PHYRX_ERR_PPDU_TX_INTERRUPT_RX = 40,
CDP_PHYRX_ERR_UNSUPPORTED_CBF,
CDP_PHYRX_ERR_OTHER,
CDP_PHYRX_ERR_HE_SIGA_UNSUPPORTED,
CDP_PHYRX_ERR_HE_SIGA_CRC_ERROR,
CDP_PHYRX_ERR_HE_SIGB_UNSUPPORTED,
CDP_PHYRX_ERR_HE_SIGB_CRC_ERROR,
CDP_PHYRX_ERR_HE_MU_MODE_UNSUPPORTED,
CDP_PHYRX_ERR_HE_NDP_OR_ZLF,
CDP_PHYRX_ERR_HE_NSYM_LT_ZERO,
CDP_PHYRX_ERR_HE_RU_PARAMS_UNSUPPORTED = 50,
CDP_PHYRX_ERR_HE_NUM_USERS_UNSUPPORTED,
CDP_PHYRX_ERR_HE_SOUNDING_PARAMS_UNSUPPORTED,
CDP_PHYRX_ERR_HE_EXT_SU_UNSUPPORTED,
CDP_PHYRX_ERR_HE_TRIG_UNSUPPORTED,
CDP_PHYRX_ERR_HE_LSIG_LEN_INVALID = 55,
CDP_PHYRX_ERR_HE_LSIG_RATE_MISMATCH,
CDP_PHYRX_ERR_OFDMA_SIGNAL_RELIABILITY,
CDP_PHYRX_ERR_HT_NSYM_LT_ZERO,
CDP_PHYRX_ERR_VHT_LSIG_RATE_MISMATCH,
CDP_PHYRX_ERR_VHT_PAID_GID_MISMATCH = 60,
CDP_PHYRX_ERR_VHT_UNSUPPORTED_BW,
CDP_PHYRX_ERR_VHT_GI_DISAM_MISMATCH,
CDP_PHYRX_ERR_RX_WDG_TIMEOUT = 63,
CDP_PHYRX_ERR_MAX
};
#endif
#define MAX_PPDU_ID_HIST 128
/**
@@ -242,6 +316,8 @@ enum {
* @dest_ppdu_drop: Number of ppdu dropped from monitor destination ring
* @mon_link_desc_invalid: msdu link desc invalid count
* @mon_rx_desc_invalid: rx_desc invalid count
* @rx_undecoded_count: Received undecoded frame count
* @rx_undecoded_error: Rx undecoded errors
*/
struct cdp_pdev_mon_stats {
#ifndef REMOVE_MON_DBG_STATS
@@ -273,5 +349,9 @@ struct cdp_pdev_mon_stats {
uint32_t mon_link_desc_invalid;
uint32_t mon_rx_desc_invalid;
uint32_t mon_nbuf_sanity_err;
#ifdef QCA_UNDECODED_METADATA_SUPPORT
uint32_t rx_undecoded_count;
uint32_t rx_undecoded_error[CDP_PHYRX_ERR_MAX];
#endif
};
#endif