qcacmn: Update deterministic stats for rx
update mode count and avg rate for SU CRs-Fixed: 3380939 Change-Id: Id593cc98fd58cdf55269966650cad9f53889c4ec
This commit is contained in:

committed by
Madan Koyyalamudi

parent
a3a4b8e44b
commit
e657b7999f
@@ -2937,6 +2937,16 @@ struct cdp_peer_tx_ul_deter {
|
|||||||
uint32_t trigger_success;
|
uint32_t trigger_success;
|
||||||
uint32_t trigger_fail;
|
uint32_t trigger_fail;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cdp_peer_rx_deter- Structure to hold peer rx deterministic stats
|
||||||
|
* @avg_rate: Average RX rate
|
||||||
|
* @mode_cnt: RX mode count
|
||||||
|
*/
|
||||||
|
struct cdp_peer_rx_deter {
|
||||||
|
uint64_t avg_rate;
|
||||||
|
uint32_t mode_cnt;
|
||||||
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* struct cdp_pdev_stats - pdev stats
|
/* struct cdp_pdev_stats - pdev stats
|
||||||
|
@@ -916,10 +916,12 @@ struct dp_mon_peer_airtime_stats {
|
|||||||
* struct dp_mon_peer_deterministic - Monitor peer deterministic stats
|
* struct dp_mon_peer_deterministic - Monitor peer deterministic stats
|
||||||
* @dl_det: Downlink deterministic stats
|
* @dl_det: Downlink deterministic stats
|
||||||
* @ul_det: Uplink deterministic stats
|
* @ul_det: Uplink deterministic stats
|
||||||
|
* @rx_det: RX deterministic stats
|
||||||
*/
|
*/
|
||||||
struct dp_mon_peer_deterministic {
|
struct dp_mon_peer_deterministic {
|
||||||
struct cdp_peer_tx_dl_deter dl_det[MSDUQ_INDEX_MAX][TX_MODE_DL_MAX];
|
struct cdp_peer_tx_dl_deter dl_det[MSDUQ_INDEX_MAX][TX_MODE_DL_MAX];
|
||||||
struct cdp_peer_tx_ul_deter ul_det[TX_MODE_UL_MAX];
|
struct cdp_peer_tx_ul_deter ul_det[TX_MODE_UL_MAX];
|
||||||
|
struct cdp_peer_rx_deter rx_det;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -843,6 +843,49 @@ dp_ppdu_desc_user_rx_time_update(struct dp_pdev *pdev,
|
|||||||
DP_STATS_INC(mon_peer, airtime_stats.rx_airtime_consumption[ac].consumption,
|
DP_STATS_INC(mon_peer, airtime_stats.rx_airtime_consumption[ac].consumption,
|
||||||
user->rx_time_us);
|
user->rx_time_us);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_rx_mon_update_user_deter_stats() - Update per-peer deterministic stats
|
||||||
|
* @pdev: Datapath pdev handle
|
||||||
|
* @peer: Datapath peer handle
|
||||||
|
* @ppdu: PPDU Descriptor
|
||||||
|
* @user: Per user RX stats
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
void dp_rx_mon_update_user_deter_stats(struct dp_pdev *pdev,
|
||||||
|
struct dp_peer *peer,
|
||||||
|
struct cdp_rx_indication_ppdu *ppdu,
|
||||||
|
struct cdp_rx_stats_ppdu_user *user)
|
||||||
|
{
|
||||||
|
struct dp_mon_peer *mon_peer;
|
||||||
|
uint8_t tid;
|
||||||
|
|
||||||
|
if (!pdev || !ppdu || !user || !peer)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!dp_is_subtype_data(ppdu->frame_ctrl))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (ppdu->u.ppdu_type != HAL_RX_TYPE_SU)
|
||||||
|
return;
|
||||||
|
|
||||||
|
mon_peer = peer->monitor_peer;
|
||||||
|
if (!mon_peer)
|
||||||
|
return;
|
||||||
|
|
||||||
|
tid = user->tid;
|
||||||
|
if (tid >= CDP_DATA_TID_MAX)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DP_STATS_INC(mon_peer,
|
||||||
|
deter_stats[tid].rx_det.mode_cnt,
|
||||||
|
1);
|
||||||
|
DP_STATS_UPD(mon_peer,
|
||||||
|
deter_stats[tid].rx_det.avg_rate,
|
||||||
|
mon_peer->stats.rx.avg_rx_rate);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static inline void
|
static inline void
|
||||||
dp_ppdu_desc_user_rx_time_update(struct dp_pdev *pdev,
|
dp_ppdu_desc_user_rx_time_update(struct dp_pdev *pdev,
|
||||||
@@ -850,6 +893,13 @@ dp_ppdu_desc_user_rx_time_update(struct dp_pdev *pdev,
|
|||||||
struct cdp_rx_indication_ppdu *ppdu_desc,
|
struct cdp_rx_indication_ppdu *ppdu_desc,
|
||||||
struct cdp_rx_stats_ppdu_user *user)
|
struct cdp_rx_stats_ppdu_user *user)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void dp_rx_mon_update_user_deter_stats(struct dp_pdev *pdev,
|
||||||
|
struct dp_peer *peer,
|
||||||
|
struct cdp_rx_indication_ppdu *ppdu,
|
||||||
|
struct cdp_rx_stats_ppdu_user *user)
|
||||||
|
{ }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void dp_rx_stats_update(struct dp_pdev *pdev,
|
static void dp_rx_stats_update(struct dp_pdev *pdev,
|
||||||
@@ -1063,6 +1113,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev,
|
|||||||
dp_send_stats_event(pdev, peer, ppdu_user->peer_id);
|
dp_send_stats_event(pdev, peer, ppdu_user->peer_id);
|
||||||
|
|
||||||
dp_ppdu_desc_user_rx_time_update(pdev, peer, ppdu, ppdu_user);
|
dp_ppdu_desc_user_rx_time_update(pdev, peer, ppdu, ppdu_user);
|
||||||
|
dp_rx_mon_update_user_deter_stats(pdev, peer, ppdu, ppdu_user);
|
||||||
dp_peer_unref_delete(peer, DP_MOD_ID_RX_PPDU_STATS);
|
dp_peer_unref_delete(peer, DP_MOD_ID_RX_PPDU_STATS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user