qcacmn: dp stats aggregate handling for bridge vap in mlo
dp stats aggregate handling for bridge vap in mlo Change-Id: I4bb934776a35f76b091694de024b173c744ac087 CRs-Fixed: 3557225
This commit is contained in:

committed by
Rahul Choudhary

parent
aa6e9e0e0f
commit
fe14b1901b
@@ -662,6 +662,32 @@ void dp_aggregate_all_vdev_stats(
|
||||
src_vdev_stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_mlo_vdev_stats_aggr_bridge_vap() - aggregate bridge vdev stats
|
||||
* @be_vdev: Dp Vdev handle
|
||||
* @bridge_vdev: Dp vdev handle for bridge vdev
|
||||
* @arg: buffer for target vdev stats
|
||||
*
|
||||
* return: void
|
||||
*/
|
||||
static
|
||||
void dp_mlo_vdev_stats_aggr_bridge_vap(struct dp_vdev_be *be_vdev,
|
||||
struct dp_vdev *bridge_vdev,
|
||||
void *arg)
|
||||
{
|
||||
struct cdp_vdev_stats *tgt_vdev_stats = (struct cdp_vdev_stats *)arg;
|
||||
struct dp_vdev_be *bridge_be_vdev = NULL;
|
||||
|
||||
bridge_be_vdev = dp_get_be_vdev_from_dp_vdev(bridge_vdev);
|
||||
if (!bridge_be_vdev)
|
||||
return;
|
||||
|
||||
dp_aggregate_all_vdev_stats(tgt_vdev_stats, &bridge_vdev->stats);
|
||||
dp_aggregate_all_vdev_stats(tgt_vdev_stats, &bridge_be_vdev->mlo_stats);
|
||||
dp_vdev_iterate_peer(bridge_vdev, dp_update_vdev_stats, tgt_vdev_stats,
|
||||
DP_MOD_ID_GENERIC_STATS);
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_aggregate_interface_stats_based_on_peer_type() - aggregate stats at
|
||||
* VDEV level based on peer type connected to vdev
|
||||
@@ -679,11 +705,13 @@ void dp_aggregate_interface_stats_based_on_peer_type(
|
||||
{
|
||||
struct cdp_vdev_stats *tgt_vdev_stats = NULL;
|
||||
struct dp_vdev_be *be_vdev = NULL;
|
||||
struct dp_soc_be *be_soc = NULL;
|
||||
|
||||
if (!vdev || !vdev->pdev)
|
||||
return;
|
||||
|
||||
tgt_vdev_stats = vdev_stats;
|
||||
be_soc = dp_get_be_soc_from_dp_soc(vdev->pdev->soc);
|
||||
be_vdev = dp_get_be_vdev_from_dp_vdev(vdev);
|
||||
if (!be_vdev)
|
||||
return;
|
||||
@@ -692,6 +720,13 @@ void dp_aggregate_interface_stats_based_on_peer_type(
|
||||
dp_aggregate_all_vdev_stats(tgt_vdev_stats,
|
||||
&vdev->stats);
|
||||
} else {
|
||||
if (be_vdev->mcast_primary) {
|
||||
dp_mlo_iter_ptnr_vdev(be_soc, be_vdev,
|
||||
dp_mlo_vdev_stats_aggr_bridge_vap,
|
||||
(void *)vdev_stats,
|
||||
DP_MOD_ID_GENERIC_STATS,
|
||||
DP_BRIDGE_VDEV_ITER);
|
||||
}
|
||||
dp_aggregate_vdev_ingress_stats(tgt_vdev_stats,
|
||||
&vdev->stats);
|
||||
dp_aggregate_vdev_stats_for_unmapped_peers(
|
||||
@@ -719,14 +754,23 @@ void dp_aggregate_interface_stats(struct dp_vdev *vdev,
|
||||
struct cdp_vdev_stats *vdev_stats)
|
||||
{
|
||||
struct dp_vdev_be *be_vdev = NULL;
|
||||
struct dp_soc_be *be_soc = NULL;
|
||||
|
||||
if (!vdev || !vdev->pdev)
|
||||
return;
|
||||
|
||||
be_soc = dp_get_be_soc_from_dp_soc(vdev->pdev->soc);
|
||||
be_vdev = dp_get_be_vdev_from_dp_vdev(vdev);
|
||||
if (!be_vdev)
|
||||
return;
|
||||
|
||||
if (be_vdev->mcast_primary) {
|
||||
dp_mlo_iter_ptnr_vdev(be_soc, be_vdev,
|
||||
dp_mlo_vdev_stats_aggr_bridge_vap,
|
||||
(void *)vdev_stats, DP_MOD_ID_GENERIC_STATS,
|
||||
DP_BRIDGE_VDEV_ITER);
|
||||
}
|
||||
|
||||
dp_aggregate_all_vdev_stats(vdev_stats, &be_vdev->mlo_stats);
|
||||
dp_aggregate_all_vdev_stats(vdev_stats, &vdev->stats);
|
||||
|
||||
@@ -865,7 +909,7 @@ static QDF_STATUS dp_mlo_get_mld_vdev_stats(struct cdp_soc_t *soc_hdl,
|
||||
dp_mlo_aggr_ptnr_iface_stats_mlo_links,
|
||||
buf,
|
||||
DP_MOD_ID_GENERIC_STATS,
|
||||
DP_ALL_VDEV_ITER);
|
||||
DP_LINK_VDEV_ITER);
|
||||
} else {
|
||||
dp_aggregate_interface_stats(vdev, buf);
|
||||
|
||||
@@ -876,7 +920,7 @@ static QDF_STATUS dp_mlo_get_mld_vdev_stats(struct cdp_soc_t *soc_hdl,
|
||||
dp_mlo_iter_ptnr_vdev(be_soc, vdev_be,
|
||||
dp_mlo_aggr_ptnr_iface_stats, buf,
|
||||
DP_MOD_ID_GENERIC_STATS,
|
||||
DP_ALL_VDEV_ITER);
|
||||
DP_LINK_VDEV_ITER);
|
||||
}
|
||||
|
||||
complete:
|
||||
|
Reference in New Issue
Block a user