qcacmn: Add support to fetch peer stats using MLD mac address

Add support to fetch peer stats using MLD  mac address

Change-Id: I0e230a561b8f6af3dac0dcbfef4304c630f21ff9
CRs-Fixed: 3303212
This commit is contained in:
Harsh Kumar Bijlani
2022-09-29 17:38:38 +05:30
committed by Madan Koyyalamudi
父節點 4c70bb772f
當前提交 cfd13d2ad2
共有 2 個文件被更改,包括 38 次插入21 次删除

查看文件

@@ -9949,6 +9949,7 @@ dp_get_host_peer_stats(struct cdp_soc_t *soc, uint8_t *mac_addr)
{ {
struct dp_peer *peer = NULL; struct dp_peer *peer = NULL;
struct cdp_peer_stats *peer_stats = NULL; struct cdp_peer_stats *peer_stats = NULL;
struct cdp_peer_info peer_info = { 0 };
if (!mac_addr) { if (!mac_addr) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
@@ -9956,10 +9957,11 @@ dp_get_host_peer_stats(struct cdp_soc_t *soc, uint8_t *mac_addr)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
peer = dp_peer_find_hash_find((struct dp_soc *)soc, DP_PEER_INFO_PARAMS_INIT(&peer_info, DP_VDEV_ALL, mac_addr, false,
mac_addr, 0, CDP_WILD_PEER_TYPE);
DP_VDEV_ALL,
DP_MOD_ID_CDP); peer = dp_peer_hash_find_wrapper((struct dp_soc *)soc, &peer_info,
DP_MOD_ID_CDP);
if (!peer) { if (!peer) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"%s: Invalid peer\n", __func__); "%s: Invalid peer\n", __func__);
@@ -11236,10 +11238,14 @@ static QDF_STATUS
dp_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id, dp_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
uint8_t *peer_mac, struct cdp_peer_stats *peer_stats) uint8_t *peer_mac, struct cdp_peer_stats *peer_stats)
{ {
QDF_STATUS status = QDF_STATUS_SUCCESS; struct dp_peer *peer = NULL;
struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)soc, struct cdp_peer_info peer_info = { 0 };
peer_mac, 0, vdev_id,
DP_MOD_ID_CDP); DP_PEER_INFO_PARAMS_INIT(&peer_info, vdev_id, peer_mac, false,
CDP_WILD_PEER_TYPE);
peer = dp_peer_hash_find_wrapper((struct dp_soc *)soc, &peer_info,
DP_MOD_ID_CDP);
qdf_mem_zero(peer_stats, sizeof(struct cdp_peer_stats)); qdf_mem_zero(peer_stats, sizeof(struct cdp_peer_stats));
@@ -11250,7 +11256,7 @@ dp_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
dp_peer_unref_delete(peer, DP_MOD_ID_CDP); dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
return status; return QDF_STATUS_SUCCESS;
} }
/* dp_txrx_get_peer_stats_param - will return specified cdp_peer_stats /* dp_txrx_get_peer_stats_param - will return specified cdp_peer_stats
@@ -11267,9 +11273,14 @@ dp_txrx_get_peer_stats_param(struct cdp_soc_t *soc, uint8_t vdev_id,
cdp_peer_stats_param_t *buf) cdp_peer_stats_param_t *buf)
{ {
QDF_STATUS ret; QDF_STATUS ret;
struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)soc, struct dp_peer *peer = NULL;
peer_mac, 0, vdev_id, struct cdp_peer_info peer_info = { 0 };
DP_MOD_ID_CDP);
DP_PEER_INFO_PARAMS_INIT(&peer_info, vdev_id, peer_mac, false,
CDP_WILD_PEER_TYPE);
peer = dp_peer_hash_find_wrapper((struct dp_soc *)soc, &peer_info,
DP_MOD_ID_CDP);
if (!peer) { if (!peer) {
dp_peer_err("%pK: Invalid Peer for Mac " QDF_MAC_ADDR_FMT, dp_peer_err("%pK: Invalid Peer for Mac " QDF_MAC_ADDR_FMT,

查看文件

@@ -8966,21 +8966,23 @@ dp_txrx_get_peer_delay_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
struct cdp_delay_tid_stats *delay_stats) struct cdp_delay_tid_stats *delay_stats)
{ {
struct dp_soc *soc = (struct dp_soc *)soc_hdl; struct dp_soc *soc = (struct dp_soc *)soc_hdl;
struct dp_peer *peer = dp_peer_find_hash_find(soc, peer_mac, 0, vdev_id, struct dp_peer *peer = NULL;
DP_MOD_ID_CDP);
struct dp_peer_delay_stats *pext_stats; struct dp_peer_delay_stats *pext_stats;
struct cdp_delay_rx_stats *rx_delay; struct cdp_delay_rx_stats *rx_delay;
struct cdp_delay_tx_stats *tx_delay; struct cdp_delay_tx_stats *tx_delay;
uint8_t tid; uint8_t tid;
struct cdp_peer_info peer_info = { 0 };
if (!wlan_cfg_is_peer_ext_stats_enabled(soc->wlan_cfg_ctx))
return QDF_STATUS_E_FAILURE;
DP_PEER_INFO_PARAMS_INIT(&peer_info, vdev_id, peer_mac, false,
CDP_WILD_PEER_TYPE);
peer = dp_peer_hash_find_wrapper(soc, &peer_info, DP_MOD_ID_CDP);
if (!peer) if (!peer)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
if (!wlan_cfg_is_peer_ext_stats_enabled(soc->wlan_cfg_ctx)) {
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
return QDF_STATUS_E_FAILURE;
}
if (!peer->txrx_peer) { if (!peer->txrx_peer) {
dp_peer_unref_delete(peer, DP_MOD_ID_CDP); dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
@@ -9030,8 +9032,9 @@ dp_txrx_get_peer_jitter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
{ {
struct dp_soc *soc = (struct dp_soc *)soc_hdl; struct dp_soc *soc = (struct dp_soc *)soc_hdl;
struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
struct dp_peer *peer; struct dp_peer *peer = NULL;
uint8_t tid; uint8_t tid;
struct cdp_peer_info peer_info = { 0 };
if (!pdev) if (!pdev)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
@@ -9039,7 +9042,10 @@ dp_txrx_get_peer_jitter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
if (!wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) if (!wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx))
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
peer = dp_peer_find_hash_find(soc, peer_mac, 0, vdev_id, DP_MOD_ID_CDP); DP_PEER_INFO_PARAMS_INIT(&peer_info, vdev_id, peer_mac, false,
CDP_WILD_PEER_TYPE);
peer = dp_peer_hash_find_wrapper(soc, &peer_info, DP_MOD_ID_CDP);
if (!peer) if (!peer)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;