[PATCH v5 7/9] wifi: ath12k: Add EHT MCS support in Extended Rx statistics

Vasanthakumar Thiagarajan quic_vthiagar at quicinc.com
Tue Jan 28 21:50:13 PST 2025



On 1/27/2025 4:17 PM, Karthikeyan Periyasamy wrote:
> From: Balamurugan Mahalingam <quic_bmahalin at quicinc.com>
> 
> Currently, EHT MCS information is not populated. Therefore, add the EHT
> MCS counter array to the peer rate statistics and update the EHT MCS
> statistics from the status TLV data in the monitor Rx path. In the future,
> this information will be used in the peer extended Rx statistics dump.
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Balamurugan Mahalingam <quic_bmahalin at quicinc.com>
> Signed-off-by: Karthikeyan Periyasamy <quic_periyasa at quicinc.com>
> ---
>   drivers/net/wireless/ath/ath12k/core.h   | 2 ++
>   drivers/net/wireless/ath/ath12k/dp_mon.c | 6 ++++++
>   2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
> index 28db100cfac0..2c9c62cb1af5 100644
> --- a/drivers/net/wireless/ath/ath12k/core.h
> +++ b/drivers/net/wireless/ath/ath12k/core.h
> @@ -357,6 +357,7 @@ struct ath12k_vif_iter {
>   #define HAL_RX_MAX_MCS_HT	31
>   #define HAL_RX_MAX_MCS_VHT	9
>   #define HAL_RX_MAX_MCS_HE	11
> +#define HAL_RX_MAX_MCS_BE	15
>   #define HAL_RX_MAX_NSS		8
>   #define HAL_RX_MAX_NUM_LEGACY_RATES 12
>   #define ATH12K_RX_RATE_TABLE_11AX_NUM	576
> @@ -366,6 +367,7 @@ struct ath12k_rx_peer_rate_stats {
>   	u64 ht_mcs_count[HAL_RX_MAX_MCS_HT + 1];
>   	u64 vht_mcs_count[HAL_RX_MAX_MCS_VHT + 1];
>   	u64 he_mcs_count[HAL_RX_MAX_MCS_HE + 1];
> +	u64 be_mcs_count[HAL_RX_MAX_MCS_BE + 1];
>   	u64 nss_count[HAL_RX_MAX_NSS];
>   	u64 bw_count[HAL_RX_BW_MAX];
>   	u64 gi_count[HAL_RX_GI_MAX];
> diff --git a/drivers/net/wireless/ath/ath12k/dp_mon.c b/drivers/net/wireless/ath/ath12k/dp_mon.c
> index 6ba2f0fa39c1..dae430ee3c19 100644
> --- a/drivers/net/wireless/ath/ath12k/dp_mon.c
> +++ b/drivers/net/wireless/ath/ath12k/dp_mon.c
> @@ -3059,6 +3059,12 @@ static void ath12k_dp_mon_rx_update_peer_su_stats(struct ath12k *ar,
>   		rx_stats->byte_stats.he_mcs_count[ppdu_info->mcs] += ppdu_info->mpdu_len;
>   	}
>   
> +	if (ppdu_info->preamble_type == HAL_RX_PREAMBLE_11BE &&
> +	    ppdu_info->mcs <= HAL_RX_MAX_MCS_BE) {
> +		rx_stats->pkt_stats.be_mcs_count[ppdu_info->mcs] += num_msdu;
> +		rx_stats->byte_stats.be_mcs_count[ppdu_info->mcs] += ppdu_info->mpdu_len;
> +	}
> +
>   	if ((ppdu_info->preamble_type == HAL_RX_PREAMBLE_11A ||
>   	     ppdu_info->preamble_type == HAL_RX_PREAMBLE_11B) &&
>   	     ppdu_info->rate < HAL_RX_LEGACY_RATE_INVALID) {

Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan at oss.qualcomm.com>



More information about the ath12k mailing list