wlan: Add diag event for TDLS enable link
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
diff --git a/CORE/HDD/inc/wlan_hdd_tdls.h b/CORE/HDD/inc/wlan_hdd_tdls.h
index 532b5ec..c2c5e05 100644
--- a/CORE/HDD/inc/wlan_hdd_tdls.h
+++ b/CORE/HDD/inc/wlan_hdd_tdls.h
@@ -418,6 +418,10 @@
#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,
@@ -425,6 +429,14 @@
{
return;
}
+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)
+{
+ return;
+}
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
int wlan_hdd_tdls_set_force_peer(hdd_adapter_t *pAdapter,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 99c7774..a5adaea 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -18178,6 +18178,10 @@
/* stop TCP delack timer if TDLS is enable */
set_bit(WLAN_TDLS_MODE, &pHddCtx->mode);
hdd_manage_delack_timer(pHddCtx);
+ hdd_wlan_tdls_enable_link_event(peer,
+ pTdlsPeer->isOffChannelSupported,
+ pTdlsPeer->isOffChannelConfigured,
+ pTdlsPeer->isOffChannelEstablished);
}
break;
case NL80211_TDLS_DISABLE_LINK:
diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c
index a6c3469..6e07a9c 100644
--- a/CORE/HDD/src/wlan_hdd_tdls.c
+++ b/CORE/HDD/src/wlan_hdd_tdls.c
@@ -92,8 +92,46 @@
WLAN_VOS_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_VOS_DIAG_EVENT_DEF(tdls_event,
+ struct vos_event_tdls_enable_link);
+ vos_mem_zero(&tdls_event,
+ sizeof(tdls_event));
+
+ vos_mem_copy(tdls_event.peer_mac,
+ peer_mac, HDD_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_VOS_DIAG_EVENT_REPORT(&tdls_event,
+ EVENT_WLAN_TDLS_ENABLE_LINK);
+}
#endif
+
/**
* wlan_hdd_tdls_disable_offchan_and_teardown_links - Disable offchannel
* and teardown TDLS links