Преглед на файлове

qcacld-2.0: Fix intra-BSS forwarding

qcacld-2.0 to qcacld-3.0 propagation

When INTRA_BSS_FWD_OFFLOAD is enabled, FW will send all Rx packets to
IPA uC, which needs to be forwarded to other interfaces. IPA driver will
send back non-IP, broadcast and multicast packets to WLAN host driver
in exception pipe with fw_desc field set by FW as:
   - FW_RX_DESC_FORWARD_M bit: Forward the packet to TX
   - FW_RX_DESC_DISCARD_M bit: Do not send the packet to network stack,
     which will be set of for intrabss unicast.

Change-Id: Ie2826c8c7b578e3684133a2554ed086e721f67ae
CRs-Fixed: 895662
Mahesh Kumar Kalikot Veetil преди 9 години
родител
ревизия
221dc67394
променени са 1 файла, в които са добавени 8 реда и са изтрити 6 реда
  1. 8 6
      core/hdd/src/wlan_hdd_ipa.c

+ 8 - 6
core/hdd/src/wlan_hdd_ipa.c

@@ -2444,12 +2444,6 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt,
 			 */
 			fw_desc = (uint8_t)skb->cb[1];
 
-			if (fw_desc & FW_RX_DESC_DISCARD_M) {
-				HDD_IPA_INCREASE_INTERNAL_DROP_COUNT(hdd_ipa);
-				hdd_ipa->ipa_rx_discard++;
-				cdf_nbuf_free(skb);
-				break;
-			}
 
 			if (fw_desc & FW_RX_DESC_FORWARD_M) {
 				HDD_IPA_LOG(
@@ -2473,6 +2467,14 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt,
 					}
 				}
 			}
+
+			if (fw_desc & FW_RX_DESC_DISCARD_M) {
+				HDD_IPA_INCREASE_INTERNAL_DROP_COUNT(hdd_ipa);
+				hdd_ipa->ipa_rx_discard++;
+				cdf_nbuf_free(skb);
+				break;
+			}
+
 		} else {
 			HDD_IPA_LOG(CDF_TRACE_LEVEL_INFO_HIGH,
 				"Intra-BSS FWD is disabled-skip forward to Tx");