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
This commit is contained in:
Aman Mehta
2023-08-04 02:52:31 +05:30
committed by Rahul Choudhary
parent d5578559ec
commit d6ee46a496
2 changed files with 10 additions and 0 deletions

View File

@@ -1389,6 +1389,8 @@ enum cdp_peer_stats_type {
cdp_peer_rx_flags, cdp_peer_rx_flags,
cdp_peer_rx_avg_snr, cdp_peer_rx_avg_snr,
cdp_peer_rx_snr, cdp_peer_rx_snr,
cdp_peer_rx_avg_rate,
cdp_peer_tx_avg_rate,
/* Add enum for peer extd stats before this */ /* Add enum for peer extd stats before this */
cdp_peer_extd_stats_max, cdp_peer_extd_stats_max,
cdp_peer_stats_max = 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_ucast;
struct cdp_pkt_info tx_mcast; struct cdp_pkt_info tx_mcast;
uint32_t tx_rate; uint32_t tx_rate;
uint32_t tx_rate_avg;
uint32_t last_tx_rate; uint32_t last_tx_rate;
uint32_t tx_inactive_time; uint32_t tx_inactive_time;
uint32_t tx_flags; uint32_t tx_flags;
@@ -1413,6 +1416,7 @@ typedef union cdp_peer_stats_buf {
/* Rx types */ /* Rx types */
struct cdp_pkt_info rx_ucast; struct cdp_pkt_info rx_ucast;
uint32_t rx_rate; uint32_t rx_rate;
uint32_t rx_rate_avg;
uint32_t last_rx_rate; uint32_t last_rx_rate;
uint32_t rx_ratecode; uint32_t rx_ratecode;
uint32_t rx_flags; uint32_t rx_flags;

View File

@@ -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: case cdp_peer_rx_snr:
buf->rx_snr = mon_peer->stats.rx.snr; buf->rx_snr = mon_peer->stats.rx.snr;
break; 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: default:
dp_err("Invalid stats type: %u requested", type); dp_err("Invalid stats type: %u requested", type);
ret = QDF_STATUS_E_FAILURE; ret = QDF_STATUS_E_FAILURE;