qcacmn: vdev stats Support for MLO Hybrid Mode

Add vdev stats support for DP MLO Unified
and Hybrid Mode.
Add new CDP API for getting vdev stats for
NON_MLD interface.
Add support to get vdev stats for specific
vdev which is a part of MLO.

Change-Id: I72c8b25958649d473e1b65cee21810cd86951187
CRs-Fixed: 3455607
This commit is contained in:
Kenvish Butani
2023-04-05 18:58:01 +05:30
committed by Madan Koyyalamudi
parent fa5b39c322
commit ef68ac521f
12 changed files with 398 additions and 28 deletions

View File

@@ -5737,7 +5737,6 @@ bool dp_check_pdev_exists(struct dp_soc *soc, struct dp_pdev *data)
void dp_aggregate_vdev_stats(struct dp_vdev *vdev,
struct cdp_vdev_stats *vdev_stats)
{
if (!vdev || !vdev->pdev)
return;
@@ -5752,8 +5751,8 @@ void dp_aggregate_vdev_stats(struct dp_vdev *vdev,
#if defined(FEATURE_PERPKT_INFO) && WDI_EVENT_ENABLE
dp_wdi_event_handler(WDI_EVENT_UPDATE_DP_STATS, vdev->pdev->soc,
vdev_stats, vdev->vdev_id,
UPDATE_VDEV_STATS, vdev->pdev->pdev_id);
vdev_stats, vdev->vdev_id,
UPDATE_VDEV_STATS, vdev->pdev->pdev_id);
#endif
}
@@ -8190,10 +8189,11 @@ dp_txrx_reset_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
* @buf: buffer for vdev stats
* @is_aggregate: are aggregate stats being collected
*
* Return: int
* Return: QDF_STATUS
*/
static int dp_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
void *buf, bool is_aggregate)
static QDF_STATUS
dp_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
void *buf, bool is_aggregate)
{
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
struct cdp_vdev_stats *vdev_stats;
@@ -8201,7 +8201,7 @@ static int dp_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
DP_MOD_ID_CDP);
if (!vdev)
return 1;
return QDF_STATUS_E_RESOURCES;
vdev_stats = (struct cdp_vdev_stats *)buf;
@@ -8212,7 +8212,7 @@ static int dp_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
}
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CDP);
return 0;
return QDF_STATUS_SUCCESS;
}
/**
@@ -10908,6 +10908,11 @@ static struct cdp_host_stats_ops dp_ops_host_stats = {
dp_get_peer_extd_rate_link_stats,
.get_pdev_obss_stats = dp_get_obss_stats,
.clear_pdev_obss_pd_stats = dp_clear_pdev_obss_pd_stats,
#ifdef CONFIG_MLO_SINGLE_DEV
.txrx_get_interface_stats = dp_txrx_get_interface_stats,
#else
.txrx_get_interface_stats = dp_txrx_get_vdev_stats,
#endif
/* TODO */
};