qcacmn: MLO Mcast Support for ML-Reconfig

1.Add check in Tx completion path to handle
mcast packets from all ML partner vdevs
2.Handle cases where a ML mcast vdev can be
deleted and started as NON-ML vdev and
viceversa by adding reset ML mcast conf.
3.Optimized Register configurations for Mcast
at Init/Delete and Start/Stop AP

Change-Id: Iab8a5a081e2e0377509574d362754d32c5b83df2
CRs-Fixed: 3350350
This commit is contained in:
Kenvish Butani
2022-11-01 22:39:36 -07:00
committed by Madan Koyyalamudi
parent 3bae1f975c
commit 069ca18f58
7 changed files with 86 additions and 82 deletions

View File

@@ -5470,7 +5470,8 @@ dp_tx_mcast_reinject_handler(struct dp_soc *soc, struct dp_tx_desc_s *desc)
struct dp_vdev *vdev = NULL;
if (desc->tx_status == HAL_TX_TQM_RR_MULTICAST_DROP) {
if (!soc->arch_ops.dp_tx_mcast_handler)
if (!soc->arch_ops.dp_tx_mcast_handler ||
!soc->arch_ops.dp_tx_is_mcast_primary)
return false;
vdev = dp_vdev_get_ref_by_id(soc, desc->vdev_id,
@@ -5481,6 +5482,11 @@ dp_tx_mcast_reinject_handler(struct dp_soc *soc, struct dp_tx_desc_s *desc)
desc->id);
return false;
}
if (!(soc->arch_ops.dp_tx_is_mcast_primary(soc, vdev))) {
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_REINJECT);
return false;
}
DP_STATS_INC_PKT(vdev, tx_i.reinject_pkts, 1,
qdf_nbuf_len(desc->nbuf));
soc->arch_ops.dp_tx_mcast_handler(soc, vdev, desc->nbuf);