qcacmn: print tx/rx stats for 11BE
Add and initialize function pointer to print BE/LI stats CRs-Fixed: 3071271 Change-Id: Ib9748d475ac583b7404fcc5f1207b8019c7671a6
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b726e009e7
commit
9a4ae1a05a
@@ -540,6 +540,16 @@ enum cdp_mu_packet_type {
|
|||||||
TXRX_TYPE_MU_MAX = 2,
|
TXRX_TYPE_MU_MAX = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* peer_stats_type: peer stats type
|
||||||
|
* PEER_TX_STATS: stats type for tx
|
||||||
|
* PEER_RX_STATS: stats type for rx
|
||||||
|
*/
|
||||||
|
enum peer_stats_type {
|
||||||
|
PEER_TX_STATS,
|
||||||
|
PEER_RX_STATS,
|
||||||
|
};
|
||||||
|
|
||||||
enum WDI_EVENT {
|
enum WDI_EVENT {
|
||||||
WDI_EVENT_TX_STATUS = WDI_EVENT_BASE,
|
WDI_EVENT_TX_STATUS = WDI_EVENT_BASE,
|
||||||
WDI_EVENT_OFFLOAD_ALL,
|
WDI_EVENT_OFFLOAD_ALL,
|
||||||
|
@@ -1429,6 +1429,6 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
|
|||||||
arch_ops->mlo_peer_find_hash_remove = dp_mlo_peer_find_hash_remove_be;
|
arch_ops->mlo_peer_find_hash_remove = dp_mlo_peer_find_hash_remove_be;
|
||||||
arch_ops->mlo_peer_find_hash_find = dp_mlo_peer_find_hash_find_be;
|
arch_ops->mlo_peer_find_hash_find = dp_mlo_peer_find_hash_find_be;
|
||||||
#endif
|
#endif
|
||||||
|
arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_be;
|
||||||
dp_init_near_full_arch_ops_be(arch_ops);
|
dp_init_near_full_arch_ops_be(arch_ops);
|
||||||
}
|
}
|
||||||
|
@@ -80,6 +80,48 @@
|
|||||||
__QDF_TRACE_FL(QDF_TRACE_LEVEL_INFO_HIGH, QDF_MODULE_ID_DP_STATS, ## params)
|
__QDF_TRACE_FL(QDF_TRACE_LEVEL_INFO_HIGH, QDF_MODULE_ID_DP_STATS, ## params)
|
||||||
#define dp_stats_debug(params...) QDF_TRACE_DEBUG(QDF_MODULE_ID_DP_STATS, params)
|
#define dp_stats_debug(params...) QDF_TRACE_DEBUG(QDF_MODULE_ID_DP_STATS, params)
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
static const struct cdp_rate_debug dp_ppdu_rate_string[DOT11_MAX][MAX_MCS] = {
|
||||||
|
{
|
||||||
|
{"HE MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
|
{"HE MCS 1 (QPSK 1/2) ", MCS_VALID},
|
||||||
|
{"HE MCS 2 (QPSK 3/4) ", MCS_VALID},
|
||||||
|
{"HE MCS 3 (16-QAM 1/2) ", MCS_VALID},
|
||||||
|
{"HE MCS 4 (16-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE MCS 5 (64-QAM 2/3) ", MCS_VALID},
|
||||||
|
{"HE MCS 6 (64-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE MCS 7 (64-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"HE MCS 8 (256-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE MCS 9 (256-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"HE MCS 10 (1024-QAM 3/4)", MCS_VALID},
|
||||||
|
{"HE MCS 11 (1024-QAM 5/6)", MCS_VALID},
|
||||||
|
{"HE MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
|
{"HE MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{"EHT MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
|
{"EHT MCS 1 (QPSK 1/2) ", MCS_VALID},
|
||||||
|
{"EHT MCS 2 (QPSK 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MCS 3 (16-QAM 1/2) ", MCS_VALID},
|
||||||
|
{"EHT MCS 4 (16-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MCS 5 (64-QAM 2/3) ", MCS_VALID},
|
||||||
|
{"EHT MCS 6 (64-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MCS 7 (64-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"EHT MCS 8 (256-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MCS 9 (256-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"EHT MCS 10 (1024-QAM 3/4)", MCS_VALID},
|
||||||
|
{"EHT MCS 11 (1024-QAM 5/6)", MCS_VALID},
|
||||||
|
{"EHT MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
|
{"EHT MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
|
{"EHT MCS 14 (BPSK-DCM 1/2)", MCS_VALID},
|
||||||
|
{"EHT MCS 15 (BPSK-DCM 1/2)", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_INVALID},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#else
|
||||||
static const struct cdp_rate_debug dp_ppdu_rate_string[DOT11_MAX][MAX_MCS] = {
|
static const struct cdp_rate_debug dp_ppdu_rate_string[DOT11_MAX][MAX_MCS] = {
|
||||||
{
|
{
|
||||||
{"HE MCS 0 (BPSK 1/2) ", MCS_VALID},
|
{"HE MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
@@ -99,7 +141,93 @@ static const struct cdp_rate_debug dp_ppdu_rate_string[DOT11_MAX][MAX_MCS] = {
|
|||||||
{"INVALID ", MCS_VALID},
|
{"INVALID ", MCS_VALID},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
static const struct cdp_rate_debug
|
||||||
|
dp_mu_rate_string[TXRX_TYPE_MU_MAX][MAX_MCS] = {
|
||||||
|
{
|
||||||
|
{"HE MU-MIMO MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 1 (QPSK 1/2) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 2 (QPSK 3/4) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 3 (16-QAM 1/2) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 4 (16-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 5 (64-QAM 2/3) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 6 (64-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 7 (64-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 8 (256-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 9 (256-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 10 (1024-QAM 3/4)", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 11 (1024-QAM 5/6)", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
|
{"HE MU-MIMO MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{"HE OFDMA MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 1 (QPSK 1/2) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 2 (QPSK 3/4) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 3 (16-QAM 1/2) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 4 (16-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 5 (64-QAM 2/3) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 6 (64-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 7 (64-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 8 (256-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 9 (256-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 10 (1024-QAM 3/4)", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 11 (1024-QAM 5/6)", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
|
{"HE OFDMA MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct cdp_rate_debug
|
||||||
|
dp_mu_be_rate_string[TXRX_TYPE_MU_MAX][MAX_MCS] = {
|
||||||
|
{
|
||||||
|
{"EHT MU-MIMO MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 1 (QPSK 1/2) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 2 (QPSK 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 3 (16-QAM 1/2) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 4 (16-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 5 (64-QAM 2/3) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 6 (64-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 7 (64-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 8 (256-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 9 (256-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 10 (1024-QAM 3/4)", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 11 (1024-QAM 5/6)", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
|
{"EHT MU-MINO MCS 14 (BPSK-DCM 1/2)", MCS_VALID},
|
||||||
|
{"EHT MU-MIMO MCS 15 (BPSK-DCM 1/2)", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{"EHT OFDMA MCS 0 (BPSK 1/2) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 1 (QPSK 1/2) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 2 (QPSK 3/4) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 3 (16-QAM 1/2) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 4 (16-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 5 (64-QAM 2/3) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 6 (64-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 7 (64-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 8 (256-QAM 3/4) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 9 (256-QAM 5/6) ", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 10 (1024-QAM 3/4)", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 11 (1024-QAM 5/6)", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 14 (BPSK-DCM 1/2)", MCS_VALID},
|
||||||
|
{"EHT OFDMA MCS 15 (BPSK-DCM 1/2)", MCS_VALID},
|
||||||
|
{"INVALID ", MCS_VALID},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#else
|
||||||
static const struct cdp_rate_debug
|
static const struct cdp_rate_debug
|
||||||
dp_mu_rate_string[TXRX_TYPE_MU_MAX][MAX_MCS] = {
|
dp_mu_rate_string[TXRX_TYPE_MU_MAX][MAX_MCS] = {
|
||||||
{
|
{
|
||||||
@@ -135,8 +263,9 @@ dp_mu_rate_string[TXRX_TYPE_MU_MAX][MAX_MCS] = {
|
|||||||
{"HE OFDMA MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
{"HE OFDMA MCS 12 (4096-QAM 3/4)", MCS_VALID},
|
||||||
{"HE OFDMA MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
{"HE OFDMA MCS 13 (4096-QAM 5/6)", MCS_VALID},
|
||||||
{"INVALID ", MCS_VALID},
|
{"INVALID ", MCS_VALID},
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *mu_reception_mode[TXRX_TYPE_MU_MAX] = {
|
const char *mu_reception_mode[TXRX_TYPE_MU_MAX] = {
|
||||||
"MU MIMO", "MU OFDMA"
|
"MU MIMO", "MU OFDMA"
|
||||||
@@ -5283,13 +5412,44 @@ dp_print_common_rates_info(struct cdp_pkt_type *pkt_type_array)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_print_common_ppdu_rates_info(): Print common rate for tx or rx
|
* dp_print_common_ppdu_rates_info(): Print ppdu rate for tx or rx
|
||||||
* @pkt_type_array: rate type array contains rate info
|
* @pkt_type_array: rate type array contains rate info
|
||||||
|
* @pkt_type: packet type
|
||||||
*
|
*
|
||||||
* Return:void
|
* Return:void
|
||||||
*/
|
*/
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
static inline void
|
static inline void
|
||||||
dp_print_common_ppdu_rates_info(struct cdp_pkt_type *pkt_type_array)
|
dp_print_common_ppdu_rates_info(struct cdp_pkt_type *pkt_type_array,
|
||||||
|
enum cdp_packet_type pkt_type)
|
||||||
|
{
|
||||||
|
uint8_t mcs;
|
||||||
|
|
||||||
|
DP_PRINT_STATS("PPDU Count");
|
||||||
|
for (mcs = 0; mcs < MAX_MCS; mcs++) {
|
||||||
|
if (pkt_type == DOT11_AX) {
|
||||||
|
if (!dp_ppdu_rate_string[0][mcs].valid)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DP_PRINT_STATS(" %s = %d",
|
||||||
|
dp_ppdu_rate_string[0][mcs].mcs_type,
|
||||||
|
pkt_type_array->mcs_count[mcs]);
|
||||||
|
} else if (pkt_type == DOT11_BE) {
|
||||||
|
if (!dp_ppdu_rate_string[1][mcs].valid)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DP_PRINT_STATS(" %s = %d",
|
||||||
|
dp_ppdu_rate_string[1][mcs].mcs_type,
|
||||||
|
pkt_type_array->mcs_count[mcs]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DP_PRINT_STATS("\n");
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void
|
||||||
|
dp_print_common_ppdu_rates_info(struct cdp_pkt_type *pkt_type_array,
|
||||||
|
enum cdp_packet_type pkt_type)
|
||||||
{
|
{
|
||||||
uint8_t mcs;
|
uint8_t mcs;
|
||||||
|
|
||||||
@@ -5305,13 +5465,36 @@ dp_print_common_ppdu_rates_info(struct cdp_pkt_type *pkt_type_array)
|
|||||||
|
|
||||||
DP_PRINT_STATS("\n");
|
DP_PRINT_STATS("\n");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_print_mu_ppdu_rates_info(): Print mu rate for tx or rx
|
* dp_print_mu_be_ppdu_rates_info(): Print mu be rate for tx or rx
|
||||||
* @rx_mu: rx MU stats array
|
* @pkt_type_array: rate type array contains rate info
|
||||||
*
|
*
|
||||||
* Return:void
|
* Return:void
|
||||||
*/
|
*/
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
static inline void
|
||||||
|
dp_print_mu_be_ppdu_rates_info(struct cdp_pkt_type *pkt_type_array)
|
||||||
|
{
|
||||||
|
uint8_t mcs, pkt_type;
|
||||||
|
|
||||||
|
DP_PRINT_STATS("PPDU Count");
|
||||||
|
for (pkt_type = 0; pkt_type < TXRX_TYPE_MU_MAX; pkt_type++) {
|
||||||
|
for (mcs = 0; mcs < MAX_MCS; mcs++) {
|
||||||
|
if (!dp_mu_rate_string[pkt_type][mcs].valid)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DP_PRINT_STATS(" %s = %d",
|
||||||
|
dp_mu_be_rate_string[pkt_type][mcs].mcs_type,
|
||||||
|
pkt_type_array->mcs_count[mcs]);
|
||||||
|
}
|
||||||
|
|
||||||
|
DP_PRINT_STATS("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
dp_print_mu_ppdu_rates_info(struct cdp_rx_mu *rx_mu)
|
dp_print_mu_ppdu_rates_info(struct cdp_rx_mu *rx_mu)
|
||||||
{
|
{
|
||||||
@@ -5656,6 +5839,69 @@ static inline void dp_peer_print_rx_delay_stats(struct dp_pdev *pdev,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
void dp_print_peer_txrx_stats_be(struct dp_peer *peer,
|
||||||
|
enum peer_stats_type stats_type)
|
||||||
|
{
|
||||||
|
uint8_t i;
|
||||||
|
|
||||||
|
if (stats_type == PEER_TX_STATS) {
|
||||||
|
DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d 320MHZ %d\n",
|
||||||
|
peer->stats.tx.bw[0], peer->stats.tx.bw[1],
|
||||||
|
peer->stats.tx.bw[2], peer->stats.tx.bw[3],
|
||||||
|
peer->stats.tx.bw[4]);
|
||||||
|
DP_PRINT_STATS("RU Locations RU[26 52 52_26 106 106_26 242 484 484_242 996 996_484 996_484_242 2X996 2X996_484 3X996 3X996_484 4X996]:");
|
||||||
|
for (i = 0; i < RU_INDEX_MAX; i++)
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[i].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[i].num_msdu);
|
||||||
|
dp_print_common_ppdu_rates_info(&peer->stats.tx.su_be_ppdu_cnt,
|
||||||
|
DOT11_BE);
|
||||||
|
dp_print_mu_be_ppdu_rates_info(&peer->stats.tx.mu_be_ppdu_cnt[0]);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d 320MHZ %d",
|
||||||
|
peer->stats.rx.bw[0], peer->stats.rx.bw[1],
|
||||||
|
peer->stats.rx.bw[2], peer->stats.rx.bw[3],
|
||||||
|
peer->stats.rx.bw[4]);
|
||||||
|
dp_print_common_ppdu_rates_info(&peer->stats.rx.su_be_ppdu_cnt,
|
||||||
|
DOT11_BE);
|
||||||
|
dp_print_mu_be_ppdu_rates_info(&peer->stats.rx.rx_mu_be[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void dp_print_peer_txrx_stats_be(struct dp_peer *peer,
|
||||||
|
enum peer_stats_type stats_type)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void dp_print_peer_txrx_stats_li(struct dp_peer *peer,
|
||||||
|
enum peer_stats_type stats_type)
|
||||||
|
{
|
||||||
|
if (stats_type == PEER_TX_STATS) {
|
||||||
|
DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d\n",
|
||||||
|
peer->stats.tx.bw[0], peer->stats.tx.bw[1],
|
||||||
|
peer->stats.tx.bw[2], peer->stats.tx.bw[3]);
|
||||||
|
DP_PRINT_STATS("RU Locations RU[26 52 106 242 484 996]:");
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[RU_26_INDEX].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[RU_26_INDEX].num_msdu);
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[RU_52_INDEX].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[RU_52_INDEX].num_msdu);
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[RU_106_INDEX].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[RU_106_INDEX].num_msdu);
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[RU_242_INDEX].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[RU_242_INDEX].num_msdu);
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[RU_484_INDEX].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[RU_484_INDEX].num_msdu);
|
||||||
|
DP_PRINT_STATS("%s: %d", cdp_ru_string[RU_996_INDEX].ru_type,
|
||||||
|
peer->stats.tx.ru_loc[RU_996_INDEX].num_msdu);
|
||||||
|
} else {
|
||||||
|
DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d",
|
||||||
|
peer->stats.rx.bw[0], peer->stats.rx.bw[1],
|
||||||
|
peer->stats.rx.bw[2], peer->stats.rx.bw[3]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void dp_print_peer_stats(struct dp_peer *peer)
|
void dp_print_peer_stats(struct dp_peer *peer)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
@@ -5746,9 +5992,6 @@ void dp_print_peer_stats(struct dp_peer *peer)
|
|||||||
peer->stats.tx.excess_retries_per_ac[2]);
|
peer->stats.tx.excess_retries_per_ac[2]);
|
||||||
DP_PRINT_STATS(" Voice = %d",
|
DP_PRINT_STATS(" Voice = %d",
|
||||||
peer->stats.tx.excess_retries_per_ac[3]);
|
peer->stats.tx.excess_retries_per_ac[3]);
|
||||||
DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d\n",
|
|
||||||
peer->stats.tx.bw[0], peer->stats.tx.bw[1],
|
|
||||||
peer->stats.tx.bw[2], peer->stats.tx.bw[3]);
|
|
||||||
|
|
||||||
pnss = &peer->stats.tx.nss[0];
|
pnss = &peer->stats.tx.nss[0];
|
||||||
dp_print_nss(nss, pnss, SS_COUNT);
|
dp_print_nss(nss, pnss, SS_COUNT);
|
||||||
@@ -5779,10 +6022,6 @@ void dp_print_peer_stats(struct dp_peer *peer)
|
|||||||
|
|
||||||
DP_PRINT_STATS("Last Packet RU index [%d], Size [%d]",
|
DP_PRINT_STATS("Last Packet RU index [%d], Size [%d]",
|
||||||
peer->stats.tx.ru_start, peer->stats.tx.ru_tones);
|
peer->stats.tx.ru_start, peer->stats.tx.ru_tones);
|
||||||
DP_PRINT_STATS("RU Locations RU[26 52 106 242 484 996]:");
|
|
||||||
for (i = 0; i < RU_INDEX_MAX; i++)
|
|
||||||
DP_PRINT_STATS("%s: %d", cdp_ru_string[i].ru_type,
|
|
||||||
peer->stats.tx.ru_loc[i].num_msdu);
|
|
||||||
|
|
||||||
DP_PRINT_STATS("Aggregation:");
|
DP_PRINT_STATS("Aggregation:");
|
||||||
DP_PRINT_STATS("Number of Msdu's Part of Amsdu = %d",
|
DP_PRINT_STATS("Number of Msdu's Part of Amsdu = %d",
|
||||||
@@ -5796,6 +6035,9 @@ void dp_print_peer_stats(struct dp_peer *peer)
|
|||||||
DP_PRINT_STATS(" Data transmitted in last sec: %d",
|
DP_PRINT_STATS(" Data transmitted in last sec: %d",
|
||||||
peer->stats.tx.tx_data_rate);
|
peer->stats.tx.tx_data_rate);
|
||||||
|
|
||||||
|
if (pdev && pdev->soc->arch_ops.txrx_print_peer_stats)
|
||||||
|
pdev->soc->arch_ops.txrx_print_peer_stats(peer, PEER_TX_STATS);
|
||||||
|
|
||||||
dp_print_jitter_stats(peer, pdev);
|
dp_print_jitter_stats(peer, pdev);
|
||||||
dp_peer_print_tx_delay_stats(pdev, peer);
|
dp_peer_print_tx_delay_stats(pdev, peer);
|
||||||
|
|
||||||
@@ -5855,9 +6097,6 @@ void dp_print_peer_stats(struct dp_peer *peer)
|
|||||||
peer->stats.rx.sgi_count[1],
|
peer->stats.rx.sgi_count[1],
|
||||||
peer->stats.rx.sgi_count[2],
|
peer->stats.rx.sgi_count[2],
|
||||||
peer->stats.rx.sgi_count[3]);
|
peer->stats.rx.sgi_count[3]);
|
||||||
DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d",
|
|
||||||
peer->stats.rx.bw[0], peer->stats.rx.bw[1],
|
|
||||||
peer->stats.rx.bw[2], peer->stats.rx.bw[3]);
|
|
||||||
DP_PRINT_STATS("MSDU Reception Type");
|
DP_PRINT_STATS("MSDU Reception Type");
|
||||||
DP_PRINT_STATS("SU %d MU_MIMO %d MU_OFDMA %d MU_OFDMA_MIMO %d",
|
DP_PRINT_STATS("SU %d MU_MIMO %d MU_OFDMA %d MU_OFDMA_MIMO %d",
|
||||||
peer->stats.rx.reception_type[0],
|
peer->stats.rx.reception_type[0],
|
||||||
@@ -5872,7 +6111,8 @@ void dp_print_peer_stats(struct dp_peer *peer)
|
|||||||
peer->stats.rx.ppdu_cnt[3]);
|
peer->stats.rx.ppdu_cnt[3]);
|
||||||
|
|
||||||
dp_print_common_rates_info(peer->stats.rx.pkt_type);
|
dp_print_common_rates_info(peer->stats.rx.pkt_type);
|
||||||
dp_print_common_ppdu_rates_info(&peer->stats.rx.su_ax_ppdu_cnt);
|
dp_print_common_ppdu_rates_info(&peer->stats.rx.su_ax_ppdu_cnt,
|
||||||
|
DOT11_AX);
|
||||||
dp_print_mu_ppdu_rates_info(&peer->stats.rx.rx_mu[0]);
|
dp_print_mu_ppdu_rates_info(&peer->stats.rx.rx_mu[0]);
|
||||||
|
|
||||||
pnss = &peer->stats.rx.nss[0];
|
pnss = &peer->stats.rx.nss[0];
|
||||||
@@ -5927,6 +6167,8 @@ void dp_print_peer_stats(struct dp_peer *peer)
|
|||||||
peer->stats.rx.peer_unauth_rx_pkt_drop);
|
peer->stats.rx.peer_unauth_rx_pkt_drop);
|
||||||
DP_PRINT_STATS("Policy Check Rx Packet Drop = %d",
|
DP_PRINT_STATS("Policy Check Rx Packet Drop = %d",
|
||||||
peer->stats.rx.policy_check_drop);
|
peer->stats.rx.policy_check_drop);
|
||||||
|
if (pdev && pdev->soc->arch_ops.txrx_print_peer_stats)
|
||||||
|
pdev->soc->arch_ops.txrx_print_peer_stats(peer, PEER_RX_STATS);
|
||||||
|
|
||||||
dp_peer_print_rx_delay_stats(pdev, peer);
|
dp_peer_print_rx_delay_stats(pdev, peer);
|
||||||
}
|
}
|
||||||
|
@@ -1724,6 +1724,8 @@ struct dp_arch_ops {
|
|||||||
int mac_addr_is_aligned,
|
int mac_addr_is_aligned,
|
||||||
enum dp_mod_id mod_id);
|
enum dp_mod_id mod_id);
|
||||||
#endif
|
#endif
|
||||||
|
void (*txrx_print_peer_stats)(struct dp_peer *peer,
|
||||||
|
enum peer_stats_type stats_type);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3678,6 +3680,10 @@ QDF_STATUS dp_srng_init(struct dp_soc *soc, struct dp_srng *srng,
|
|||||||
int ring_type, int ring_num, int mac_id);
|
int ring_type, int ring_num, int mac_id);
|
||||||
void dp_srng_deinit(struct dp_soc *soc, struct dp_srng *srng,
|
void dp_srng_deinit(struct dp_soc *soc, struct dp_srng *srng,
|
||||||
int ring_type, int ring_num);
|
int ring_type, int ring_num);
|
||||||
|
void dp_print_peer_txrx_stats_be(struct dp_peer *peer,
|
||||||
|
enum peer_stats_type stats_type);
|
||||||
|
void dp_print_peer_txrx_stats_li(struct dp_peer *peer,
|
||||||
|
enum peer_stats_type stats_type);
|
||||||
|
|
||||||
enum timer_yield_status
|
enum timer_yield_status
|
||||||
dp_should_timer_irq_yield(struct dp_soc *soc, uint32_t work_done,
|
dp_should_timer_irq_yield(struct dp_soc *soc, uint32_t work_done,
|
||||||
|
@@ -424,5 +424,6 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
|
|||||||
arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
|
arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
|
||||||
arch_ops->reo_remap_config = dp_reo_remap_config_li;
|
arch_ops->reo_remap_config = dp_reo_remap_config_li;
|
||||||
arch_ops->txrx_set_vdev_param = dp_txrx_set_vdev_param_li;
|
arch_ops->txrx_set_vdev_param = dp_txrx_set_vdev_param_li;
|
||||||
|
arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_li;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user