diff options
| author | Nishank Aggarwal <naggar@codeaurora.org> | 2017-01-24 18:26:31 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-17 02:00:00 -0800 |
| commit | d27ea2d318bf08d4921b1cb67ceac78546a7873a (patch) | |
| tree | bb553046e480576cebb8b05273ce1b23d2af5691 | |
| parent | 75e7b6a8640db87410acd1c9271b258cb5a33b51 (diff) | |
qcacld-3.0: Add diag event for Assoc and Auth Complete
Currently we are not getting any event for ASSOC/AUTH
completion.To debug issues where AP does not respond
to our AUTH\ASSOC request or the response packet from
AP is lost we would like to have clear indication whether
the request from DUT has reached AP or not.
Add diag event for both auth and assoc completion to
inform whether we got ack for the auth and assoc request
pkt.
Change-Id: Ia01da4a9f0d5435733844178643a29fad58d2a5c
CRs-Fixed: 2001968
| -rw-r--r-- | core/mac/src/pe/lim/lim_ft_preauth.c | 4 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c | 11 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_auth_frame.c | 46 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_mlm_req_messages.c | 4 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_management_frames.c | 112 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_types.h | 4 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_utils.h | 23 |
7 files changed, 129 insertions, 75 deletions
diff --git a/core/mac/src/pe/lim/lim_ft_preauth.c b/core/mac/src/pe/lim/lim_ft_preauth.c index 920874c13772..61664b194ec0 100644 --- a/core/mac/src/pe/lim/lim_ft_preauth.c +++ b/core/mac/src/pe/lim/lim_ft_preauth.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -299,7 +299,7 @@ void lim_perform_ft_pre_auth(tpAniSirGlobal pMac, QDF_STATUS status, lim_send_auth_mgmt_frame(pMac, &authFrame, psessionEntry->ftPEContext.pFTPreAuthReq->preAuthbssId, - LIM_NO_WEP_IN_FC, psessionEntry, false); + LIM_NO_WEP_IN_FC, psessionEntry); return; diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c index 39ecda57c34e..6e2305d58510 100644 --- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c +++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -853,13 +853,14 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, return; } } + + lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ROAM_ASSOC_COMP_EVENT, + session_entry, assoc_rsp->statusCode ? eSIR_FAILURE : + eSIR_SUCCESS, assoc_rsp->statusCode); + if (subtype == LIM_REASSOC) { lim_log (mac_ctx, LOG1, FL("Successfully Reassociated with BSS")); -#ifdef FEATURE_WLAN_DIAG_SUPPORT - lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ROAM_ASSOC_COMP_EVENT, - session_entry, eSIR_SUCCESS, eSIR_SUCCESS); -#endif #ifdef FEATURE_WLAN_ESE if (assoc_rsp->tsmPresent) lim_update_ese_tsm(mac_ctx, session_entry, assoc_rsp); diff --git a/core/mac/src/pe/lim/lim_process_auth_frame.c b/core/mac/src/pe/lim/lim_process_auth_frame.c index 4cb0205354f2..921e4f2ecb8c 100644 --- a/core/mac/src/pe/lim/lim_process_auth_frame.c +++ b/core/mac/src/pe/lim/lim_process_auth_frame.c @@ -140,7 +140,7 @@ static void lim_process_auth_shared_system_algo(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } else { /* Create entry for this STA in pre-auth list */ @@ -188,7 +188,7 @@ static void lim_process_auth_shared_system_algo(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); lim_delete_pre_auth_node(mac_ctx, mac_hdr->sa); return; } @@ -220,7 +220,7 @@ static void lim_process_auth_shared_system_algo(tpAniSirGlobal mac_ctx, SIR_MAC_AUTH_CHALLENGE_LENGTH); lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); } } @@ -264,7 +264,7 @@ static void lim_process_auth_open_system_algo(tpAniSirGlobal mac_ctx, auth_frame->authStatusCode = eSIR_MAC_SUCCESS_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); } static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx, @@ -430,7 +430,7 @@ static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } /* No Pre-auth context exists for the STA. */ @@ -449,7 +449,7 @@ static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -486,7 +486,7 @@ static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx, eSIR_MAC_AUTH_ALGO_NOT_SUPPORTED_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } } else { @@ -510,7 +510,7 @@ static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } } @@ -691,7 +691,7 @@ static void lim_process_auth_frame_type2(tpAniSirGlobal mac_ctx, eSIR_MAC_AUTH_ALGO_NOT_SUPPORTED_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } if (rx_auth_frm_body->type != SIR_MAC_CHALLENGE_TEXT_EID) { @@ -725,7 +725,7 @@ static void lim_process_auth_frame_type2(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); lim_restore_from_auth_state(mac_ctx, eSIR_SME_INVALID_WEP_DEFAULT_KEY, eSIR_MAC_UNSPEC_FAILURE_REASON, @@ -759,7 +759,7 @@ static void lim_process_auth_frame_type2(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, (tpSirMacAuthFrameBody)encr_auth_frame, mac_hdr->sa, LIM_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -791,7 +791,7 @@ static void lim_process_auth_frame_type3(tpAniSirGlobal mac_ctx, eSIR_MAC_AUTH_FRAME_OUT_OF_SEQ_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -816,7 +816,7 @@ static void lim_process_auth_frame_type3(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -838,7 +838,7 @@ static void lim_process_auth_frame_type3(tpAniSirGlobal mac_ctx, eSIR_MAC_AUTH_FRAME_OUT_OF_SEQ_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -860,7 +860,7 @@ static void lim_process_auth_frame_type3(tpAniSirGlobal mac_ctx, lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); /* Delete pre-auth context of STA */ lim_delete_pre_auth_node(mac_ctx, mac_hdr->sa); return; @@ -906,7 +906,7 @@ static void lim_process_auth_frame_type3(tpAniSirGlobal mac_ctx, eSIR_MAC_SUCCESS_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } else { lim_log(mac_ctx, LOGW, @@ -927,7 +927,7 @@ static void lim_process_auth_frame_type3(tpAniSirGlobal mac_ctx, eSIR_MAC_CHALLENGE_FAILURE_STATUS; lim_send_auth_mgmt_frame(mac_ctx, auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } } @@ -1173,7 +1173,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info, GET_LIM_SYSTEM_ROLE(pe_session), mac_hdr->sa); lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -1219,7 +1219,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info, eSIR_MAC_CHALLENGE_FAILURE_STATUS; lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -1247,7 +1247,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info, eSIR_MAC_AUTH_FRAME_OUT_OF_SEQ_STATUS; lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } /* Change the auth-response timeout */ @@ -1277,7 +1277,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info, lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -1306,7 +1306,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info, eSIR_MAC_CHALLENGE_FAILURE_STATUS; lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } @@ -1330,7 +1330,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info, lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_hdr->sa, LIM_NO_WEP_IN_FC, - pe_session, false); + pe_session); return; } if ((sir_convert_auth_frame2_struct(mac_ctx, plainbody, diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c index 0a0038392bf4..8957b2f7e0b9 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c @@ -1128,7 +1128,7 @@ static void lim_process_mlm_auth_req(tpAniSirGlobal mac_ctx, uint32_t *msg) mac_ctx->auth_ack_status = LIM_AUTH_ACK_NOT_RCD; lim_send_auth_mgmt_frame(mac_ctx, &auth_frame_body, mac_ctx->lim.gpLimMlmAuthReq->peerMacAddr, - LIM_NO_WEP_IN_FC, session, true); + LIM_NO_WEP_IN_FC, session); /* assign appropriate session_id to the timer object */ mac_ctx->lim.limTimers.gLimAuthFailureTimer.sessionId = session_id; @@ -2351,7 +2351,7 @@ static void lim_process_auth_retry_timer(tpAniSirGlobal mac_ctx) lim_send_auth_mgmt_frame(mac_ctx, &auth_frame, mac_ctx->lim.gpLimMlmAuthReq->peerMacAddr, - LIM_NO_WEP_IN_FC, session_entry, true); + LIM_NO_WEP_IN_FC, session_entry); } lim_deactivate_and_change_timer(mac_ctx, eLIM_AUTH_RETRY_TIMER); diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 09efc4a08669..f12b99201b21 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -1624,6 +1624,36 @@ lim_send_delts_req_action_frame(tpAniSirGlobal pMac, } /* End lim_send_delts_req_action_frame. */ /** + * lim_assoc_tx_complete_cnf()- Confirmation for assoc sent over the air + * + * @mac_ctx: pointer to global mac + * @tx_complete : Sent status + * + * Return: This returns QDF_STATUS + */ + +static QDF_STATUS lim_assoc_tx_complete_cnf(tpAniSirGlobal mac_ctx, + uint32_t tx_complete) +{ + uint16_t assoc_ack_status; + uint16_t reason_code; + + lim_log(mac_ctx, LOG1, + FL("tx_complete= %d"), tx_complete); + if (tx_complete) { + assoc_ack_status = ACKED; + reason_code = eSIR_SUCCESS; + } else { + assoc_ack_status = NOT_ACKED; + reason_code = eSIR_FAILURE; + } + + lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ASSOC_ACK_EVENT, + NULL, assoc_ack_status, reason_code); + return QDF_STATUS_SUCCESS; +} + +/** * lim_send_assoc_req_mgmt_frame() - Send association request * @mac_ctx: Handle to MAC context * @mlm_assoc_req: Association request information @@ -1648,7 +1678,7 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx, uint8_t qos_enabled, wme_enabled, wsm_enabled; void *packet; QDF_STATUS qdf_status; - uint16_t add_ie_len; + uint16_t add_ie_len, assoc_ack_status; uint8_t *add_ie; uint8_t *wps_ie = NULL; uint8_t power_caps = false; @@ -2046,22 +2076,28 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx, mac_hdr = (tpSirMacMgmtHdr) frame; MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT, pe_session->peSessionId, mac_hdr->fc.subType)); - qdf_status = - wma_tx_frame(mac_ctx, packet, - (uint16_t) (sizeof(tSirMacMgmtHdr) + payload), - TXRX_FRM_802_11_MGMT, ANI_TXDIR_TODS, 7, - lim_tx_complete, frame, tx_flag, sme_sessionid, 0); - MTRACE(qdf_trace - (QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE, - pe_session->peSessionId, qdf_status)); + + qdf_status = wma_tx_frameWithTxComplete(mac_ctx, packet, + (uint16_t) (sizeof(tSirMacMgmtHdr) + payload), + TXRX_FRM_802_11_MGMT, ANI_TXDIR_TODS, 7, + lim_tx_complete, frame, + lim_assoc_tx_complete_cnf, + tx_flag, sme_sessionid, false, 0); + MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE, + pe_session->peSessionId, qdf_status)); + if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { lim_log(mac_ctx, LOGE, FL("Failed to send Association Request (%X)!"), qdf_status); + assoc_ack_status = SENT_FAIL; + lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ASSOC_ACK_EVENT, + pe_session, assoc_ack_status, eSIR_FAILURE); /* Pkt will be freed up by the callback */ qdf_mem_free(frm); return; } + /* Free up buffer allocated for mlm_assoc_req */ qdf_mem_free(mlm_assoc_req); mlm_assoc_req = NULL; @@ -2081,15 +2117,25 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx, static QDF_STATUS lim_auth_tx_complete_cnf(tpAniSirGlobal mac_ctx, uint32_t tx_complete) { + uint16_t auth_ack_status; + uint16_t reason_code; + lim_log(mac_ctx, LOG1, FL("tx_complete= %d"), tx_complete); if (tx_complete) { mac_ctx->auth_ack_status = LIM_AUTH_ACK_RCD_SUCCESS; + auth_ack_status = ACKED; + reason_code = eSIR_SUCCESS; /* 'Change' timer for future activations */ lim_deactivate_and_change_timer(mac_ctx, eLIM_AUTH_RETRY_TIMER); } else { mac_ctx->auth_ack_status = LIM_AUTH_ACK_RCD_FAILURE; + auth_ack_status = NOT_ACKED; + reason_code = eSIR_FAILURE; } + + lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_AUTH_ACK_EVENT, + NULL, auth_ack_status, reason_code); return QDF_STATUS_SUCCESS; } @@ -2113,7 +2159,7 @@ lim_send_auth_mgmt_frame(tpAniSirGlobal mac_ctx, tpSirMacAuthFrameBody auth_frame, tSirMacAddr peer_addr, uint8_t wep_bit, - tpPESession session, bool wait_for_ack) + tpPESession session) { uint8_t *frame, *body; uint32_t frame_len = 0, body_len = 0; @@ -2122,7 +2168,7 @@ lim_send_auth_mgmt_frame(tpAniSirGlobal mac_ctx, QDF_STATUS qdf_status; uint8_t tx_flag = 0; uint8_t sme_sessionid = 0; - uint16_t ft_ies_length = 0; + uint16_t ft_ies_length = 0, auth_ack_status; if (NULL == session) { lim_log(mac_ctx, LOGE, FL("Error: psession Entry is NULL")); @@ -2142,9 +2188,8 @@ lim_send_auth_mgmt_frame(tpAniSirGlobal mac_ctx, * 4 bytes each for IV & ICV. */ lim_log(mac_ctx, LOG1, - FL("Sending encrypted auth frame to " MAC_ADDRESS_STR - "- wait_for_ack %d"), MAC_ADDR_ARRAY(peer_addr), - wait_for_ack); + FL("Sending encrypted auth frame to " MAC_ADDRESS_STR), + MAC_ADDR_ARRAY(peer_addr)); frame_len = sizeof(tSirMacMgmtHdr) + LIM_ENCR_AUTH_BODY_LEN; body_len = LIM_ENCR_AUTH_BODY_LEN; @@ -2153,12 +2198,11 @@ lim_send_auth_mgmt_frame(tpAniSirGlobal mac_ctx, } lim_log(mac_ctx, LOG1, - FL("Sending Auth seq# %d status %d (%d) wait_for_ack %d to " + FL("Sending Auth seq# %d status %d (%d) to " MAC_ADDRESS_STR), auth_frame->authTransactionSeqNumber, auth_frame->authStatusCode, (auth_frame->authStatusCode == eSIR_MAC_SUCCESS_STATUS), - wait_for_ack, MAC_ADDR_ARRAY(peer_addr)); switch (auth_frame->authTransactionSeqNumber) { @@ -2371,35 +2415,23 @@ alloc_packet: MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT, session->peSessionId, mac_hdr->fc.subType)); - if (wait_for_ack) { - mac_ctx->auth_ack_status = LIM_AUTH_ACK_NOT_RCD; - qdf_status = wma_tx_frameWithTxComplete(mac_ctx, packet, + mac_ctx->auth_ack_status = LIM_AUTH_ACK_NOT_RCD; + qdf_status = wma_tx_frameWithTxComplete(mac_ctx, packet, (uint16_t)frame_len, TXRX_FRM_802_11_MGMT, ANI_TXDIR_TODS, 7, lim_tx_complete, frame, lim_auth_tx_complete_cnf, tx_flag, sme_sessionid, false, 0); - MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE, - session->peSessionId, qdf_status)); - if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { - lim_log(mac_ctx, LOGE, - FL("*** Could not send Auth frame, retCode=%X ***"), - qdf_status); - mac_ctx->auth_ack_status = LIM_AUTH_ACK_RCD_FAILURE; - /* Pkt will be freed up by the callback */ - } - } else { - /* Queue Authentication frame in high priority WQ */ - qdf_status = wma_tx_frame(mac_ctx, packet, (uint16_t) frame_len, - TXRX_FRM_802_11_MGMT, - ANI_TXDIR_TODS, 7, lim_tx_complete, - frame, tx_flag, sme_sessionid, 0); - MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE, - session->peSessionId, qdf_status)); - if (!QDF_IS_STATUS_SUCCESS(qdf_status)) - lim_log(mac_ctx, LOGE, - FL("*** Could not send Auth frame, retCode=%X ***"), - qdf_status); + MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE, + session->peSessionId, qdf_status)); + if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { + lim_log(mac_ctx, LOGE, + FL("*** Could not send Auth frame, retCode=%X ***"), + qdf_status); + mac_ctx->auth_ack_status = LIM_AUTH_ACK_RCD_FAILURE; + auth_ack_status = SENT_FAIL; + lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_AUTH_ACK_EVENT, + session, auth_ack_status, eSIR_FAILURE); } return; } diff --git a/core/mac/src/pe/lim/lim_types.h b/core/mac/src/pe/lim/lim_types.h index 99952bc233a0..eb3321a9d5a6 100644 --- a/core/mac/src/pe/lim/lim_types.h +++ b/core/mac/src/pe/lim/lim_types.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -464,7 +464,7 @@ tSirRetStatus lim_send_probe_req_mgmt_frame(tpAniSirGlobal, tSirMacSSid *, void lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal, tSirMacAddr, tpAniSSID, short, uint8_t, tpPESession, uint8_t); void lim_send_auth_mgmt_frame(tpAniSirGlobal, tSirMacAuthFrameBody *, tSirMacAddr, - uint8_t, tpPESession, bool wait_for_ack); + uint8_t, tpPESession); void lim_send_assoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmAssocReq *, tpPESession); #ifdef WLAN_FEATURE_HOST_ROAM void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal pMac, diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h index 1c66d88da52e..09bca083ab25 100644 --- a/core/mac/src/pe/lim/lim_utils.h +++ b/core/mac/src/pe/lim/lim_utils.h @@ -476,7 +476,21 @@ bool lim_check_membership_user_position(tpAniSirGlobal pMac, uint32_t membership, uint32_t userPosition, uint8_t staId); -#ifdef FEATURE_WLAN_DIAG_SUPPORT +/** + * enum ack_status - Indicate TX status of ASSOC/AUTH + * @ACKED : Ack is received. + * @NOT_ACKED : No Ack received. + * @SENT_FAIL : Failure while sending. + * + * Indicate if driver is waiting for ACK status of assoc/auth or ACK received + * for ASSOC/AUTH OR NO ACK is received for the assoc/auth sent or assoc/auth + * sent failed. + */ +enum assoc_ack_status { + ACKED, + NOT_ACKED, + SENT_FAIL, +}; typedef enum { WLAN_PE_DIAG_SCAN_REQ_EVENT = 0, @@ -557,11 +571,18 @@ typedef enum { WLAN_PE_DIAG_AUTH_TIMEOUT, WLAN_PE_DIAG_DEAUTH_FRAME_EVENT, WLAN_PE_DIAG_DISASSOC_FRAME_EVENT, + WLAN_PE_DIAG_AUTH_ACK_EVENT, + WLAN_PE_DIAG_ASSOC_ACK_EVENT, } WLAN_PE_DIAG_EVENT_TYPE; +#ifdef FEATURE_WLAN_DIAG_SUPPORT void lim_diag_event_report(tpAniSirGlobal pMac, uint16_t eventType, tpPESession pSessionEntry, uint16_t status, uint16_t reasonCode); +#else +static inline void lim_diag_event_report(tpAniSirGlobal pMac, uint16_t + eventType, tpPESession pSessionEntry, uint16_t status, + uint16_t reasonCode) {} #endif /* FEATURE_WLAN_DIAG_SUPPORT */ void pe_set_resume_channel(tpAniSirGlobal pMac, uint16_t channel, |
