qcacmn: Update airtime computation to per AC level

Update airtime computation to per AC level.

Change-Id: Ia8cb890d2f1dc167ec3a2610ff5a70238d55262d
CRs-Fixed: 3281256
这个提交包含在:
Himanshu Batra
2022-09-01 16:15:35 +05:30
提交者 Madan Koyyalamudi
父节点 6f012336ae
当前提交 6a5ab907c1
修改 4 个文件,包含 31 行新增21 行删除

查看文件

@@ -903,7 +903,7 @@ struct dp_mon_peer_stats {
dp_mon_peer_tx_stats tx;
dp_mon_peer_rx_stats rx;
#ifdef WLAN_TELEMETRY_STATS_SUPPORT
struct dp_mon_peer_airtime_consumption airtime_consumption;
struct dp_mon_peer_airtime_consumption airtime_consumption[WME_AC_MAX];
#endif
#endif
};
@@ -4239,20 +4239,24 @@ void dp_monitor_peer_telemetry_stats(struct dp_peer *peer,
struct cdp_peer_telemetry_stats *stats)
{
struct dp_mon_peer_stats *mon_peer_stats = NULL;
uint8_t idx = 0;
uint8_t idx = 0, ac;
uint32_t consumption = 0;
if (qdf_unlikely(!peer->monitor_peer))
return;
mon_peer_stats = &peer->monitor_peer->stats;
for (idx = 0; idx < MAX_CONSUMPTION_TIME; idx++)
consumption +=
mon_peer_stats->airtime_consumption.avg_consumption.avg_consumption_per_sec[idx];
/* consumption is in micro seconds, convert it to seconds and
* then calculate %age per 5 sec
*/
stats->airtime_consumption = ((consumption * 100) / (MAX_CONSUMPTION_TIME * 1000000));
for (ac = 0; ac < WME_AC_MAX; ac++) {
consumption = 0;
for (idx = 0; idx < MAX_CONSUMPTION_TIME; idx++)
consumption +=
mon_peer_stats->airtime_consumption[ac].avg_consumption.avg_consumption_per_sec[idx];
/* consumption is in micro seconds, convert it to seconds and
* then calculate %age per 5 sec
*/
stats->airtime_consumption[ac] =
((consumption * 100) / (MAX_CONSUMPTION_TIME * 1000000));
}
stats->tx_mpdu_retried = mon_peer_stats->tx.retries;
stats->tx_mpdu_total = mon_peer_stats->tx.tx_mpdus_tried;
stats->rx_mpdu_retried = mon_peer_stats->rx.mpdu_retry_cnt;