qcacmn: Add support to get rx mcast and bcast stats
Add support to get rx multicast and broadcast stats in IPA Architecture Change-Id: Id7cf7bb09534833af7fe620cdbd4ed452d9e4613 CRs-Fixed: 3346858
This commit is contained in:
@@ -3749,4 +3749,53 @@ QDF_STATUS dp_ipa_ast_create(struct cdp_soc_t *soc_hdl,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef QCA_ENHANCED_STATS_SUPPORT
|
||||
/**
|
||||
* dp_ipa_update_peer_rx_stats - update peer rx stats
|
||||
* @soc: soc handle
|
||||
* @vdev_id: vdev id
|
||||
* @peer_mac: Peer Mac Address
|
||||
* @nbuf: data nbuf
|
||||
*
|
||||
* Return: status success/failure
|
||||
*/
|
||||
|
||||
QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc,
|
||||
uint8_t vdev_id, uint8_t *peer_mac,
|
||||
qdf_nbuf_t nbuf)
|
||||
{
|
||||
struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)soc,
|
||||
peer_mac, 0, vdev_id,
|
||||
DP_MOD_ID_IPA);
|
||||
struct dp_txrx_peer *txrx_peer;
|
||||
uint8_t da_is_bcmc;
|
||||
qdf_ether_header_t *eh;
|
||||
|
||||
if (!peer)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
txrx_peer = dp_get_txrx_peer(peer);
|
||||
|
||||
if (!txrx_peer) {
|
||||
dp_peer_unref_delete(peer, DP_MOD_ID_IPA);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
da_is_bcmc = ((uint8_t)nbuf->cb[1]) & 0x2;
|
||||
eh = (qdf_ether_header_t *)qdf_nbuf_data(nbuf);
|
||||
|
||||
if (da_is_bcmc) {
|
||||
DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, rx.multicast, 1,
|
||||
qdf_nbuf_len(nbuf));
|
||||
if (QDF_IS_ADDR_BROADCAST(eh->ether_dhost))
|
||||
DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, rx.bcast,
|
||||
1, qdf_nbuf_len(nbuf));
|
||||
}
|
||||
|
||||
dp_peer_unref_delete(peer, DP_MOD_ID_IPA);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user