From d6ee46a496a313b828e3e7a9171bd8523db6619c Mon Sep 17 00:00:00 2001 From: Aman Mehta Date: Fri, 4 Aug 2023 02:52:31 +0530 Subject: [PATCH] qcacmn: Add support for average tx/rx rate Apstats use to return last tx/rx rate for avg. tx/rx rates. This change updates the behavior to return average tx/rx rates. Change-Id: Idfff2ae9df7c5af1ef86ceb5688b1e01fd6dae21 CRs-Fixed: 3628056 --- dp/inc/cdp_txrx_stats_struct.h | 4 ++++ dp/wifi3.0/monitor/dp_mon.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/dp/inc/cdp_txrx_stats_struct.h b/dp/inc/cdp_txrx_stats_struct.h index 000c9b7088..8ee6cfab66 100644 --- a/dp/inc/cdp_txrx_stats_struct.h +++ b/dp/inc/cdp_txrx_stats_struct.h @@ -1389,6 +1389,8 @@ enum cdp_peer_stats_type { cdp_peer_rx_flags, cdp_peer_rx_avg_snr, cdp_peer_rx_snr, + cdp_peer_rx_avg_rate, + cdp_peer_tx_avg_rate, /* Add enum for peer extd stats before this */ cdp_peer_extd_stats_max, cdp_peer_stats_max = cdp_peer_extd_stats_max, @@ -1404,6 +1406,7 @@ typedef union cdp_peer_stats_buf { struct cdp_pkt_info tx_ucast; struct cdp_pkt_info tx_mcast; uint32_t tx_rate; + uint32_t tx_rate_avg; uint32_t last_tx_rate; uint32_t tx_inactive_time; uint32_t tx_flags; @@ -1413,6 +1416,7 @@ typedef union cdp_peer_stats_buf { /* Rx types */ struct cdp_pkt_info rx_ucast; uint32_t rx_rate; + uint32_t rx_rate_avg; uint32_t last_rx_rate; uint32_t rx_ratecode; uint32_t rx_flags; diff --git a/dp/wifi3.0/monitor/dp_mon.c b/dp/wifi3.0/monitor/dp_mon.c index 05c4bf0637..bba68d534d 100644 --- a/dp/wifi3.0/monitor/dp_mon.c +++ b/dp/wifi3.0/monitor/dp_mon.c @@ -6475,6 +6475,12 @@ dp_mon_peer_get_stats_param(struct dp_peer *peer, enum cdp_peer_stats_type type, case cdp_peer_rx_snr: buf->rx_snr = mon_peer->stats.rx.snr; break; + case cdp_peer_rx_avg_rate: + buf->rx_rate_avg = mon_peer->stats.rx.rnd_avg_rx_rate; + break; + case cdp_peer_tx_avg_rate: + buf->tx_rate_avg = mon_peer->stats.tx.rnd_avg_tx_rate; + break; default: dp_err("Invalid stats type: %u requested", type); ret = QDF_STATUS_E_FAILURE;