Message ID | 20250127104738.4174862-8-quic_periyasa@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | wifi: ath12k: Add peer extended Rx statistics debugfs support | expand |
On 1/27/2025 4:17 PM, Karthikeyan Periyasamy wrote: > From: Balamurugan Mahalingam <quic_bmahalin@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@quicinc.com> > Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@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@oss.qualcomm.com>
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) {