Browse Source

qcacmn: Fix for ping failure due to intrabss fwd logic

Intrabss forwarding logic turns around bcast (ARP) pkts on the
SAP with peer source addr. So a AST lookup on AddrY results will
route the pkt to HW and not FW which is not the design. Fix is to
enable lookup only on AddrX in SAP mode.

Change-Id: Iea41c53fd818acfb8dbfd9ad1582e43ba1c4bc83
CRs-Fixed: 2029656
Pramod Simha 8 years ago
parent
commit
bc0a546d58
1 changed files with 8 additions and 3 deletions
  1. 8 3
      dp/wifi3.0/dp_tx.c

+ 8 - 3
dp/wifi3.0/dp_tx.c

@@ -687,10 +687,15 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
 
 
 	/*
 	/*
 	 * TODO
 	 * TODO
-	 * Fix this , this should be based on vdev opmode (AP or STA)
-	 * Enable both AddrX and AddrY flags for now
+	 * For AP mode, enable AddrX flag only
+	 * For all other modes, enable both AddrX and AddrY
+	 * flags for now
 	 */
 	 */
-	hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
+	if (vdev->opmode == wlan_op_mode_ap)
+		hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
+			HAL_TX_DESC_ADDRX_EN);
+	else
+		hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
 			HAL_TX_DESC_ADDRX_EN | HAL_TX_DESC_ADDRY_EN);
 			HAL_TX_DESC_ADDRX_EN | HAL_TX_DESC_ADDRY_EN);
 
 
 	if ((qdf_nbuf_get_tx_cksum(tx_desc->nbuf) == QDF_NBUF_TX_CKSUM_TCP_UDP)
 	if ((qdf_nbuf_get_tx_cksum(tx_desc->nbuf) == QDF_NBUF_TX_CKSUM_TCP_UDP)