qcacmn: Do not drop multicast pkts in DBDC QWRAP mode
We are not suppose to drop multicast loop backedpkts received on a different radio. instead they should be sent to dp link aggregator for setting certain flags. Change-Id: Idae19c1b6a2caf2a1b2b58fac531c43e9c24db51 CRs-Fixed: 2351300
This commit is contained in:

committed by
nshrivas

parent
bfb0112412
commit
f07025a708
@@ -874,27 +874,23 @@ static inline bool check_qwrap_multicast_loopback(struct dp_vdev *vdev,
|
||||
{
|
||||
struct dp_vdev *psta_vdev;
|
||||
struct dp_pdev *pdev = vdev->pdev;
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
uint8_t *data = qdf_nbuf_data(nbuf);
|
||||
uint8_t i;
|
||||
|
||||
for (i = 0; i < MAX_PDEV_CNT && soc->pdev_list[i]; i++) {
|
||||
pdev = soc->pdev_list[i];
|
||||
if (qdf_unlikely(vdev->proxysta_vdev)) {
|
||||
/* In qwrap isolation mode, allow loopback packets as all
|
||||
* packets go to RootAP and Loopback on the mpsta.
|
||||
*/
|
||||
if (vdev->isolation_vdev)
|
||||
return false;
|
||||
TAILQ_FOREACH(psta_vdev, &pdev->vdev_list, vdev_list_elem) {
|
||||
if (qdf_unlikely(psta_vdev->proxysta_vdev &&
|
||||
!qdf_mem_cmp(psta_vdev->mac_addr.raw,
|
||||
&data[DP_MAC_ADDR_LEN], DP_MAC_ADDR_LEN))) {
|
||||
/* Drop packet if source address is equal to
|
||||
* any of the vdev addresses.
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
if (qdf_unlikely(vdev->proxysta_vdev)) {
|
||||
/* In qwrap isolation mode, allow loopback packets as all
|
||||
* packets go to RootAP and Loopback on the mpsta.
|
||||
*/
|
||||
if (vdev->isolation_vdev)
|
||||
return false;
|
||||
TAILQ_FOREACH(psta_vdev, &pdev->vdev_list, vdev_list_elem) {
|
||||
if (qdf_unlikely(psta_vdev->proxysta_vdev &&
|
||||
!qdf_mem_cmp(psta_vdev->mac_addr.raw,
|
||||
&data[DP_MAC_ADDR_LEN],
|
||||
DP_MAC_ADDR_LEN))) {
|
||||
/* Drop packet if source address is equal to
|
||||
* any of the vdev addresses.
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user