qcacmn: Add Support of MLO Link Stats for ML Peer

1) Allocation of memory to hold MLO Link Stats
   at MLD Peer level.
2) Modify the Macros to update MLO link stats.
3) Init and reset the Stats

Change-Id: Id4e9d40e212c5093159ae0c7d6316e93d19cf928
CRs-Fixed: 3397721
This commit is contained in:
Kenvish Butani
2023-01-06 18:17:19 +05:30
committed by Madan Koyyalamudi
szülő ff32a66fd5
commit 4ae60e4df1
3 fájl változott, egészen pontosan 108 új sor hozzáadva és 39 régi sor törölve

Fájl megtekintése

@@ -7871,13 +7871,27 @@ static QDF_STATUS dp_txrx_peer_detach(struct dp_soc *soc, struct dp_peer *peer)
return QDF_STATUS_SUCCESS;
}
static inline
uint8_t dp_txrx_peer_calculate_stats_size(struct dp_peer *peer)
{
if (IS_MLO_DP_MLD_PEER(peer)) {
return (DP_MAX_MLO_LINKS + 1);
}
return 1;
}
static QDF_STATUS dp_txrx_peer_attach(struct dp_soc *soc, struct dp_peer *peer)
{
struct dp_txrx_peer *txrx_peer;
struct dp_pdev *pdev;
struct cdp_txrx_peer_params_update params = {0};
uint8_t stats_arr_size = 0;
txrx_peer = (struct dp_txrx_peer *)qdf_mem_malloc(sizeof(*txrx_peer));
stats_arr_size = dp_txrx_peer_calculate_stats_size(peer);
txrx_peer = (struct dp_txrx_peer *)qdf_mem_malloc(sizeof(*txrx_peer) +
(stats_arr_size *
sizeof(struct dp_peer_stats)));
if (!txrx_peer)
return QDF_STATUS_E_NOMEM; /* failure */
@@ -7886,8 +7900,14 @@ static QDF_STATUS dp_txrx_peer_attach(struct dp_soc *soc, struct dp_peer *peer)
/* initialize the peer_id */
txrx_peer->vdev = peer->vdev;
pdev = peer->vdev->pdev;
txrx_peer->stats_arr_size = stats_arr_size;
DP_STATS_INIT(txrx_peer);
DP_TXRX_PEER_STATS_INIT(txrx_peer,
(txrx_peer->stats_arr_size *
sizeof(struct dp_peer_stats)));
if (!IS_DP_LEGACY_PEER(peer))
txrx_peer->is_mld_peer = 1;
dp_wds_ext_peer_init(txrx_peer);
dp_peer_rx_bufq_resources_init(txrx_peer);
@@ -7943,7 +7963,9 @@ void dp_txrx_peer_stats_clr(struct dp_txrx_peer *txrx_peer)
txrx_peer->to_stack.num = 0;
txrx_peer->to_stack.bytes = 0;
DP_STATS_CLR(txrx_peer);
DP_TXRX_PEER_STATS_CLR(txrx_peer,
(txrx_peer->stats_arr_size *
sizeof(struct dp_peer_stats)));
dp_peer_delay_stats_ctx_clr(txrx_peer);
dp_peer_jitter_stats_ctx_clr(txrx_peer);
}
@@ -8308,7 +8330,7 @@ QDF_STATUS dp_peer_mlo_setup(
dp_link_peer_add_mld_peer(peer, mld_peer);
dp_mld_peer_add_link_peer(mld_peer, peer);
mld_peer->txrx_peer->mld_peer = 1;
mld_peer->txrx_peer->is_mld_peer = 1;
dp_peer_unref_delete(mld_peer, DP_MOD_ID_CDP);
} else {
peer->mld_peer = NULL;