Browse Source

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
Tallapragada Kalyan 6 years ago
parent
commit
f07025a708
1 changed files with 15 additions and 19 deletions
  1. 15 19
      dp/wifi3.0/dp_rx.h

+ 15 - 19
dp/wifi3.0/dp_rx.h

@@ -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;
 			}
 		}
 	}