qcacmn: Provide support for avg. phyrate stats

Provide support for average tx and rx phyrate statistics

Change-Id: Ib1c2d2c90ca6a8a0f1ac1bc08d9e1f89537cbb4d
This commit is contained in:
Neha Bisht
2020-09-14 12:44:58 +05:30
committed by snandini
parent 958652969d
commit 0e390d9bab
4 changed files with 13 additions and 1 deletions

View File

@@ -1654,6 +1654,7 @@ struct cdp_delayed_tx_completion_ppdu_user {
* @sa_goodput: smart antenna tx feedback info goodput * @sa_goodput: smart antenna tx feedback info goodput
* @current_rate_per: Moving average per * @current_rate_per: Moving average per
* @last_enq_seq: last equeue sequence number * @last_enq_seq: last equeue sequence number
* @is_bss_peer: is bss peer check
* @mpdu_q: queue of mpdu in a ppdu * @mpdu_q: queue of mpdu in a ppdu
* @mpdus: MPDU list based on enqueue sequence bitmap * @mpdus: MPDU list based on enqueue sequence bitmap
* @pending_retries: pending MPDUs (retries) * @pending_retries: pending MPDUs (retries)
@@ -1751,6 +1752,8 @@ struct cdp_tx_completion_ppdu_user {
uint32_t current_rate_per; uint32_t current_rate_per;
uint32_t last_enq_seq; uint32_t last_enq_seq;
uint8_t is_bss_peer;
qdf_nbuf_queue_t mpdu_q; qdf_nbuf_queue_t mpdu_q;
qdf_nbuf_t *mpdus; qdf_nbuf_t *mpdus;
uint32_t pending_retries; uint32_t pending_retries;
@@ -2054,6 +2057,7 @@ struct cdp_tx_completion_msdu {
* @nss: NSS 1,2, ...8 * @nss: NSS 1,2, ...8
* @mcs: MCS index * @mcs: MCS index
* @user_index: user ID in multi-user case * @user_index: user ID in multi-user case
* @is_bss_peer - is bss peer check
* @ast_index: ast index in multi-user case * @ast_index: ast index in multi-user case
* @tid: TID number * @tid: TID number
* @num_msdu: Number of MSDUs in PPDU * @num_msdu: Number of MSDUs in PPDU
@@ -2074,7 +2078,8 @@ struct cdp_tx_completion_msdu {
* @mpdu_cnt_fcs_ok: Number of MPDUs in PPDU with fcs ok * @mpdu_cnt_fcs_ok: Number of MPDUs in PPDU with fcs ok
* @mpdu_cnt_fcs_err: Number of MPDUs in PPDU with fcs err * @mpdu_cnt_fcs_err: Number of MPDUs in PPDU with fcs err
* @mpdu_fcs_ok_bitmap - MPDU with fcs ok bitmap * @mpdu_fcs_ok_bitmap - MPDU with fcs ok bitmap
* @retried - number of retries * @retries - number of retries
* @rx_ratekpbs - rx rate in kbps
*/ */
struct cdp_rx_stats_ppdu_user { struct cdp_rx_stats_ppdu_user {
uint16_t peer_id; uint16_t peer_id;
@@ -2087,6 +2092,7 @@ struct cdp_rx_stats_ppdu_user {
mcs:4; mcs:4;
/* user id */ /* user id */
uint8_t user_index; uint8_t user_index;
uint8_t is_bss_peer;
uint32_t ast_index; uint32_t ast_index;
uint32_t tid; uint32_t tid;
uint32_t num_msdu; uint32_t num_msdu;
@@ -2110,6 +2116,7 @@ struct cdp_rx_stats_ppdu_user {
uint32_t mpdu_ok_byte_count; uint32_t mpdu_ok_byte_count;
uint32_t mpdu_err_byte_count; uint32_t mpdu_err_byte_count;
uint32_t retries; uint32_t retries;
uint32_t rx_ratekbps;
}; };
/** /**

View File

@@ -3557,6 +3557,7 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
if (!peer) if (!peer)
continue; continue;
ppdu_desc->user[i].is_bss_peer = peer->bss_peer;
/* /*
* different frame like DATA, BAR or CTRL has different * different frame like DATA, BAR or CTRL has different
* tlv bitmap expected. Apart from ACK_BA_STATUS TLV, we * tlv bitmap expected. Apart from ACK_BA_STATUS TLV, we

View File

@@ -301,6 +301,7 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev,
rx_stats_peruser->peer_id = HTT_INVALID_PEER; rx_stats_peruser->peer_id = HTT_INVALID_PEER;
continue; continue;
} }
rx_stats_peruser->is_bss_peer = peer->bss_peer;
rx_stats_peruser->first_data_seq_ctrl = rx_stats_peruser->first_data_seq_ctrl =
rx_user_status->first_data_seq_ctrl; rx_user_status->first_data_seq_ctrl;
@@ -579,6 +580,8 @@ static inline void dp_rx_rate_stats_update(struct dp_peer *peer,
DP_STATS_UPD(peer, rx.rnd_avg_rx_rate, ppdu_rx_rate); DP_STATS_UPD(peer, rx.rnd_avg_rx_rate, ppdu_rx_rate);
ppdu->rx_ratekbps = ratekbps; ppdu->rx_ratekbps = ratekbps;
ppdu->rx_ratecode = ratecode; ppdu->rx_ratecode = ratecode;
if (ppdu->u.ppdu_type != HAL_RX_TYPE_SU)
ppdu_user->rx_ratekbps = ratekbps;
if (peer->vdev) if (peer->vdev)
peer->vdev->stats.rx.last_rx_rate = ratekbps; peer->vdev->stats.rx.last_rx_rate = ratekbps;

View File

@@ -67,6 +67,7 @@ typedef __in6_addr_t in6_addr_t;
#define QDF_IEEE80211_FC0_SUBTYPE_QOS 0x80 #define QDF_IEEE80211_FC0_SUBTYPE_QOS 0x80
#define QDF_IEEE80211_FC1_TODS 0x01 #define QDF_IEEE80211_FC1_TODS 0x01
#define QDF_IEEE80211_FC1_FROMDS 0x02 #define QDF_IEEE80211_FC1_FROMDS 0x02
#define QDF_IEEE80211_FC1_PM 0x10
#define QDF_IEEE80211_FC0_TYPE_MASK 0x0c #define QDF_IEEE80211_FC0_TYPE_MASK 0x0c
#define QDF_IEEE80211_FC0_SUBTYPE_MASK 0xf0 #define QDF_IEEE80211_FC0_SUBTYPE_MASK 0xf0