mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-20 19:49:45 -04:00
qcacmn: Add multicast and unicast packets stats for BSS peer
Add support to display multicast packets stats. Also avoid sending message to target-if layer for every MSDU to update node statistics Change-Id: I7bb73d97bd8a02a601d191040a9a5730a9584d3d
This commit is contained in:
parent
d7e10baaa9
commit
fc2ff39199
5 changed files with 37 additions and 22 deletions
|
|
@ -86,8 +86,10 @@ static void dp_tx_stats_update(struct dp_soc *soc, struct dp_peer *peer,
|
|||
DP_STATS_INCC(peer, tx.ldpc, num_msdu, ppdu->ldpc);
|
||||
DP_STATS_INC_PKT(peer, tx.tx_success, ppdu->success_msdus,
|
||||
ppdu->success_bytes);
|
||||
|
||||
if (ppdu->is_mcast) {
|
||||
DP_STATS_INC_PKT(peer, tx.mcast, num_msdu, (ppdu->success_bytes
|
||||
DP_STATS_INC_PKT(peer, tx.mcast, ppdu->mpdu_tried_mcast,
|
||||
(ppdu->success_bytes
|
||||
+ ppdu->retry_bytes +
|
||||
ppdu->failed_bytes));
|
||||
} else {
|
||||
|
|
@ -133,6 +135,8 @@ static void dp_tx_stats_update(struct dp_soc *soc, struct dp_peer *peer,
|
|||
soc->cdp_soc.ol_ops->update_dp_stats(pdev->osif_pdev,
|
||||
&peer->stats, ppdu->peer_id,
|
||||
UPDATE_PEER_STATS);
|
||||
|
||||
dp_aggregate_vdev_stats(peer->vdev);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -2132,6 +2136,7 @@ static void dp_process_ppdu_stats_tx_mgmtctrl_payload_tlv(
|
|||
|
||||
uint32_t payload_size = length - HTT_MGMT_CTRL_TLV_RESERVERD_LEN;
|
||||
|
||||
|
||||
nbuf = qdf_nbuf_alloc(pdev->soc->osdev, payload_size, 0, 4, true);
|
||||
|
||||
if (!nbuf) {
|
||||
|
|
|
|||
|
|
@ -4549,6 +4549,14 @@ static inline void dp_print_peer_stats(struct dp_peer *peer)
|
|||
peer->stats.tx.tx_success.num);
|
||||
DP_PRINT_STATS("Success Bytes = %d",
|
||||
peer->stats.tx.tx_success.bytes);
|
||||
DP_PRINT_STATS("Unicast Success Packets = %d",
|
||||
peer->stats.tx.ucast.num);
|
||||
DP_PRINT_STATS("Unicast Success Bytes = %d",
|
||||
peer->stats.tx.ucast.bytes);
|
||||
DP_PRINT_STATS("Multicast Success Packets = %d",
|
||||
peer->stats.tx.mcast.num);
|
||||
DP_PRINT_STATS("Multicast Success Bytes = %d",
|
||||
peer->stats.tx.mcast.bytes);
|
||||
DP_PRINT_STATS("Packets Failed = %d",
|
||||
peer->stats.tx.tx_failed);
|
||||
DP_PRINT_STATS("Packets In OFDMA = %d",
|
||||
|
|
@ -4621,9 +4629,10 @@ static inline void dp_print_peer_stats(struct dp_peer *peer)
|
|||
DP_PRINT_STATS("Bytes Sent To Stack = %d",
|
||||
peer->stats.rx.to_stack.bytes);
|
||||
for (i = 0; i < CDP_MAX_RX_RINGS; i++) {
|
||||
DP_PRINT_STATS("Packets Received = %d",
|
||||
DP_PRINT_STATS("Ring Id = %d", i);
|
||||
DP_PRINT_STATS(" Packets Received = %d",
|
||||
peer->stats.rx.rcvd_reo[i].num);
|
||||
DP_PRINT_STATS("Bytes Received = %d",
|
||||
DP_PRINT_STATS(" Bytes Received = %d",
|
||||
peer->stats.rx.rcvd_reo[i].bytes);
|
||||
}
|
||||
DP_PRINT_STATS("Multicast Packets Received = %d",
|
||||
|
|
|
|||
|
|
@ -1336,21 +1336,23 @@ done:
|
|||
pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr);
|
||||
DP_STATS_INC(vdev->pdev,
|
||||
rx.reception_type[reception_type], 1);
|
||||
|
||||
DP_STATS_INCC(vdev->pdev, rx.nss[nss], 1,
|
||||
((reception_type == REPT_MU_MIMO) ||
|
||||
(reception_type == REPT_MU_OFDMA_MIMO))
|
||||
);
|
||||
|
||||
DP_STATS_INCC(peer, rx.err.mic_err, 1,
|
||||
hal_rx_mpdu_end_mic_err_get(
|
||||
rx_tlv_hdr));
|
||||
|
||||
DP_STATS_INCC(peer, rx.err.decrypt_err, 1,
|
||||
hal_rx_mpdu_end_decrypt_err_get(
|
||||
rx_tlv_hdr));
|
||||
|
||||
DP_STATS_INC(peer, rx.wme_ac_type[TID_TO_WME_AC(tid)],
|
||||
1);
|
||||
DP_STATS_INC(peer, rx.reception_type[reception_type],
|
||||
1);
|
||||
|
||||
if (soc->process_rx_status) {
|
||||
ampdu_flag = (mpdu_desc_info.mpdu_flags &
|
||||
HAL_MPDU_F_AMPDU_FLAG);
|
||||
|
|
@ -1400,6 +1402,9 @@ done:
|
|||
mcs_count[mcs], 1,
|
||||
((mcs < (MAX_MCS - 1)) &&
|
||||
(pkt_type == DOT11_AX)));
|
||||
|
||||
DP_STATS_INC(peer, rx.wme_ac_type[TID_TO_WME_AC(tid)],
|
||||
1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1489,7 +1494,7 @@ done:
|
|||
DP_STATS_INC_PKT(peer, rx.to_stack, 1,
|
||||
pkt_len);
|
||||
|
||||
if ((pdev->enhanced_stats_en) && likely(peer) &&
|
||||
if ((soc->process_rx_status) && likely(peer) &&
|
||||
hal_rx_attn_first_mpdu_get(rx_tlv_hdr)) {
|
||||
if (soc->cdp_soc.ol_ops->update_dp_stats) {
|
||||
soc->cdp_soc.ol_ops->update_dp_stats(
|
||||
|
|
@ -1497,14 +1502,6 @@ done:
|
|||
&peer->stats,
|
||||
peer_id,
|
||||
UPDATE_PEER_STATS);
|
||||
|
||||
dp_aggregate_vdev_stats(peer->vdev);
|
||||
|
||||
soc->cdp_soc.ol_ops->update_dp_stats(
|
||||
vdev->pdev->osif_pdev,
|
||||
&peer->vdev->stats,
|
||||
peer->vdev->vdev_id,
|
||||
UPDATE_VDEV_STATS);
|
||||
}
|
||||
}
|
||||
nbuf = next;
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ static void dp_rx_stats_update(struct dp_soc *soc, struct dp_peer *peer,
|
|||
|
||||
if (soc->process_rx_status)
|
||||
return;
|
||||
|
||||
DP_STATS_UPD(peer, rx.rssi, ppdu->rssi);
|
||||
DP_STATS_INC(peer, rx.sgi_count[ppdu->u.gi], num_msdu);
|
||||
DP_STATS_INC(peer, rx.bw[ppdu->u.bw], num_msdu);
|
||||
|
|
@ -164,18 +165,20 @@ static void dp_rx_stats_update(struct dp_soc *soc, struct dp_peer *peer,
|
|||
soc->cdp_soc.ol_ops->update_dp_stats(pdev->osif_pdev,
|
||||
&peer->stats, ppdu->peer_id,
|
||||
UPDATE_PEER_STATS);
|
||||
|
||||
dp_aggregate_vdev_stats(peer->vdev);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_rx_handle_am_copy_mode() - Allocate and deliver first MSDU payload
|
||||
* @soc: core txrx main context
|
||||
* @pdev: pdev strcuture
|
||||
* @ppdu_info: structure for rx ppdu ring
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS - If nbuf to be freed by caller
|
||||
* QDF_STATUS_E_ALREADY - If nbuf not to be freed by caller
|
||||
* dp_rx_handle_am_copy_mode() - Allocate and deliver first MSDU payload
|
||||
* @soc: core txrx main context
|
||||
* @pdev: pdev strcuture
|
||||
* @ppdu_info: structure for rx ppdu ring
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS - If nbuf to be freed by caller
|
||||
* QDF_STATUS_E_ALREADY - If nbuf not to be freed by caller
|
||||
*/
|
||||
#ifdef FEATURE_PERPKT_INFO
|
||||
static inline QDF_STATUS
|
||||
|
|
|
|||
|
|
@ -2254,7 +2254,6 @@ static void dp_tx_update_peer_stats(struct dp_peer *peer,
|
|||
if (!ts->release_src == HAL_TX_COMP_RELEASE_SOURCE_TQM)
|
||||
return;
|
||||
|
||||
|
||||
DP_STATS_INCC(peer, tx.dropped.age_out, 1,
|
||||
(ts->status == HAL_TX_TQM_RR_REM_CMD_AGED));
|
||||
|
||||
|
|
@ -2269,7 +2268,9 @@ static void dp_tx_update_peer_stats(struct dp_peer *peer,
|
|||
|
||||
if (!ts->status == HAL_TX_TQM_RR_FRAME_ACKED)
|
||||
return;
|
||||
|
||||
DP_STATS_INCC(peer, tx.ofdma, 1, ts->ofdma);
|
||||
|
||||
DP_STATS_INCC(peer, tx.amsdu_cnt, 1, ts->msdu_part_of_amsdu);
|
||||
|
||||
if (!(soc->process_tx_status))
|
||||
|
|
|
|||
Loading…
Reference in a new issue