diff options
| -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, |
