qcacmn: Support for per peer UL Airtime metric in ATF stats
Support for per peer Up Link Airtime metric in ATF stats. Change-Id: Ic21239e5d1cbf337c11b35415f555c1f39e07143 CRs-Fixed: 3240833
This commit is contained in:

zatwierdzone przez
Madan Koyyalamudi

rodzic
68c2b67520
commit
c667bb9d3c
@@ -2248,6 +2248,7 @@ struct cdp_tx_completion_msdu {
|
|||||||
* @rx_ratekpbs - rx rate in kbps
|
* @rx_ratekpbs - rx rate in kbps
|
||||||
* @rix - rate index
|
* @rix - rate index
|
||||||
* @mpdu_retries - retries of mpdu in rx
|
* @mpdu_retries - retries of mpdu in rx
|
||||||
|
* @rx_time_us - Rx duration
|
||||||
*/
|
*/
|
||||||
struct cdp_rx_stats_ppdu_user {
|
struct cdp_rx_stats_ppdu_user {
|
||||||
uint16_t peer_id;
|
uint16_t peer_id;
|
||||||
@@ -2287,6 +2288,7 @@ struct cdp_rx_stats_ppdu_user {
|
|||||||
uint32_t rx_ratekbps;
|
uint32_t rx_ratekbps;
|
||||||
uint32_t rix;
|
uint32_t rix;
|
||||||
uint32_t mpdu_retries;
|
uint32_t mpdu_retries;
|
||||||
|
uint16_t rx_time_us;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -821,29 +821,29 @@ dp_ppdu_desc_user_rx_time_update(struct dp_pdev *pdev,
|
|||||||
{
|
{
|
||||||
uint32_t nss_ru_width_sum = 0;
|
uint32_t nss_ru_width_sum = 0;
|
||||||
struct dp_mon_peer *mon_peer = NULL;
|
struct dp_mon_peer *mon_peer = NULL;
|
||||||
uint16_t rx_time_us;
|
|
||||||
|
|
||||||
if (!pdev || !ppdu_desc || !user || !peer)
|
if (!pdev || !ppdu_desc || !user || !peer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mon_peer = peer->monitor_peer;
|
|
||||||
if (qdf_unlikely(!mon_peer))
|
|
||||||
return;
|
|
||||||
|
|
||||||
nss_ru_width_sum = ppdu_desc->usr_nss_sum * ppdu_desc->usr_ru_tones_sum;
|
nss_ru_width_sum = ppdu_desc->usr_nss_sum * ppdu_desc->usr_ru_tones_sum;
|
||||||
if (!nss_ru_width_sum)
|
if (!nss_ru_width_sum)
|
||||||
nss_ru_width_sum = 1;
|
nss_ru_width_sum = 1;
|
||||||
|
|
||||||
if (ppdu_desc->u.ppdu_type == HAL_RX_TYPE_MU_OFDMA ||
|
if (ppdu_desc->u.ppdu_type == HAL_RX_TYPE_MU_OFDMA ||
|
||||||
ppdu_desc->u.ppdu_type == HAL_RX_TYPE_MU_MIMO) {
|
ppdu_desc->u.ppdu_type == HAL_RX_TYPE_MU_MIMO) {
|
||||||
rx_time_us = (ppdu_desc->duration *
|
user->rx_time_us = (ppdu_desc->duration *
|
||||||
user->nss * user->ofdma_ru_width) / nss_ru_width_sum;
|
user->nss * user->ofdma_ru_width) /
|
||||||
|
nss_ru_width_sum;
|
||||||
} else {
|
} else {
|
||||||
rx_time_us = ppdu_desc->duration;
|
user->rx_time_us = ppdu_desc->duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mon_peer = peer->monitor_peer;
|
||||||
|
if (qdf_unlikely(!mon_peer))
|
||||||
|
return;
|
||||||
|
|
||||||
DP_STATS_INC(mon_peer, airtime_consumption.consumption,
|
DP_STATS_INC(mon_peer, airtime_consumption.consumption,
|
||||||
rx_time_us);
|
user->rx_time_us);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static inline void
|
static inline void
|
||||||
|
@@ -1767,7 +1767,8 @@ struct wlan_lmac_if_p2p_rx_ops {
|
|||||||
* @atf_peer_unblk_txtraffic: Unblock peer tx traffic
|
* @atf_peer_unblk_txtraffic: Unblock peer tx traffic
|
||||||
* @atf_set_token_allocated: Set atf token allocated
|
* @atf_set_token_allocated: Set atf token allocated
|
||||||
* @atf_set_token_utilized: Set atf token utilized
|
* @atf_set_token_utilized: Set atf token utilized
|
||||||
* @atf_process_ppdu_stats: Process PPDU stats to get ATF stats
|
* @atf_process_tx_ppdu_stats: Process Tx PPDU stats to get ATF stats
|
||||||
|
* @atf_process_rx_ppdu_stats: Process Rx PPDU stats to get ATF stats
|
||||||
* @atf_is_stats_enabled: Check ATF stats enabled or not
|
* @atf_is_stats_enabled: Check ATF stats enabled or not
|
||||||
*/
|
*/
|
||||||
struct wlan_lmac_if_atf_rx_ops {
|
struct wlan_lmac_if_atf_rx_ops {
|
||||||
@@ -1806,8 +1807,10 @@ struct wlan_lmac_if_atf_rx_ops {
|
|||||||
uint16_t value);
|
uint16_t value);
|
||||||
void (*atf_set_token_utilized)(struct wlan_objmgr_peer *peer,
|
void (*atf_set_token_utilized)(struct wlan_objmgr_peer *peer,
|
||||||
uint16_t value);
|
uint16_t value);
|
||||||
void (*atf_process_ppdu_stats)(struct wlan_objmgr_pdev *pdev,
|
void (*atf_process_tx_ppdu_stats)(struct wlan_objmgr_pdev *pdev,
|
||||||
qdf_nbuf_t msg);
|
qdf_nbuf_t msg);
|
||||||
|
void (*atf_process_rx_ppdu_stats)(struct wlan_objmgr_pdev *pdev,
|
||||||
|
qdf_nbuf_t msg);
|
||||||
uint8_t (*atf_is_stats_enabled)(struct wlan_objmgr_pdev *pdev);
|
uint8_t (*atf_is_stats_enabled)(struct wlan_objmgr_pdev *pdev);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@@ -212,7 +212,8 @@ wlan_lmac_if_atf_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
|
|||||||
atf_rx_ops->atf_peer_unblk_txtraffic = tgt_atf_peer_unblk_txtraffic;
|
atf_rx_ops->atf_peer_unblk_txtraffic = tgt_atf_peer_unblk_txtraffic;
|
||||||
atf_rx_ops->atf_set_token_allocated = tgt_atf_set_token_allocated;
|
atf_rx_ops->atf_set_token_allocated = tgt_atf_set_token_allocated;
|
||||||
atf_rx_ops->atf_set_token_utilized = tgt_atf_set_token_utilized;
|
atf_rx_ops->atf_set_token_utilized = tgt_atf_set_token_utilized;
|
||||||
atf_rx_ops->atf_process_ppdu_stats = tgt_atf_process_ppdu_stats;
|
atf_rx_ops->atf_process_tx_ppdu_stats = tgt_atf_process_tx_ppdu_stats;
|
||||||
|
atf_rx_ops->atf_process_rx_ppdu_stats = tgt_atf_process_rx_ppdu_stats;
|
||||||
atf_rx_ops->atf_is_stats_enabled = tgt_atf_is_stats_enabled;
|
atf_rx_ops->atf_is_stats_enabled = tgt_atf_is_stats_enabled;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user