瀏覽代碼

qcacld-3.0: Add diag event for TDLS enable link

qcacld-2.0 to qcacld-3.0 propagation.

Add diag event for EVENT_WLAN_TDLS_ENABLE_LINK.
This event contains below info:
- peer mac address
- Does peer supports off channel
- Is off channel configured
- Is off channel established

Change-Id: Ib491d8ac1d8a7850a050bf14a60b6eb08ab94078
CRs-Fixed: 934449
Abhishek Singh 9 年之前
父節點
當前提交
74bcb0ab41

+ 10 - 0
core/hdd/inc/wlan_hdd_tdls.h

@@ -652,10 +652,20 @@ static inline void hdd_tdls_pre_init(hdd_context_t *hdd_ctx) { }
 #ifdef FEATURE_WLAN_DIAG_SUPPORT
 void hdd_send_wlan_tdls_teardown_event(uint32_t reason,
 					uint8_t *peer_mac);
+void hdd_wlan_tdls_enable_link_event(const uint8_t *peer_mac,
+	uint8_t is_off_chan_supported,
+	uint8_t is_off_chan_configured,
+	uint8_t is_off_chan_established);
 #else
 static inline
 void hdd_send_wlan_tdls_teardown_event(uint32_t reason,
 					uint8_t *peer_mac) {}
+static inline
+void hdd_wlan_tdls_enable_link_event(const uint8_t *peer_mac,
+	uint8_t is_off_chan_supported,
+	uint8_t is_off_chan_configured,
+	uint8_t is_off_chan_established) {}
+
 #endif /* FEATURE_WLAN_DIAG_SUPPORT */
 
 #endif /* __HDD_TDLS_H */

+ 38 - 1
core/hdd/src/wlan_hdd_tdls.c

@@ -108,6 +108,41 @@ void hdd_send_wlan_tdls_teardown_event(uint32_t reason,
 	WLAN_HOST_DIAG_EVENT_REPORT(&tdls_tear_down,
 		EVENT_WLAN_TDLS_TEARDOWN);
 }
+
+/**
+ * hdd_wlan_tdls_enable_link_event()- send TDLS enable link event
+ * @peer_mac: peer mac
+ * @is_off_chan_supported: Does peer supports off chan
+ * @is_off_chan_configured: If off channel is configured
+ * @is_off_chan_established: If off chan is established
+ *
+ * This Function send TDLS enable link diag event
+ *
+ * Return: void.
+ */
+
+void hdd_wlan_tdls_enable_link_event(const uint8_t *peer_mac,
+				uint8_t is_off_chan_supported,
+				uint8_t is_off_chan_configured,
+				uint8_t is_off_chan_established)
+{
+	WLAN_HOST_DIAG_EVENT_DEF(tdls_event,
+		struct host_event_tdls_enable_link);
+
+	qdf_mem_copy(tdls_event.peer_mac,
+			peer_mac, MAC_ADDR_LEN);
+
+	tdls_event.is_off_chan_supported =
+			is_off_chan_supported;
+	tdls_event.is_off_chan_configured =
+			is_off_chan_configured;
+	tdls_event.is_off_chan_established =
+			is_off_chan_established;
+
+	WLAN_HOST_DIAG_EVENT_REPORT(&tdls_event,
+		EVENT_WLAN_TDLS_ENABLE_LINK);
+}
+
 #endif
 
 /**
@@ -4458,7 +4493,9 @@ static int __wlan_hdd_cfg80211_tdls_oper(struct wiphy *wiphy,
 				}
 			}
 		}
-
+		hdd_wlan_tdls_enable_link_event(peer,
+			pTdlsPeer->isOffChannelSupported,
+			0, 0);
 	}
 	break;
 	case NL80211_TDLS_DISABLE_LINK:

+ 16 - 0
core/utils/host_diag_log/inc/host_diag_core_event.h

@@ -311,6 +311,22 @@ struct host_event_tdls_teardown {
 	uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
 };
 
+/**
+ * struct host_event_tdls_enable_link - tdls enable link event
+ * @peer_mac: peer mac
+ * @is_off_chan_supported: if off channel supported
+ * @is_off_chan_configured: if off channel configured
+ * @is_off_chan_established: if off channel established
+ *
+ * This structure contain tdls enable link diag event info
+ */
+struct host_event_tdls_enable_link {
+	uint8_t   peer_mac[QDF_MAC_ADDR_SIZE];
+	uint8_t   is_off_chan_supported;
+	uint8_t   is_off_chan_configured;
+	uint8_t   is_off_chan_established;
+};
+
 /*-------------------------------------------------------------------------
    Function declarations and documenation
    ------------------------------------------------------------------------*/

+ 1 - 0
core/utils/host_diag_log/inc/host_diag_event_defs.h

@@ -55,6 +55,7 @@ typedef enum {
 	EVENT_WLAN_BEACON_RECEIVED = 0xAA6, /* FW event: 2726 */
 	EVENT_WLAN_LOG_COMPLETE = 0xAA7, /* 16 bytes payload */
 	EVENT_WLAN_TDLS_TEARDOWN = 0xAB5,
+	EVENT_WLAN_TDLS_ENABLE_LINK = 0XAB6,
 
 	EVENT_MAX_ID = 0x0FFF
 } event_id_enum_type;