TDLS Changes for implicit trigger.

668299: Implicit triggering of TDLS (IEEE802.11z)

CRs-Fixed: 437836

Change-Id: I47c44b2650d19ad78600e2fa1c32233cac9ef3d9
diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c
index 350937f..65787cd 100644
--- a/CORE/HDD/src/wlan_hdd_tx_rx.c
+++ b/CORE/HDD/src/wlan_hdd_tx_rx.c
@@ -69,6 +69,10 @@
 #include "sapApi.h"
 #endif
 
+#ifdef FEATURE_WLAN_TDLS
+#include "wlan_hdd_tdls.h"
+#endif
+
 /*--------------------------------------------------------------------------- 
   Preprocessor definitions and constants
   -------------------------------------------------------------------------*/ 
@@ -1059,6 +1063,31 @@
       return VOS_STATUS_E_FAILURE;
    }
 
+#ifdef FEATURE_WLAN_TDLS
+    {
+        hdd_station_ctx_t *pHddStaCtx = &pAdapter->sessionCtx.station;
+        u8 key;
+        u8 mac[6];
+
+        key = wlan_hdd_tdls_extract_da(skb, mac);
+
+        if (vos_is_macaddr_broadcast((v_MACADDR_t *)mac)) {
+            VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_MED,
+                      "broadcast packet, not adding to peer list");
+        } else if (memcmp(pHddStaCtx->conn_info.bssId,
+                            mac, 6) != 0) {
+            VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_MED,
+                      "extract mac:%x %x %x %x %x %x",
+                      mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] );
+
+            wlan_hdd_tdls_add_peer_to_list(key, mac);
+        } else {
+            VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_MED,
+                       "packet da is bssid, not adding to peer list");
+        }
+    }
+#endif
+
    //Return VOS packet to TL;
    *ppVosPacket = pVosPacket;