summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKabilan Kannan <kabilank@codeaurora.org>2016-10-04 12:24:50 -0700
committerqcabuildsw <qcabuildsw@localhost>2016-10-07 19:57:23 -0700
commit32eb50281c2d80bbeb50df5267392614d8e23bf5 (patch)
tree00a2cb1c2914604405ebc6c97109a601b6cd6ca8
parentf1ba31e987229aaf9021bc40936979cf58ee1221 (diff)
qcacld-3.0: Clean up and refactor tdls module
Currently the build fails, if we disable TDLS feature flag in the kbuild. Fix all the tdls conditional compilation issues to make a successfull build with tdls feature flag enabled/disabled. Change-Id: I78114474d9ebe65e76840cb581389535f3486e4f CRs-Fixed: 1066077
-rw-r--r--core/cds/inc/cds_concurrency.h14
-rw-r--r--core/cds/src/cds_concurrency.c2
-rw-r--r--core/hdd/inc/wlan_hdd_assoc.h2
-rw-r--r--core/hdd/inc/wlan_hdd_main.h2
-rw-r--r--core/hdd/inc/wlan_hdd_tdls.h42
-rw-r--r--core/hdd/src/wlan_hdd_assoc.c51
-rw-r--r--core/hdd/src/wlan_hdd_ioctl.c3
-rw-r--r--core/hdd/src/wlan_hdd_tdls.c98
-rw-r--r--core/hdd/src/wlan_hdd_tx_rx.c14
-rw-r--r--core/mac/src/pe/include/lim_api.h17
-rw-r--r--core/mac/src/pe/include/lim_session.h4
-rw-r--r--core/mac/src/pe/lim/lim_api.c5
-rw-r--r--core/mac/src/pe/lim/lim_process_tdls.c9
-rw-r--r--core/mac/src/pe/lim/lim_types.h5
-rw-r--r--core/sme/inc/csr_api.h21
-rw-r--r--core/sme/src/csr/csr_api_roam.c13
16 files changed, 222 insertions, 80 deletions
diff --git a/core/cds/inc/cds_concurrency.h b/core/cds/inc/cds_concurrency.h
index efe9f70622e0..429d64e0d35b 100644
--- a/core/cds/inc/cds_concurrency.h
+++ b/core/cds/inc/cds_concurrency.h
@@ -592,8 +592,22 @@ struct cds_conc_connection_info {
bool cds_is_connection_in_progress(void);
void cds_dump_concurrency_info(void);
+
+#ifdef FEATURE_WLAN_TDLS
bool cds_check_is_tdls_allowed(enum tQDF_ADAPTER_MODE device_mode);
void cds_set_tdls_ct_mode(hdd_context_t *hdd_ctx);
+#else
+static inline bool cds_check_is_tdls_allowed(enum tQDF_ADAPTER_MODE device_mode)
+{
+ return false;
+}
+
+static inline void cds_set_tdls_ct_mode(hdd_context_t *hdd_ctx)
+{
+
+}
+#endif
+
void cds_set_concurrency_mode(enum tQDF_ADAPTER_MODE mode);
void cds_clear_concurrency_mode(enum tQDF_ADAPTER_MODE mode);
uint32_t cds_get_connection_count(void);
diff --git a/core/cds/src/cds_concurrency.c b/core/cds/src/cds_concurrency.c
index 25155c2c18d5..7504b2315d25 100644
--- a/core/cds/src/cds_concurrency.c
+++ b/core/cds/src/cds_concurrency.c
@@ -3340,6 +3340,7 @@ void cds_dump_concurrency_info(void)
hdd_ctx->mcc_mode = !cds_current_concurrency_is_scc();
}
+#ifdef FEATURE_WLAN_TDLS
/*
* cds_check_is_tdls_allowed() - check is tdls allowed or not
* @adapter: pointer to adapter
@@ -3419,6 +3420,7 @@ set_state:
cds_info("enable_tdls_connection_tracker %d",
hdd_ctx->enable_tdls_connection_tracker);
}
+#endif
/**
* cds_set_concurrency_mode() - To set concurrency mode
diff --git a/core/hdd/inc/wlan_hdd_assoc.h b/core/hdd/inc/wlan_hdd_assoc.h
index f49cb125ed54..bf87fcf37fb1 100644
--- a/core/hdd/inc/wlan_hdd_assoc.h
+++ b/core/hdd/inc/wlan_hdd_assoc.h
@@ -272,6 +272,7 @@ int hdd_set_genie_to_csr(hdd_adapter_t *pAdapter, eCsrAuthType *RSNAuthType);
*/
int hdd_set_csr_auth_type(hdd_adapter_t *pAdapter, eCsrAuthType RSNAuthType);
+#ifdef FEATURE_WLAN_TDLS
/**
* hdd_roam_register_tdlssta() - register new TDLS station
* @pAdapter: pointer to adapter
@@ -287,6 +288,7 @@ int hdd_set_csr_auth_type(hdd_adapter_t *pAdapter, eCsrAuthType RSNAuthType);
QDF_STATUS hdd_roam_register_tdlssta(hdd_adapter_t *pAdapter,
const uint8_t *peerMac, uint16_t staId,
uint8_t ucastSig, uint8_t qos);
+#endif
/**
* hdd_perform_roam_set_key_complete() - perform set key complete
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index 6f263d2b1b64..7d9926e58aac 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -54,9 +54,7 @@
#include <linux/wakelock.h>
#endif
#include <wlan_hdd_ftm.h>
-#ifdef FEATURE_WLAN_TDLS
#include "wlan_hdd_tdls.h"
-#endif
#include "wlan_hdd_tsf.h"
#include "wlan_hdd_cfg80211.h"
#include <qdf_defer.h>
diff --git a/core/hdd/inc/wlan_hdd_tdls.h b/core/hdd/inc/wlan_hdd_tdls.h
index 37e6243d572a..7fa22b27002d 100644
--- a/core/hdd/inc/wlan_hdd_tdls.h
+++ b/core/hdd/inc/wlan_hdd_tdls.h
@@ -710,8 +710,33 @@ void hdd_tdls_context_destroy(hdd_context_t *hdd_ctx);
int wlan_hdd_tdls_antenna_switch(hdd_context_t *hdd_ctx,
hdd_adapter_t *adapter,
uint32_t mode);
-hdd_adapter_t *wlan_hdd_tdls_check_and_enable(hdd_context_t *hdd_ctx);
+/**
+ * wlan_hdd_tdls_notify_connect() - Update tdls state for every
+ * connect event.
+ * @adapter: hdd adapter
+ * @csr_roam_info: csr information
+ *
+ * After every connect event in the system, check whether TDLS
+ * can be enabled in the system. If TDLS can be enabled, update the
+ * TDLS state as needed.
+ *
+ * Return: None
+ */
+void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter,
+ tCsrRoamInfo *csr_roam_info);
+/**
+ * wlan_hdd_tdls_notify_disconnect() - Update tdls state for every
+ * disconnect event.
+ * @adapter: hdd adapter
+ *
+ * After every disconnect event in the system, check whether TDLS
+ * can be disabled/enabled in the system and update the
+ * TDLS state as needed.
+ *
+ * Return: None
+ */
+void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter);
#else
static inline void hdd_tdls_notify_mode_change(hdd_adapter_t *adapter,
@@ -742,19 +767,18 @@ static inline int wlan_hdd_tdls_antenna_switch(hdd_context_t *hdd_ctx,
{
return 0;
}
-
-static inline hdd_adapter_t *wlan_hdd_tdls_check_and_enable(
- hdd_context_t *hdd_ctx)
-{
- return NULL;
-}
-
static inline void wlan_hdd_update_tdls_info(hdd_adapter_t *adapter,
bool tdls_prohibited,
bool tdls_chan_swit_prohibited)
{
}
-
+static inline void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter,
+ tCsrRoamInfo *csr_roam_info)
+{
+}
+static inline void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter)
+{
+}
#endif /* End of FEATURE_WLAN_TDLS */
#ifdef FEATURE_WLAN_DIAG_SUPPORT
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index 8810512e169b..c5a5fcac0922 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -47,9 +47,7 @@
#include "wlan_hdd_cfg80211.h"
#include "csr_inside_api.h"
#include "wlan_hdd_p2p.h"
-#ifdef FEATURE_WLAN_TDLS
#include "wlan_hdd_tdls.h"
-#endif
#include "sme_api.h"
#include "wlan_hdd_hostapd.h"
#include <wlan_hdd_ipa.h>
@@ -1191,7 +1189,6 @@ static void hdd_send_association_event(struct net_device *dev,
int we_event;
char *msg;
struct qdf_mac_addr peerMacAddr;
- hdd_adapter_t *tdls_adapter;
/* Added to find the auth type on the fly at run time */
/* rather than with cfg to see if FT is enabled */
@@ -1282,14 +1279,8 @@ static void hdd_send_association_event(struct net_device *dev,
pAdapter->sessionId,
&chan_info,
pAdapter->device_mode);
-
- hdd_info("Assoc: Check and enable or disable TDLS state ");
- if ((pAdapter->device_mode == QDF_STA_MODE ||
- pAdapter->device_mode == QDF_P2P_CLIENT_MODE) &&
- !pHddCtx->concurrency_marked)
- wlan_hdd_update_tdls_info(pAdapter,
- pCsrRoamInfo->tdls_prohibited,
- pCsrRoamInfo->tdls_chan_swit_prohibited);
+ /* Update tdls module about connection event */
+ wlan_hdd_tdls_notify_connect(pAdapter, pCsrRoamInfo);
#ifdef MSM_PLATFORM
#if defined(CONFIG_ICNSS) || defined(CONFIG_CNSS)
@@ -1335,24 +1326,9 @@ static void hdd_send_association_event(struct net_device *dev,
pAdapter->device_mode);
}
hdd_lpass_notify_disconnect(pAdapter);
-#ifdef FEATURE_WLAN_TDLS
- hdd_info("Disassoc: Check and enable or disable TDLS state ");
- if ((pAdapter->device_mode == QDF_STA_MODE ||
- pAdapter->device_mode == QDF_P2P_CLIENT_MODE) &&
- !pHddCtx->concurrency_marked) {
- wlan_hdd_update_tdls_info(pAdapter,
- true,
- true);
- }
- if (!pHddCtx->concurrency_marked) {
- tdls_adapter = wlan_hdd_tdls_check_and_enable(
- pHddCtx);
- if (NULL != tdls_adapter)
- wlan_hdd_update_tdls_info(tdls_adapter,
- false,
- false);
- }
-#endif
+ /* Update tdls module about the disconnection event */
+ wlan_hdd_tdls_notify_disconnect(pAdapter);
+
#ifdef MSM_PLATFORM
/* stop timer in sta/p2p_cli */
spin_lock_bh(&pHddCtx->bus_bw_lock);
@@ -4037,6 +4013,23 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
return status;
}
+#else
+
+static inline QDF_STATUS hdd_roam_deregister_tdlssta(hdd_adapter_t *pAdapter,
+ uint8_t staId)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
+ tCsrRoamInfo *pRoamInfo,
+ uint32_t roamId,
+ eRoamCmdStatus roamStatus,
+ eCsrRoamResult roamResult)
+{
+ return QDF_STATUS_SUCCESS;
+}
#endif
#ifdef WLAN_FEATURE_11W
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index fcc2f5e0e7b6..61c1a77aec74 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -6639,8 +6639,7 @@ static int drv_cmd_set_antenna_mode(hdd_adapter_t *adapter,
/* Check TDLS status and update antenna mode */
if ((QDF_STA_MODE == adapter->device_mode) &&
- cds_is_sta_active_connection_exists() &&
- (hdd_ctx->connected_peer_count > 0)) {
+ cds_is_sta_active_connection_exists()) {
ret = wlan_hdd_tdls_antenna_switch(hdd_ctx, adapter,
mode);
if (0 != ret)
diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c
index eaac53a0a77f..4abe1fef943f 100644
--- a/core/hdd/src/wlan_hdd_tdls.c
+++ b/core/hdd/src/wlan_hdd_tdls.c
@@ -1768,16 +1768,15 @@ int wlan_hdd_tdls_set_params(struct net_device *dev,
}
/**
- * wlan_hdd_tdls_check_and_enable() - check system state and enable tdls
+ * wlan_hdd_tdls_get_adapter() - check system state and return hdd adapter
* @hdd_ctx: hdd context
*
- * After every disassociation in the system, check whether TDLS
- * can be enabled in the system. If TDLS possible return the
- * corresponding hdd adapter to enable TDLS.
+ * If TDLS possible, return the corresponding hdd adapter
+ * to enable TDLS in the system.
*
* Return: hdd adapter pointer or NULL.
*/
-hdd_adapter_t *wlan_hdd_tdls_check_and_enable(hdd_context_t *hdd_ctx)
+static hdd_adapter_t *wlan_hdd_tdls_get_adapter(hdd_context_t *hdd_ctx)
{
if (cds_get_connection_count() > 1)
return NULL;
@@ -1952,6 +1951,74 @@ void wlan_hdd_update_tdls_info(hdd_adapter_t *adapter, bool tdls_prohibited,
}
/**
+ * wlan_hdd_tdls_notify_connect() - Update tdls state for every
+ * connect event.
+ * @adapter: hdd adapter
+ * @csr_roam_info: csr information
+ *
+ * After every connect event in the system, check whether TDLS
+ * can be enabled in the system. If TDLS can be enabled, update the
+ * TDLS state as needed.
+ *
+ * Return: None
+ */
+void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter,
+ tCsrRoamInfo *csr_roam_info)
+{
+ hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+
+ hdd_info("Check and update TDLS state");
+
+ /* Association event */
+ if ((adapter->device_mode == QDF_STA_MODE ||
+ adapter->device_mode == QDF_P2P_CLIENT_MODE) &&
+ !hdd_ctx->concurrency_marked) {
+ wlan_hdd_update_tdls_info(adapter,
+ csr_roam_info->tdls_prohibited,
+ csr_roam_info->tdls_chan_swit_prohibited);
+ }
+}
+
+/**
+ * wlan_hdd_tdls_notify_disconnect() - Update tdls state for every
+ * disconnect event.
+ * @adapter: hdd adapter
+ *
+ * After every disconnect event in the system, check whether TDLS
+ * can be disabled/enabled in the system and update the
+ * TDLS state as needed.
+ *
+ * Return: None
+ */
+void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter)
+{
+ hdd_adapter_t *temp_adapter;
+ hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+
+ hdd_info("Check and update TDLS state");
+
+ /* Disassociation event */
+ if ((adapter->device_mode == QDF_STA_MODE ||
+ adapter->device_mode == QDF_P2P_CLIENT_MODE) &&
+ !hdd_ctx->concurrency_marked) {
+ wlan_hdd_update_tdls_info(adapter, true, true);
+ }
+
+ /* If concurrency is not marked, then we have to
+ * check, whether TDLS could be enabled in the
+ * system after this disassoc event.
+ */
+ if (!hdd_ctx->concurrency_marked) {
+ temp_adapter = wlan_hdd_tdls_get_adapter(
+ hdd_ctx);
+ if (NULL != temp_adapter)
+ wlan_hdd_update_tdls_info(temp_adapter,
+ false,
+ false);
+ }
+}
+
+/**
* wlan_hdd_tdls_set_sta_id() - set station ID on a tdls peer
* @pAdapter: HDD adapter
* @mac: MAC address of a tdls peer
@@ -2483,7 +2550,7 @@ void wlan_hdd_tdls_decrement_peer_count(hdd_adapter_t *pAdapter)
hdd_err("TDLS set state is not cleared correctly !!!");
pHddCtx->concurrency_marked = false;
}
- tdls_adapter = wlan_hdd_tdls_check_and_enable(pHddCtx);
+ tdls_adapter = wlan_hdd_tdls_get_adapter(pHddCtx);
if (tdls_adapter)
wlan_hdd_update_tdls_info(tdls_adapter, false, false);
}
@@ -5134,6 +5201,11 @@ void wlan_hdd_tdls_update_rx_pkt_cnt(hdd_adapter_t *adapter,
uint8_t valid_mac_entries;
struct qdf_mac_addr *mac_addr;
+ hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+
+ if (!hdd_ctx->enable_tdls_connection_tracker)
+ return;
+
mac_addr = (struct qdf_mac_addr *)(skb->data+QDF_MAC_ADDR_SIZE);
if (qdf_is_macaddr_group(mac_addr))
return;
@@ -5143,7 +5215,6 @@ void wlan_hdd_tdls_update_rx_pkt_cnt(hdd_adapter_t *adapter,
mac_addr, QDF_MAC_ADDR_SIZE) == 0)
return;
- hdd_ctx = WLAN_HDD_GET_CTX(adapter);
tdls_ctx = adapter->sessionCtx.station.pHddTdlsCtx;
qdf_spin_lock_bh(&hdd_ctx->tdls_ct_spinlock);
@@ -5197,6 +5268,11 @@ void wlan_hdd_tdls_update_tx_pkt_cnt(hdd_adapter_t *adapter,
uint8_t valid_mac_entries;
struct qdf_mac_addr *mac_addr;
+ hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+
+ if (!hdd_ctx->enable_tdls_connection_tracker)
+ return;
+
mac_addr = (struct qdf_mac_addr *)skb->data;
if (qdf_is_macaddr_group(mac_addr))
return;
@@ -5206,7 +5282,6 @@ void wlan_hdd_tdls_update_tx_pkt_cnt(hdd_adapter_t *adapter,
QDF_MAC_ADDR_SIZE) == 0)
return;
- hdd_ctx = WLAN_HDD_GET_CTX(adapter);
tdls_ctx = adapter->sessionCtx.station.pHddTdlsCtx;
qdf_spin_lock_bh(&hdd_ctx->tdls_ct_spinlock);
@@ -5816,9 +5891,12 @@ int wlan_hdd_tdls_antenna_switch(hdd_context_t *hdd_ctx,
{
uint8_t tdls_peer_cnt;
uint32_t vdev_nss;
- hdd_station_ctx_t *sta_ctx =
- WLAN_HDD_GET_STATION_CTX_PTR(adapter);
+ hdd_station_ctx_t *sta_ctx;
+
+ if (hdd_ctx->connected_peer_count == 0)
+ return 0;
+ sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
/* Check whether TDLS antenna switch is in progress */
if (hdd_ctx->tdls_nss_switch_in_progress) {
if (hdd_ctx->tdls_nss_teardown_complete == false) {
diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c
index 918973a91cee..0fea7d814579 100644
--- a/core/hdd/src/wlan_hdd_tx_rx.c
+++ b/core/hdd/src/wlan_hdd_tx_rx.c
@@ -47,18 +47,12 @@
#include <net/ieee80211_radiotap.h>
#include "sap_api.h"
#include "wlan_hdd_wmm.h"
-
-#ifdef FEATURE_WLAN_TDLS
#include "wlan_hdd_tdls.h"
-#endif
#include <wlan_hdd_ipa.h>
-
#include "wlan_hdd_ocb.h"
#include "wlan_hdd_lro.h"
-
#include "cdp_txrx_peer_ops.h"
#include "ol_txrx.h"
-
#include "wlan_hdd_nan_datapath.h"
#include "pld_common.h"
@@ -419,8 +413,8 @@ int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
hdd_station_ctx_t *pHddStaCtx = &pAdapter->sessionCtx.station;
#ifdef QCA_PKT_PROTO_TRACE
uint8_t proto_type = 0;
-#endif /* QCA_PKT_PROTO_TRACE */
hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(pAdapter);
+#endif /* QCA_PKT_PROTO_TRACE */
#ifdef QCA_WIFI_FTM
if (hdd_get_conparam() == QDF_GLOBAL_FTM_MODE) {
@@ -551,8 +545,7 @@ int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
pAdapter->stats.tx_bytes += skb->len;
- if (hdd_ctx->enable_tdls_connection_tracker)
- wlan_hdd_tdls_update_tx_pkt_cnt(pAdapter, skb);
+ wlan_hdd_tdls_update_tx_pkt_cnt(pAdapter, skb);
++pAdapter->stats.tx_packets;
@@ -965,8 +958,7 @@ QDF_STATUS hdd_rx_packet_cbk(void *context, qdf_nbuf_t rxBuf)
qdf_nbuf_data_addr(rxBuf),
sizeof(qdf_nbuf_data(rxBuf)), QDF_RX));
- if (pHddCtx->enable_tdls_connection_tracker)
- wlan_hdd_tdls_update_rx_pkt_cnt(pAdapter, skb);
+ wlan_hdd_tdls_update_rx_pkt_cnt(pAdapter, skb);
skb->dev = pAdapter->dev;
skb->protocol = eth_type_trans(skb, skb->dev);
diff --git a/core/mac/src/pe/include/lim_api.h b/core/mac/src/pe/include/lim_api.h
index 9afa50d2fcc2..dc78c170d79e 100644
--- a/core/mac/src/pe/include/lim_api.h
+++ b/core/mac/src/pe/include/lim_api.h
@@ -164,6 +164,23 @@ extern void lim_trigger_sta_deletion(tpAniSirGlobal pMac, tpDphHashNode pStaDs,
extern void lim_send_sme_tdls_del_sta_ind(tpAniSirGlobal pMac, tpDphHashNode pStaDs,
tpPESession psessionEntry,
uint16_t reasonCode);
+/**
+ * lim_set_tdls_flags() - update tdls flags based on newer STA connection
+ * information
+ * @roam_sync_ind_ptr: pointer to roam offload structure
+ * @ft_session_ptr: pointer to PE session
+ *
+ * Set TDLS flags as per new STA connection capabilities.
+ *
+ * Return: None
+ */
+void lim_set_tdls_flags(roam_offload_synch_ind *roam_sync_ind_ptr,
+ tpPESession ft_session_ptr);
+#else
+static inline void lim_set_tdls_flags(roam_offload_synch_ind *roam_sync_ind_ptr,
+ tpPESession ft_session_ptr)
+{
+}
#endif
/* / Function that checks for change in AP's capabilties on STA */
diff --git a/core/mac/src/pe/include/lim_session.h b/core/mac/src/pe/include/lim_session.h
index b8b34a98fb79..4b36c7ee704c 100644
--- a/core/mac/src/pe/include/lim_session.h
+++ b/core/mac/src/pe/include/lim_session.h
@@ -344,6 +344,10 @@ typedef struct sPESession /* Added to Support BT-AMP */
uint8_t freePeerIdxTail;
uint16_t gLimNumOfCurrentSTAs;
#ifdef FEATURE_WLAN_TDLS
+ /* TDLS parameters to check whether TDLS
+ * and TDLS channel switch is allowed in the
+ * AP network
+ */
uint32_t peerAIDBitmap[2];
bool tdls_prohibited;
bool tdls_chan_swit_prohibited;
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index 2700e9ad55b7..136d0e920579 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -2070,10 +2070,7 @@ QDF_STATUS pe_roam_synch_callback(tpAniSirGlobal mac_ctx,
roam_sync_ind_ptr->join_rsp->nss = curr_sta_ds->nss;
roam_sync_ind_ptr->join_rsp->max_rate_flags =
lim_get_max_rate_flags(mac_ctx, curr_sta_ds);
- roam_sync_ind_ptr->join_rsp->tdls_prohibited =
- ft_session_ptr->tdls_prohibited;
- roam_sync_ind_ptr->join_rsp->tdls_chan_swit_prohibited =
- ft_session_ptr->tdls_chan_swit_prohibited;
+ lim_set_tdls_flags(roam_sync_ind_ptr, ft_session_ptr);
roam_sync_ind_ptr->join_rsp->aid = ft_session_ptr->limAID;
lim_fill_join_rsp_ht_caps(ft_session_ptr, roam_sync_ind_ptr->join_rsp);
ft_session_ptr->limPrevSmeState = ft_session_ptr->limSmeState;
diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c
index 1e87bd405276..b2e15757fba5 100644
--- a/core/mac/src/pe/lim/lim_process_tdls.c
+++ b/core/mac/src/pe/lim/lim_process_tdls.c
@@ -963,6 +963,15 @@ wma_tx_frame_with_tx_complete_send(tpAniSirGlobal pMac, void *pPacket,
}
#endif
+void lim_set_tdls_flags(roam_offload_synch_ind *roam_sync_ind_ptr,
+ tpPESession ft_session_ptr)
+{
+ roam_sync_ind_ptr->join_rsp->tdls_prohibited =
+ ft_session_ptr->tdls_prohibited;
+ roam_sync_ind_ptr->join_rsp->tdls_chan_swit_prohibited =
+ ft_session_ptr->tdls_chan_swit_prohibited;
+}
+
/*
* TDLS setup Request frame on AP link
*/
diff --git a/core/mac/src/pe/lim/lim_types.h b/core/mac/src/pe/lim/lim_types.h
index 2dd2df5994e7..5b6ec4673827 100644
--- a/core/mac/src/pe/lim/lim_types.h
+++ b/core/mac/src/pe/lim/lim_types.h
@@ -539,6 +539,11 @@ static inline tSirRetStatus lim_delete_tdls_peers(tpAniSirGlobal mac_ctx,
{
return eSIR_SUCCESS;
}
+static inline void lim_init_tdls_data(tpAniSirGlobal pMac,
+ tpPESession pSessionEntry)
+{
+
+}
#endif
/* Algorithms & Link Monitoring related functions */
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index 517a01185aab..f36805226cb5 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -476,10 +476,12 @@ typedef enum {
eCSR_ROAM_PREAUTH_STATUS_SUCCESS,
eCSR_ROAM_PREAUTH_STATUS_FAILURE,
eCSR_ROAM_HANDOVER_SUCCESS,
-#ifdef FEATURE_WLAN_TDLS
+ /*
+ * TDLS callback events
+ */
eCSR_ROAM_TDLS_STATUS_UPDATE,
eCSR_ROAM_RESULT_MGMT_TX_COMPLETE_IND,
-#endif
+
/* Disaconnect all the clients */
eCSR_ROAM_DISCONNECT_ALL_P2P_CLIENTS,
/* Stopbss triggered from SME due to different */
@@ -587,7 +589,7 @@ typedef enum {
eCSR_ROAM_RESULT_MAX_ASSOC_EXCEEDED,
/* Assoc rejected due to concurrent session running on a diff channel */
eCSR_ROAM_RESULT_ASSOC_FAIL_CON_CHANNEL,
-#ifdef FEATURE_WLAN_TDLS
+ /* TDLS events */
eCSR_ROAM_RESULT_ADD_TDLS_PEER,
eCSR_ROAM_RESULT_UPDATE_TDLS_PEER,
eCSR_ROAM_RESULT_DELETE_TDLS_PEER,
@@ -598,7 +600,6 @@ typedef enum {
eCSR_ROAM_RESULT_TDLS_SHOULD_TEARDOWN,
eCSR_ROAM_RESULT_TDLS_SHOULD_PEER_DISCONNECTED,
eCSR_ROAM_RESULT_TDLS_CONNECTION_TRACKER_NOTIFICATION,
-#endif
eCSR_ROAM_RESULT_IBSS_PEER_INFO_SUCCESS,
eCSR_ROAM_RESULT_IBSS_PEER_INFO_FAILED,
@@ -1386,6 +1387,11 @@ typedef struct tagCsrRoamInfo {
uint32_t roc_scan_id;
uint32_t rxChan;
#ifdef FEATURE_WLAN_TDLS
+ /*
+ * TDLS parameters to check whether TDLS
+ * and TDLS channel switch is allowed in the
+ * AP network
+ */
uint8_t staType;
bool tdls_prohibited; /* per ExtCap in Assoc/Reassoc resp */
bool tdls_chan_swit_prohibited; /* per ExtCap in Assoc/Reassoc resp */
@@ -1740,10 +1746,11 @@ QDF_STATUS csr_roam_issue_ft_roam_offload_synch(tHalHandle hHal,
#endif
typedef void (*tCsrLinkStatusCallback)(uint8_t status, void *pContext);
#ifdef FEATURE_WLAN_TDLS
-void csr_roam_fill_tdls_info(tCsrRoamInfo *roam_info, tpSirSmeJoinRsp join_rsp);
+void csr_roam_fill_tdls_info(tpAniSirGlobal mac_ctx, tCsrRoamInfo *roam_info,
+ tpSirSmeJoinRsp join_rsp);
#else
-static inline void csr_roam_fill_tdls_info(tCsrRoamInfo *roam_info,
- tpSirSmeJoinRsp join_rsp)
+static inline void csr_roam_fill_tdls_info(tpAniSirGlobal mac_ctx, tCsrRoamInfo *roam_info,
+ tpSirSmeJoinRsp join_rsp)
{}
#endif
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index fab7f0e48638..896fa91b593d 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -19468,11 +19468,16 @@ fail:
*
* Return: None
*/
-void csr_roam_fill_tdls_info(tCsrRoamInfo *roam_info, tpSirSmeJoinRsp join_rsp)
+void csr_roam_fill_tdls_info(tpAniSirGlobal mac_ctx, tCsrRoamInfo *roam_info,
+ tpSirSmeJoinRsp join_rsp)
{
roam_info->tdls_prohibited = join_rsp->tdls_prohibited;
roam_info->tdls_chan_swit_prohibited =
join_rsp->tdls_chan_swit_prohibited;
+ sms_log(mac_ctx, LOG1,
+ FL("tdls:prohibit: %d, chan_swit_prohibit: %d"),
+ roam_info->tdls_prohibited,
+ roam_info->tdls_chan_swit_prohibited);
}
#endif
@@ -19717,11 +19722,7 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx,
roam_info->chan_info.nss = roam_synch_data->join_rsp->nss;
roam_info->chan_info.rate_flags =
roam_synch_data->join_rsp->max_rate_flags;
- csr_roam_fill_tdls_info(roam_info, roam_synch_data->join_rsp);
- sms_log(mac_ctx, LOG1,
- FL("tdls:prohibit: %d, chan_swit_prohibit: %d"),
- roam_info->tdls_prohibited,
- roam_info->tdls_chan_swit_prohibited);
+ csr_roam_fill_tdls_info(mac_ctx, roam_info, roam_synch_data->join_rsp);
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
src_profile = &roam_synch_data->join_rsp->HTProfile;
dst_profile = &conn_profile->HTProfile;