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

@@ -84,6 +84,8 @@ enum wlan_peer_rate_stats_cmd {
DP_PEER_RX_RATE_STATS,
DP_PEER_TX_RATE_STATS,
DP_PEER_SOJOURN_STATS,
DP_PEER_RX_LINK_STATS,
DP_PEER_TX_LINK_STATS,
};
/** struct wlan_tx_rate_stats - Tx packet rate info
@@ -146,6 +148,86 @@ struct wlan_tx_sojourn_stats {
qdf_ewma_tx_lag avg_sojourn_msdu[WLAN_DATA_TID_MAX];
};
#define BW_USAGE_MAX_SIZE 4
/**
* struct wlan_peer_bw_stats - per link bw related stats
* @usage_total - sum of total BW (20, 40, 80, 160)
* @usage_avg - @usage_total / number of PPDUs (avg BW)
* @usage_counter - each BW usage counter
* @usage_max - number of pkts in max BW mode
*/
struct wlan_peer_bw_stats {
uint32_t usage_total;
uint32_t usage_counter[BW_USAGE_MAX_SIZE];
uint8_t usage_avg;
uint8_t usage_max;
};
/**
* struct wlan_rx_link_stats - Peer Rx link statistics
* @num_ppdus - number of ppdus per user
* @bytes - number of bytes per user
* @phy_rate_lpf_avg_su - SU packet LPF averaged rx rate
* @phy_rate_actual_su - SU packet rounded average rx rate
* @phy_rate_lpf_avg_mu - MU packet LPF averaged rx rate
* @phy_rate_actual_mu - MUpacket rounded average rx rate
* @ofdma_usage - number of packet in OFDMA
* @mu_mimo_usage - number of pakcets in MU MIMO
* @bw - average BW and max BW related structure
* @su_rssi - single user RSSI
* @mpdu_retries - number of retried MPDUs
* @pkt_error_rate - average packet error rate
* @num_mpdus - total number of mpdus
*/
struct wlan_rx_link_stats {
uint64_t bytes;
uint32_t num_ppdus;
uint32_t phy_rate_lpf_avg_su;
uint32_t phy_rate_actual_su;
uint32_t phy_rate_lpf_avg_mu;
uint32_t phy_rate_actual_mu;
uint32_t ofdma_usage;
uint32_t mu_mimo_usage;
struct wlan_peer_bw_stats bw;
qdf_ewma_rx_rssi su_rssi;
uint32_t mpdu_retries;
uint32_t num_mpdus;
uint8_t pkt_error_rate;
};
/**
* struct wlan_tx_link_stats - Peer tx link statistics
* @num_ppdus - number of ppdus per user
* @bytes - number of bytes per user
* @phy_rate_lpf_avg_su - SU packet LPF averaged tx rate
* @phy_rate_actual_su - SU packet rounded average tx rate
* @phy_rate_lpf_avg_mu - MU packet LPF averaged tx rate
* @phy_rate_actual_mu - MUpacket rounded average tx rate
* @ofdma_usage - number of packet in OFDMA
* @mu_mimo_usage - number of pakcets in MU MIMO
* @bw - average BW and max BW related structure
* @ack_rssi - averaged ACK rssi
* @mpdu_failed - number of failed MPDUs
* @mpdu_success - number of success MPDUs
* @pkt_error_rate - average packet error rate
*/
struct wlan_tx_link_stats {
uint64_t bytes;
uint32_t num_ppdus;
uint32_t phy_rate_lpf_avg_su;
uint32_t phy_rate_actual_su;
uint32_t phy_rate_lpf_avg_mu;
uint32_t phy_rate_actual_mu;
uint32_t ofdma_usage;
uint32_t mu_mimo_usage;
struct wlan_peer_bw_stats bw;
qdf_ewma_rx_rssi ack_rssi;
uint32_t mpdu_failed;
uint32_t mpdu_success;
uint8_t pkt_error_rate;
};
/**
* struct wlan_peer_rate_stats_intf - Interface structure to
* flush stats to user spave entity