qca-wifi: Add stats mcs, nss and bw

Add encoding macros for mcs nss and bw stats

Change-Id: Icc1b238380be8d8d5596e3c7117696c0b0b4cbeb
This commit is contained in:
Chaitanya Kiran Godavarthi
2019-07-04 11:42:27 +05:30
committed by Gerrit - the friendly Code Review server
orang tua 92d227899a
melakukan 6d13ce0f35
2 mengubah file dengan 45 tambahan dan 3 penghapusan

Melihat File

@@ -48,6 +48,34 @@
QDF_DECLARE_EWMA(rx_rssi, 1024, 8)
#endif
#define DP_PEER_STATS_RIX_MASK 0xffff
#define DP_PEER_STATS_NSS_MASK 0xf
#define DP_PEER_STATS_MCS_MASK 0xf
#define DP_PEER_STATS_BW_MASK 0xf
#define DP_PEER_STATS_RIX_OFFSET 0
#define DP_PEER_STATS_NSS_OFFSET 16
#define DP_PEER_STATS_MCS_OFFSET 20
#define DP_PEER_STATS_BW_OFFSET 24
#define ASSEMBLE_STATS_CODE(_rix, _nss, _mcs, _bw) \
(((_rix & DP_PEER_STATS_RIX_MASK) << DP_PEER_STATS_RIX_OFFSET) | \
((_nss & DP_PEER_STATS_NSS_MASK) << DP_PEER_STATS_NSS_OFFSET) | \
((_mcs & DP_PEER_STATS_MCS_MASK) << DP_PEER_STATS_MCS_OFFSET) | \
((_bw & DP_PEER_STATS_BW_MASK) << DP_PEER_STATS_BW_OFFSET))
#define GET_DP_PEER_STATS_RIX(_val) \
(((_val) >> DP_PEER_STATS_RIX_OFFSET) & DP_PEER_STATS_RIX_MASK)
#define GET_DP_PEER_STATS_NSS(_val) \
(((_val) >> DP_PEER_STATS_NSS_OFFSET) & DP_PEER_STATS_NSS_MASK)
#define GET_DP_PEER_STATS_MCS(_val) \
(((_val) >> DP_PEER_STATS_MCS_OFFSET) & DP_PEER_STATS_MCS_MASK)
#define GET_DP_PEER_STATS_BW(_val) \
(((_val) >> DP_PEER_STATS_BW_OFFSET) & DP_PEER_STATS_BW_MASK)
/**
* enum cdp_peer_rate_stats_cmd -
* used by app to get specific stats

Melihat File

@@ -167,7 +167,15 @@ __wlan_peer_update_rx_rate_stats(struct wlan_rx_rate_stats *__rx_stats,
{
uint8_t ant, ht;
__rx_stats->rix = cdp_rx_ppdu->rix;
if (cdp_rx_ppdu->rix == -1) {
__rx_stats->rix = cdp_rx_ppdu->rix;
} else {
__rx_stats->rix = ASSEMBLE_STATS_CODE(cdp_rx_ppdu->rix,
cdp_rx_ppdu->u.nss,
cdp_rx_ppdu->u.mcs,
cdp_rx_ppdu->u.bw);
}
__rx_stats->rate = cdp_rx_ppdu->rx_ratekbps;
__rx_stats->num_bytes += cdp_rx_ppdu->num_bytes;
__rx_stats->num_msdus += cdp_rx_ppdu->num_msdu;
@@ -267,8 +275,14 @@ __wlan_peer_update_tx_rate_stats(struct wlan_tx_rate_stats *__tx_stats,
num_ppdus = ppdu_user->long_retries + 1;
mpdu_attempts = num_ppdus * ppdu_user->mpdu_tried_ucast;
mpdu_success = ppdu_user->mpdu_tried_ucast - ppdu_user->mpdu_failed;
__tx_stats->rix = ppdu_user->rix;
if (ppdu_user->rix == -1) {
__tx_stats->rix = ppdu_user->rix;
} else {
__tx_stats->rix = ASSEMBLE_STATS_CODE(ppdu_user->rix,
ppdu_user->nss,
ppdu_user->mcs,
ppdu_user->bw);
}
__tx_stats->rate = ppdu_user->tx_ratekbps;
__tx_stats->num_ppdus += num_ppdus;
__tx_stats->mpdu_attempts += mpdu_attempts;