qcacmn: Provide support for avg. phyrate stats
Provide support for average tx and rx phyrate statistics Change-Id: Ib1c2d2c90ca6a8a0f1ac1bc08d9e1f89537cbb4d
This commit is contained in:
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user