qca-wifi: FR 61891 Per Client Link Quality Metrics

Adding new metrics to existing RDK Plume statistics

PHY Metrics Tx

1. phy_rate_actual_su - Single User Rate
2. phy_rate_actual_mu - Multi User Rate
3. ofdma_usage -  OFDMA Usage count
4. mu_mimo_usage - MU MIMO Usage count
5. bw_usage_avg - Average BW
6. bw_usage_max - Max BW Ratio to total PPDUs
7. pkt_error_rate(mpdu) - MPDU packet error rate
8. num_ppdus - Number of PPDUs
9. num_bytes - Number of PPDU bytes

PHY Metrics Rx

1. phy_rate_actual_su - Single User Rate
2. phy_rate_actual_mu - Multi User Rate
3. ofdma_usage -  OFDMA Usage count
4. mu_mimo_usage - MU MIMO Usage count
5. bw_usage_avg - Average BW
6. bw_usage_max - Max BW Ratio to total PPDUs
7. pkt_error_rate(mpdu) - MPDU packet error rate
8. num_ppdus - Number of PPDUs
9. num_bytes - Number of PPDU bytes

RSSI
1. su_rssi - Single user Rx RSSI
2. ack_rssi - ACK RSSI

CRs-Fixed: 2740231
Change-Id: Ie62157195d87f61640aa7bc65b2f02f629ff195d
This commit is contained in:
phadiman
2020-08-01 18:53:02 +05:30
committed by Gerrit - the friendly Code Review server
parent 5b50c70f81
commit 8ad7491fdd
3 changed files with 428 additions and 53 deletions

View File

@@ -43,6 +43,20 @@
struct cdp_pdev;
/**
* enum dp_ppdu_type - enum for ppdu_type
* @DP_PPDU_TYPE_SU: single user PPDU
* @DP_PPDU_TYPE_MU_MIMO: multi user mimo ppdu
* @DP_PPDU_TYPE_MU_OFDMA: multi user ofdma ppdu
* @DP_PPDU_TYPE_MU_OFDMA_MIMO: multi user mimo/ofdma ppdu
*/
enum dp_ppdu_type {
DP_PPDU_TYPE_SU,
DP_PPDU_TYPE_MU_MIMO,
DP_PPDU_TYPE_MU_OFDMA,
DP_PPDU_TYPE_MU_OFDMA_MIMO,
};
/**
* struct wlan_peer_tx_rate_stats - peer tx rate statistics
* @stats: array containing tx rate stats
@@ -71,10 +85,32 @@ struct wlan_peer_rx_rate_stats {
qdf_spinlock_t lock;
};
/**
* struct wlan_peer_rx_link_stats - Peer Rx Link statistics
* @stats: array containing rx rate stats
* @lock: lock protecting list
*/
struct wlan_peer_rx_link_stats {
struct wlan_rx_link_stats stats;
qdf_spinlock_t lock;
};
/**
* struct wlan_peer_tx_link_stats - Peer Tx Link statistics
* @stats: array containing rx rate stats
* @lock: lock protecting list
*/
struct wlan_peer_tx_link_stats {
struct wlan_tx_link_stats stats;
qdf_spinlock_t lock;
};
/**
* struct wlan_peer_rate_stats - Peer rate statistics ctx
* @tx: tx rate statistics
* @rx: rx rate statistics
* @tx_link_stats: tx link quality stats
* @rx_link_stats: rx link quality stats
* @mac_addr: peer MAC address
* @peer_cookie: cookie for unique session of peer
* @pdev_id: id of dp pdev
@@ -82,6 +118,8 @@ struct wlan_peer_rx_rate_stats {
struct wlan_peer_rate_stats_ctx {
struct wlan_peer_tx_rate_stats tx;
struct wlan_peer_rx_rate_stats rx;
struct wlan_peer_rx_link_stats rx_link_stats;
struct wlan_peer_tx_link_stats tx_link_stats;
uint8_t mac_addr[WLAN_MAC_ADDR_LEN];
uint64_t peer_cookie;
uint8_t pdev_id;