|
@@ -3318,6 +3318,7 @@ skip:
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#ifndef CONVERGED_TDLS_ENABLE
|
|
|
/**
|
|
|
* lim_delete_tdls_peers() - delete tdls peers
|
|
|
*
|
|
@@ -3331,6 +3332,11 @@ skip:
|
|
|
tSirRetStatus lim_delete_tdls_peers(tpAniSirGlobal mac_ctx,
|
|
|
tpPESession session_entry)
|
|
|
{
|
|
|
+ cds_msg_t msg;
|
|
|
+ struct sir_tdls_notify_set_state_disable *tdls_state_disable;
|
|
|
+
|
|
|
+ pe_debug("Enter");
|
|
|
+
|
|
|
if (NULL == session_entry) {
|
|
|
pe_err("NULL session_entry");
|
|
|
return eSIR_FAILURE;
|
|
@@ -3339,10 +3345,58 @@ tSirRetStatus lim_delete_tdls_peers(tpAniSirGlobal mac_ctx,
|
|
|
lim_check_aid_and_delete_peer(mac_ctx, session_entry);
|
|
|
if (lim_is_roam_synch_in_progress(session_entry))
|
|
|
return eSIR_SUCCESS;
|
|
|
+
|
|
|
+ if (mac_ctx->lim.sme_msg_callback) {
|
|
|
+ tdls_state_disable = qdf_mem_malloc(
|
|
|
+ sizeof(*tdls_state_disable));
|
|
|
+ if (NULL == tdls_state_disable) {
|
|
|
+ pe_err("memory allocation failed");
|
|
|
+ return eSIR_FAILURE;
|
|
|
+ }
|
|
|
+ tdls_state_disable->session_id = session_entry->smeSessionId;
|
|
|
+ msg.type = eWNI_SME_TDLS_NOTIFY_SET_STATE_DISABLE;
|
|
|
+ msg.bodyptr = tdls_state_disable;
|
|
|
+ msg.bodyval = 0;
|
|
|
+ mac_ctx->lim.sme_msg_callback(mac_ctx, &msg);
|
|
|
+ }
|
|
|
+
|
|
|
lim_send_sme_tdls_delete_all_peer_ind(mac_ctx, session_entry);
|
|
|
+ pe_debug("Exit");
|
|
|
+ return eSIR_SUCCESS;
|
|
|
+}
|
|
|
+#else
|
|
|
+/**
|
|
|
+ * lim_delete_tdls_peers() - delete tdls peers
|
|
|
+ *
|
|
|
+ * @mac_ctx - global MAC context
|
|
|
+ * @session_entry - PE session entry
|
|
|
+ *
|
|
|
+ * Delete all the TDLS peer connected before leaving the BSS
|
|
|
+ *
|
|
|
+ * Return: eSIR_SUCCESS on success, error code otherwise
|
|
|
+ */
|
|
|
+tSirRetStatus lim_delete_tdls_peers(tpAniSirGlobal mac_ctx,
|
|
|
+ tpPESession session_entry)
|
|
|
+{
|
|
|
+ pe_debug("Enter");
|
|
|
|
|
|
+ if (NULL == session_entry) {
|
|
|
+ pe_err("NULL session_entry");
|
|
|
+ return eSIR_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+ lim_check_aid_and_delete_peer(mac_ctx, session_entry);
|
|
|
+
|
|
|
+ if (lim_is_roam_synch_in_progress(session_entry))
|
|
|
+ return eSIR_SUCCESS;
|
|
|
+
|
|
|
+ tgt_tdls_peers_deleted_notification(mac_ctx->psoc,
|
|
|
+ session_entry->smeSessionId);
|
|
|
+
|
|
|
+ pe_debug("Exit");
|
|
|
return eSIR_SUCCESS;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
/**
|
|
|
* lim_process_sme_del_all_tdls_peers(): process delete tdls peers
|