From ee029ad052366bffb2a9a2e078faa0ba2ad7dddb Mon Sep 17 00:00:00 2001 From: Sandeep Puligilla Date: Mon, 26 Oct 2015 18:58:00 -0700 Subject: [PATCH] qcacld-3.0: BT AMP Cleanup in CSR Remove unused BT AMP code from CSR module Change-Id: I12ee3940ed8b9b4f50faffbed4ad949730cb1297 CRs-Fixed: 926965 --- core/sme/inc/csr_api.h | 34 --- core/sme/inc/csr_support.h | 1 - core/sme/src/csr/csr_api_roam.c | 388 ++++++++---------------------- core/sme/src/csr/csr_api_scan.c | 16 +- core/sme/src/csr/csr_inside_api.h | 1 - core/sme/src/csr/csr_util.c | 16 -- 6 files changed, 108 insertions(+), 348 deletions(-) diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index a4194e8c96ef..bf2162d5a098 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -166,8 +166,6 @@ typedef enum { eCSR_BSS_TYPE_INFRA_AP, /* SoftAP AP */ eCSR_BSS_TYPE_IBSS, /* IBSS network we'll NOT start */ eCSR_BSS_TYPE_START_IBSS, /* IBSS network we'll start if no partners */ - eCSR_BSS_TYPE_WDS_AP, /* BT-AMP AP */ - eCSR_BSS_TYPE_WDS_STA, /* BT-AMP station */ eCSR_BSS_TYPE_ANY, /* any BSS type (IBSS or Infrastructure).*/ } eCsrRoamBssType; @@ -475,8 +473,6 @@ typedef enum { eCSR_ROAM_GEN_INFO, eCSR_ROAM_SET_KEY_COMPLETE, eCSR_ROAM_IBSS_LEAVE, /* IBSS indications. */ - /* BSS in WDS mode status indication */ - eCSR_ROAM_WDS_IND, /* BSS in SoftAP mode status indication */ eCSR_ROAM_INFRA_IND, eCSR_ROAM_WPS_PBC_PROBE_REQ_IND, @@ -588,20 +584,6 @@ typedef enum { #ifdef FEATURE_WLAN_WAPI eCSR_ROAM_RESULT_NEW_WAPI_BSS, #endif /* FEATURE_WLAN_WAPI */ - /* WDS started successfully */ - eCSR_ROAM_RESULT_WDS_STARTED, - /* WDS start failed */ - eCSR_ROAM_RESULT_WDS_START_FAILED, - /* WDS stopped */ - eCSR_ROAM_RESULT_WDS_STOPPED, - /* WDS joined successfully in STA mode */ - eCSR_ROAM_RESULT_WDS_ASSOCIATED, - /* A station joined WDS AP */ - eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND, - /* WDS join failed in STA mode */ - eCSR_ROAM_RESULT_WDS_NOT_ASSOCIATED, - /* WDS disassociated */ - eCSR_ROAM_RESULT_WDS_DISASSOCIATED, /* INFRA started successfully */ eCSR_ROAM_RESULT_INFRA_STARTED, /* INFRA start failed */ @@ -896,12 +878,6 @@ typedef struct tagCsrRoamModifyProfileFields { } tCsrRoamModifyProfileFields; typedef struct tagCsrRoamProfile { - /* - * For eCSR_BSS_TYPE_WDS_AP. There must be one SSID in SSIDs. - * For eCSR_BSS_TYPE_WDS_STA. There must be two SSIDs. - * Index 0 is the SSID of the WDS-AP that we need to join. - * Index 1 is the SSID for self BSS. - */ tCsrSSIDs SSIDs; tCsrBSSIDs BSSIDs; /* this is bit mask of all the needed phy mode defined in eCsrPhyMode */ @@ -1603,20 +1579,10 @@ typedef CDF_STATUS (*csr_roamSessionCloseCallback)(void *pContext); (pProfile)->BSSType) #define CSR_IS_ANY_BSS_TYPE(pProfile) (eCSR_BSS_TYPE_ANY == \ (pProfile)->BSSType) -#define CSR_IS_WDS_AP(pProfile) (eCSR_BSS_TYPE_WDS_AP == (pProfile)->BSSType) -#define CSR_IS_WDS_STA(pProfile) (eCSR_BSS_TYPE_WDS_STA == (pProfile)->BSSType) -#define CSR_IS_WDS(pProfile) (CSR_IS_WDS_AP(pProfile) || \ - CSR_IS_WDS_STA(pProfile)) #define CSR_IS_INFRA_AP(pProfile) (eCSR_BSS_TYPE_INFRA_AP == \ (pProfile)->BSSType) #define CSR_IS_CONN_INFRA_AP(pProfile) (eCSR_BSS_TYPE_INFRA_AP == \ (pProfile)->BSSType) -#define CSR_IS_CONN_WDS_AP(pProfile) (eCSR_BSS_TYPE_WDS_AP == \ - (pProfile)->BSSType) -#define CSR_IS_CONN_WDS_STA(pProfile) (eCSR_BSS_TYPE_WDS_STA == \ - (pProfile)->BSSType) -#define CSR_IS_CONN_WDS(pProfile) (CSR_IS_WDS_AP(pProfile) || \ - CSR_IS_WDS_STA(pProfile)) #define CSR_IS_CLOSE_SESSION_COMMAND(pCommand) \ ((pCommand)->command == eSmeCommandDelStaSession) diff --git a/core/sme/inc/csr_support.h b/core/sme/inc/csr_support.h index c484e6ec67b0..7614b1eae1b8 100644 --- a/core/sme/inc/csr_support.h +++ b/core/sme/inc/csr_support.h @@ -311,7 +311,6 @@ bool csr_is_security_match(tHalHandle hHal, tCsrAuthList *authType, eCsrEncryptionType *negotiatedMCCipher); bool csr_is_bss_type_match(eCsrRoamBssType bssType1, eCsrRoamBssType bssType2); bool csr_is_bss_type_ibss(eCsrRoamBssType bssType); -bool csr_is_bss_type_wds(eCsrRoamBssType bssType); /* * ppIes can be NULL. If caller want to get the *ppIes allocated by * this function, pass in *ppIes = NULL. Caller needs to free the memory diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 8c6f830ab4bc..f22b16d51cfe 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -4152,8 +4152,7 @@ CDF_STATUS csr_roam_set_bss_config_cfg(tpAniSirGlobal pMac, uint32_t sessionId, pBssConfig->uPowerLimit); /* CB */ - if (CSR_IS_INFRA_AP(pProfile) || CSR_IS_WDS_AP(pProfile) - || CSR_IS_IBSS(pProfile)) { + if (CSR_IS_INFRA_AP(pProfile) || CSR_IS_IBSS(pProfile)) { channel = pProfile->operationChannel; } else { if (pBssDesc) { @@ -4214,7 +4213,6 @@ CDF_STATUS csr_roam_stop_network(tpAniSirGlobal pMac, uint32_t sessionId, pSession->bssParams.cbMode = pBssConfig->cbMode; /* For IBSS, we need to prepare some more information */ if (csr_is_bss_type_ibss(pProfile->BSSType) || - CSR_IS_WDS(pProfile) || CSR_IS_INFRA_AP(pProfile)) csr_roam_prepare_bss_params(pMac, sessionId, pProfile, pBssDesc, pBssConfig, pIes); @@ -4249,7 +4247,7 @@ CDF_STATUS csr_roam_stop_network(tpAniSirGlobal pMac, uint32_t sessionId, status = csr_roam_set_bss_config_cfg(pMac, sessionId, pProfile, pBssDesc, pBssConfig, pIes, false); - } else if (pBssDesc || CSR_IS_WDS_AP(pProfile) || + } else if (pBssDesc || CSR_IS_INFRA_AP(pProfile)) { /* * Neither in IBSS nor in Infra. We can go ahead and set @@ -4326,10 +4324,6 @@ eCsrJoinState csr_roam_join(tpAniSirGlobal pMac, uint32_t sessionId, return eCsrStopRoaming; } - if (CSR_IS_WDS_STA(pProfile) && - !CDF_IS_STATUS_SUCCESS(csr_roam_start_wds(pMac, sessionId, - pProfile, pBssDesc))) - return eCsrStopRoaming; if (!pIesLocal && !CDF_IS_STATUS_SUCCESS(csr_get_parsed_bss_description_ies(pMac, pBssDesc, &pIesLocal))) { @@ -4560,7 +4554,6 @@ static void csr_roam_join_handle_profile(tpAniSirGlobal mac_ctx, /* * We have something to roam, tell HDD when it is infra. * For IBSS, the indication goes back to HDD via eCSR_ROAM_IBSS_IND - * For WDS, the indication is eCSR_ROAM_WDS_IND */ if (CSR_IS_INFRASTRUCTURE(profile)) { if (roam_info_ptr && session->bRefAssocStartCnt) { @@ -4685,8 +4678,7 @@ static void csr_roam_join_handle_profile(tpAniSirGlobal mac_ctx, *roam_state = eCsrStopRoaming; } return; - } else if ((CSR_IS_WDS_AP(profile)) || - (CSR_IS_INFRA_AP(profile))) { + } else if (CSR_IS_INFRA_AP(profile)) { /* Attempt to start this WDS... */ csr_roam_assign_default_param(mac_ctx, cmd); /* For AP WDS, we dont have any BSSDescription */ @@ -5772,16 +5764,6 @@ static void csr_roam_process_results_default(tpAniSirGlobal mac_ctx, #endif csr_roam_completion(mac_ctx, session_id, NULL, cmd, eCSR_ROAM_RESULT_FAILURE, false); -#ifdef FEATURE_WLAN_BTAMP_UT_RF - /* - * For WDS STA. To fix the issue where the WDS AP side may - * be too busy by BT activity and not able to receive - * WLAN traffic. Retry the join - */ - if (CSR_IS_WDS_STA(profile)) - csr_roam_start_join_retry_timer(mac_ctx, session_id, - CSR_JOIN_RETRY_TIMEOUT_PERIOD); -#endif break; case eCsrHddIssuedReassocToSameAP: case eCsrSmeIssuedReassocToSameAP: @@ -5937,119 +5919,90 @@ static void csr_roam_process_start_bss_success(tpAniSirGlobal mac_ctx, eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTED; else session->connectState = eCSR_ASSOC_STATE_TYPE_WDS_DISCONNECTED; - if (!CSR_IS_WDS_STA(profile)) { - csr_roam_state_change(mac_ctx, eCSR_ROAMING_STATE_JOINED, + csr_roam_state_change(mac_ctx, eCSR_ROAMING_STATE_JOINED, session_id); - bss_desc = &start_bss_rsp->bssDescription; - if (!CDF_IS_STATUS_SUCCESS - (csr_get_parsed_bss_description_ies(mac_ctx, bss_desc, - &ies_ptr))) { - sms_log(mac_ctx, LOGW, FL("cannot parse IBSS IEs")); - roam_info.pBssDesc = bss_desc; - csr_roam_call_callback(mac_ctx, session_id, &roam_info, - cmd->u.roamCmd.roamId, eCSR_ROAM_IBSS_IND, - eCSR_ROAM_RESULT_IBSS_START_FAILED); - return; - } - if (!CSR_IS_INFRA_AP(profile)) { - scan_res = - csr_scan_append_bss_description(mac_ctx, - bss_desc, ies_ptr, false, - session_id); - } - csr_roam_save_connected_bss_desc(mac_ctx, session_id, bss_desc); - csr_roam_free_connect_profile(mac_ctx, - &session->connectedProfile); - csr_roam_free_connected_info(mac_ctx, - &session->connectedInfo); - if (bss_desc) { - csr_roam_save_connected_infomation(mac_ctx, session_id, - profile, bss_desc, ies_ptr); - cdf_mem_copy(&roam_info.bssid, &bss_desc->bssId, - sizeof(struct cdf_mac_addr)); - } - /* We are done with the IEs so free it */ - cdf_mem_free(ies_ptr); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR - WLAN_HOST_DIAG_LOG_ALLOC(ibss_log, - host_log_ibss_pkt_type, LOG_WLAN_IBSS_C); - if (ibss_log) { - if (CSR_INVALID_SCANRESULT_HANDLE == - cmd->u.roamCmd.hBSSList) { - /* - * We start the IBSS (didn't find any - * matched IBSS out there) - */ - ibss_log->eventId = - WLAN_IBSS_EVENT_START_IBSS_RSP; - } else { - ibss_log->eventId = - WLAN_IBSS_EVENT_JOIN_IBSS_RSP; - } - if (bss_desc) { - cdf_mem_copy(ibss_log->bssid, - bss_desc->bssId, 6); - ibss_log->operatingChannel = - bss_desc->channelId; - } - if (IS_SIR_STATUS_SUCCESS(wlan_cfg_get_int( - mac_ctx, - WNI_CFG_BEACON_INTERVAL, - &bi))) - /* U8 is not enough for BI */ - ibss_log->beaconInterval = (uint8_t) bi; - WLAN_HOST_DIAG_LOG_REPORT(ibss_log); - } -#endif - /* - * Only set context for non-WDS_STA. We don't even need it for - * WDS_AP. But since the encryption. - * is WPA2-PSK so it won't matter. - */ - if (CSR_IS_ENC_TYPE_STATIC(profile->negotiatedUCEncryptionType) - && session->pCurRoamProfile - && !CSR_IS_INFRA_AP(session->pCurRoamProfile)) { - /* - * Issue the set Context request to LIM to establish - * the Broadcast STA context for the Ibss. In Rome IBSS - * case, dummy key installation will break proper BSS - * key installation, so skip it. - */ - if (!CSR_IS_IBSS(session->pCurRoamProfile)) { - /* NO keys. these key parameters don't matter */ - csr_roam_issue_set_context_req(mac_ctx, - session_id, - profile->negotiatedMCEncryptionType, - bss_desc, &bcast_mac, false, - false, eSIR_TX_RX, 0, 0, NULL, 0); - } - - } - } else { - /* - * Keep the state to eCSR_ROAMING_STATE_JOINING. - * Need to send join_req. - */ - if (cmd->u.roamCmd.pRoamBssEntry) { - scan_res = GET_BASE_ADDR(cmd->u.roamCmd. - pRoamBssEntry, tCsrScanResult, Link); - if (scan_res) { - bss_desc = &scan_res->Result.BssDescriptor; - ies_ptr = (tDot11fBeaconIEs *) - (scan_res->Result.pvIes); - /* Set the roaming substate to join attempt */ - csr_roam_substate_change(mac_ctx, - eCSR_ROAM_SUBSTATE_JOIN_REQ, + bss_desc = &start_bss_rsp->bssDescription; + if (!CDF_IS_STATUS_SUCCESS + (csr_get_parsed_bss_description_ies(mac_ctx, bss_desc, + &ies_ptr))) { + sms_log(mac_ctx, LOGW, FL("cannot parse IBSS IEs")); + roam_info.pBssDesc = bss_desc; + csr_roam_call_callback(mac_ctx, session_id, &roam_info, + cmd->u.roamCmd.roamId, eCSR_ROAM_IBSS_IND, + eCSR_ROAM_RESULT_IBSS_START_FAILED); + return; + } + if (!CSR_IS_INFRA_AP(profile)) { + scan_res = + csr_scan_append_bss_description(mac_ctx, + bss_desc, ies_ptr, false, session_id); - status = csr_send_join_req_msg(mac_ctx, - session_id, bss_desc, - profile, ies_ptr, - eWNI_SME_JOIN_REQ); - } + } + csr_roam_save_connected_bss_desc(mac_ctx, session_id, bss_desc); + csr_roam_free_connect_profile(mac_ctx, + &session->connectedProfile); + csr_roam_free_connected_info(mac_ctx, + &session->connectedInfo); + if (bss_desc) { + csr_roam_save_connected_infomation(mac_ctx, session_id, + profile, bss_desc, ies_ptr); + cdf_mem_copy(&roam_info.bssid, &bss_desc->bssId, + sizeof(struct cdf_mac_addr)); + } + /* We are done with the IEs so free it */ + cdf_mem_free(ies_ptr); +#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR + WLAN_HOST_DIAG_LOG_ALLOC(ibss_log, + host_log_ibss_pkt_type, LOG_WLAN_IBSS_C); + if (ibss_log) { + if (CSR_INVALID_SCANRESULT_HANDLE == + cmd->u.roamCmd.hBSSList) { + /* + * We start the IBSS (didn't find any + * matched IBSS out there) + */ + ibss_log->eventId = + WLAN_IBSS_EVENT_START_IBSS_RSP; } else { - sms_log(mac_ctx, LOGE, - "StartBSS for WDS station with no BssDesc"); - CDF_ASSERT(0); + ibss_log->eventId = + WLAN_IBSS_EVENT_JOIN_IBSS_RSP; + } + if (bss_desc) { + cdf_mem_copy(ibss_log->bssid, + bss_desc->bssId, 6); + ibss_log->operatingChannel = + bss_desc->channelId; + } + if (IS_SIR_STATUS_SUCCESS(wlan_cfg_get_int( + mac_ctx, + WNI_CFG_BEACON_INTERVAL, + &bi))) + /* U8 is not enough for BI */ + ibss_log->beaconInterval = (uint8_t) bi; + WLAN_HOST_DIAG_LOG_REPORT(ibss_log); + } +#endif + /* + * Only set context for non-WDS_STA. We don't even need it for + * WDS_AP. But since the encryption. + * is WPA2-PSK so it won't matter. + */ + if (CSR_IS_ENC_TYPE_STATIC(profile->negotiatedUCEncryptionType) + && session->pCurRoamProfile + && !CSR_IS_INFRA_AP(session->pCurRoamProfile)) { + /* + * Issue the set Context request to LIM to establish + * the Broadcast STA context for the Ibss. In Rome IBSS + * case, dummy key installation will break proper BSS + * key installation, so skip it. + */ + if (!CSR_IS_IBSS(session->pCurRoamProfile)) { + /* NO keys. these key parameters don't matter */ + csr_roam_issue_set_context_req(mac_ctx, + session_id, + profile->negotiatedMCEncryptionType, + bss_desc, &bcast_mac, false, + false, eSIR_TX_RX, 0, 0, NULL, 0); } } /* @@ -6061,10 +6014,6 @@ static void csr_roam_process_start_bss_success(tpAniSirGlobal mac_ctx, if (!CSR_IS_JOIN_TO_IBSS(profile)) { roam_status = eCSR_ROAM_IBSS_IND; roam_result = eCSR_ROAM_RESULT_IBSS_STARTED; - if (CSR_IS_WDS(profile)) { - roam_status = eCSR_ROAM_WDS_IND; - roam_result = eCSR_ROAM_RESULT_WDS_STARTED; - } if (CSR_IS_INFRA_AP(profile)) { roam_status = eCSR_ROAM_INFRA_IND; roam_result = eCSR_ROAM_RESULT_INFRA_STARTED; @@ -6099,16 +6048,6 @@ static void csr_roam_process_start_bss_success(tpAniSirGlobal mac_ctx, roam_status, roam_result); } - - if (CSR_IS_WDS_STA(profile)) { - /* need to send stop BSS because we fail to send join_req */ - csr_roam_issue_disassociate_cmd(mac_ctx, session_id, - eCSR_DISCONNECT_REASON_UNSPECIFIED); - csr_roam_call_callback(mac_ctx, session_id, &roam_info, - cmd->u.roamCmd.roamId, - eCSR_ROAM_WDS_IND, - eCSR_ROAM_RESULT_WDS_STOPPED); - } } /** @@ -6595,10 +6534,6 @@ static bool csr_roam_process_results(tpAniSirGlobal mac_ctx, tSmeCmd *cmd, #endif roam_status = eCSR_ROAM_IBSS_IND; roam_result = eCSR_ROAM_RESULT_IBSS_STARTED; - if (CSR_IS_WDS(profile)) { - roam_status = eCSR_ROAM_WDS_IND; - roam_result = eCSR_ROAM_RESULT_WDS_STARTED; - } if (CSR_IS_INFRA_AP(profile)) { roam_status = eCSR_ROAM_INFRA_IND; roam_result = eCSR_ROAM_RESULT_INFRA_START_FAILED; @@ -6681,24 +6616,14 @@ static bool csr_roam_process_results(tpAniSirGlobal mac_ctx, tSmeCmd *cmd, eCSR_ROAM_RESULT_ASSOCIATED, true); break; case eCsrReassocFailure: + /* + * Currently Reassoc failure is handled through eCsrJoinFailure + * Need to revisit for eCsrReassocFailure handling + */ #ifndef WLAN_MDM_CODE_REDUCTION_OPT sme_qos_csr_event_ind(mac_ctx, (uint8_t) session_id, SME_QOS_CSR_REASSOC_FAILURE, NULL); #endif - case eCsrJoinWdsFailure: - sms_log(mac_ctx, LOGW, FL("failed to join WDS")); - csr_free_connect_bss_desc(mac_ctx, session_id); - csr_roam_free_connect_profile(mac_ctx, - &session->connectedProfile); - csr_roam_free_connected_info(mac_ctx, &session->connectedInfo); - cdf_mem_set(&roam_info, sizeof(tCsrRoamInfo), 0); - roam_info.pBssDesc = cmd->u.roamCmd.pLastRoamBss; - roam_info.statusCode = session->joinFailStatusCode.statusCode; - roam_info.reasonCode = session->joinFailStatusCode.reasonCode; - csr_roam_call_callback(mac_ctx, session_id, &roam_info, - cmd->u.roamCmd.roamId, eCSR_ROAM_WDS_IND, - eCSR_ROAM_RESULT_WDS_NOT_ASSOCIATED); - /* Need to issue stop_bss */ break; case eCsrJoinFailure: case eCsrNothingToJoin: @@ -7269,8 +7194,7 @@ CDF_STATUS csr_roam_connect(tpAniSirGlobal pMac, uint32_t sessionId, pScanFilter->bWPSAssociation = 0; pScanFilter->bOSENAssociation = 0; } - if ((pProfile && CSR_IS_WDS_AP(pProfile)) || (pProfile - && CSR_IS_INFRA_AP(pProfile))) { + if (pProfile && CSR_IS_INFRA_AP(pProfile)) { /* This can be started right away */ status = csr_roam_issue_connect(pMac, sessionId, pProfile, NULL, eCsrHddIssued, roamId, false, false); @@ -7605,26 +7529,6 @@ CDF_STATUS csr_roam_process_disassoc_deauth(tpAniSirGlobal pMac, tSmeCmd *pComma eCSR_ROAM_SUBSTATE_DEAUTH_REQ); } fComplete = (!CDF_IS_STATUS_SUCCESS(status)); - } else if (csr_is_conn_state_wds(pMac, sessionId)) { - if (CSR_IS_WDS_AP - (&pMac->roam.roamSession[sessionId].connectedProfile)) { - status = - csr_roam_issue_stop_bss(pMac, sessionId, - eCSR_ROAM_SUBSTATE_STOP_BSS_REQ); - fComplete = (!CDF_IS_STATUS_SUCCESS(status)); - } - /* This has to be WDS station */ - else if (csr_is_conn_state_connected_wds(pMac, sessionId)) { - /* This has to be WDS station */ - pCommand->u.roamCmd.fStopWds = true; - if (fDisassoc) { - status = - csr_roam_issue_disassociate(pMac, sessionId, - eCSR_ROAM_SUBSTATE_DISCONNECT_CONTINUE_ROAMING, - fMICFailure); - fComplete = (!CDF_IS_STATUS_SUCCESS(status)); - } - } } else { /* we got a dis-assoc request while not connected to any peer */ /* just complete the command */ @@ -7791,7 +7695,6 @@ CDF_STATUS csr_roam_disconnect_internal(tpAniSirGlobal pMac, uint32_t sessionId, /* Only issue disconnect when necessary */ if (csr_is_conn_state_connected(pMac, sessionId) || csr_is_bss_type_ibss(pSession->connectedProfile.BSSType) - || csr_is_bss_type_wds(pSession->connectedProfile.BSSType) || csr_is_roam_command_waiting_for_session(pMac, sessionId)) { sms_log(pMac, LOG2, FL("called")); status = csr_roam_issue_disassociate_cmd(pMac, sessionId, @@ -8074,17 +7977,7 @@ static void csr_roam_join_rsp_processor(tpAniSirGlobal pMac, is_dis_pending = is_disconnect_pending(pMac, session_ptr->sessionId); if (pCommand && (session_ptr->join_bssid_count < CSR_MAX_BSSID_COUNT) && !is_dis_pending) { - if (CSR_IS_WDS_STA(&pCommand->u.roamCmd.roamProfile)) { - pCommand->u.roamCmd.fStopWds = true; - session_ptr->connectedProfile.BSSType = - eCSR_BSS_TYPE_WDS_STA; - csr_roam_reissue_roam_command(pMac); - } else if (CSR_IS_WDS(&pCommand->u.roamCmd.roamProfile)) { - session_ptr->join_bssid_count = 0; - csr_roam_complete(pMac, eCsrNothingToJoin, NULL); - } else { - csr_roam(pMac, pCommand); - } + csr_roam(pMac, pCommand); } else { /* **************************************************** * When the upper layers issue a connect command, there @@ -8199,20 +8092,11 @@ void csr_roam_reissue_roam_command(tpAniSirGlobal pMac) roamInfo.pBssDesc = pCommand->u.roamCmd.pLastRoamBss; roamInfo.statusCode = pSession->joinFailStatusCode.statusCode; roamInfo.reasonCode = pSession->joinFailStatusCode.reasonCode; - if (CSR_IS_WDS(&pSession->connectedProfile)) { - pSession->connectState = eCSR_ASSOC_STATE_TYPE_WDS_DISCONNECTED; - csr_roam_call_callback(pMac, sessionId, &roamInfo, - pCommand->u.roamCmd.roamId, - eCSR_ROAM_WDS_IND, - eCSR_ROAM_RESULT_WDS_DISASSOCIATED); - } else if (CSR_IS_INFRA_AP(&pSession->connectedProfile)) { - pSession->connectState = - eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTED; - csr_roam_call_callback(pMac, sessionId, &roamInfo, - pCommand->u.roamCmd.roamId, - eCSR_ROAM_INFRA_IND, - eCSR_ROAM_RESULT_INFRA_DISASSOCIATED); - } + pSession->connectState = eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTED; + csr_roam_call_callback(pMac, sessionId, &roamInfo, + pCommand->u.roamCmd.roamId, + eCSR_ROAM_INFRA_IND, + eCSR_ROAM_RESULT_INFRA_DISASSOCIATED); if (!CDF_IS_STATUS_SUCCESS(csr_roam_issue_stop_bss(pMac, sessionId, eCSR_ROAM_SUBSTATE_STOP_BSS_REQ))) { @@ -8467,7 +8351,6 @@ csr_roaming_state_config_cnf_processor(tpAniSirGlobal mac_ctx, bss_desc = &scan_result->Result.BssDescriptor; } if (csr_is_bss_type_ibss(cmd->u.roamCmd.roamProfile.BSSType) - || CSR_IS_WDS(&cmd->u.roamCmd.roamProfile) || CSR_IS_INFRA_AP(&cmd->u.roamCmd.roamProfile)) { if (!CDF_IS_STATUS_SUCCESS(csr_roam_issue_start_bss(mac_ctx, session_id, &session->bssParams, @@ -9223,12 +9106,6 @@ void csr_roam_joined_state_msg_processor(tpAniSirGlobal pMac, void *pMsgBuf) eCSR_ROAM_INFRA_IND, eCSR_ROAM_RESULT_INFRA_ASSOCIATION_CNF); } - if (CSR_IS_WDS_AP(pRoamInfo->u.pConnectedProfile)) { - cdf_sleep(100); - pMac->roam.roamSession[sessionId].connectState = eCSR_ASSOC_STATE_TYPE_WDS_CONNECTED; /* Sta */ - status = csr_roam_call_callback(pMac, sessionId, pRoamInfo, 0, eCSR_ROAM_WDS_IND, eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND); /* Sta */ - } - } break; default: @@ -9669,15 +9546,7 @@ csr_roam_prepare_filter_from_profile(tpAniSirGlobal mac_ctx, } if (profile->SSIDs.numOfSSIDs) { - if (!CSR_IS_WDS_STA(profile)) { - scan_fltr->SSIDs.numOfSSIDs = profile->SSIDs.numOfSSIDs; - } else { - /* - * For WDS station we always use idx 1 for self SSID. - * Index 0 for peer's SSID that we want to join - */ - scan_fltr->SSIDs.numOfSSIDs = 1; - } + scan_fltr->SSIDs.numOfSSIDs = profile->SSIDs.numOfSSIDs; CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_DEBUG, FL("No of Allowed List:%d"), roam_params->num_ssid_allowed_list); @@ -10083,10 +9952,6 @@ csr_roam_chk_lnk_assoc_ind(tpAniSirGlobal mac_ctx, tSirSmeRsp *msg_ptr) cdf_mem_copy(&roam_info_ptr->chan_info, &pAssocInd->chan_info, sizeof(tSirSmeChanInfo)); - if (CSR_IS_WDS_AP(roam_info_ptr->u.pConnectedProfile)) - status = csr_roam_call_callback(mac_ctx, sessionId, - roam_info_ptr, 0, eCSR_ROAM_WDS_IND, - eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND); if (CSR_IS_INFRA_AP(roam_info_ptr->u.pConnectedProfile)) { if (session->pCurRoamProfile && CSR_IS_ENC_TYPE_STATIC( @@ -10115,10 +9980,7 @@ csr_roam_chk_lnk_assoc_ind(tpAniSirGlobal mac_ctx, tSirSmeRsp *msg_ptr) * send a message to CSR itself just to avoid the EAPOL frames going * OTA before association response */ - if (CSR_IS_WDS_AP(roam_info_ptr->u.pConnectedProfile)) { - status = csr_send_assoc_ind_to_upper_layer_cnf_msg(mac_ctx, - pAssocInd, status, sessionId); - } else if (CSR_IS_INFRA_AP(roam_info_ptr->u.pConnectedProfile) + if (CSR_IS_INFRA_AP(roam_info_ptr->u.pConnectedProfile) && (roam_info_ptr->statusCode != eSIR_SME_ASSOC_REFUSED)) { roam_info_ptr->fReassocReq = pAssocInd->reassocReq; status = csr_send_assoc_ind_to_upper_layer_cnf_msg(mac_ctx, @@ -11668,15 +11530,6 @@ void csr_roam_process_wm_status_change_command(tpAniSirGlobal pMac, pCommand->u.wmStatusChangeCmd.Type); break; } - /* For WDS, we want to stop BSS as well when it is indicated that it is disconnected. */ - if (CSR_IS_CONN_WDS(&pSession->connectedProfile)) { - if (!CDF_IS_STATUS_SUCCESS - (csr_roam_issue_stop_bss_cmd(pMac, pCommand->sessionId, true))) { - /* This is not good */ - sms_log(pMac, LOGE, - FL(" failed to issue stopBSS command")); - } - } /* Lost Link just triggers a roaming sequence. We can complte the Lost Link */ /* command here since there is nothing else to do. */ csr_roam_wm_status_change_complete(pMac); @@ -11854,7 +11707,7 @@ csr_roam_get_phy_mode_band_for_bss(tpAniSirGlobal mac_ctx, * If the global setting for dot11Mode is set to auto/abg, we overwrite * the setting in the profile. */ - if (((!CSR_IS_INFRA_AP(profile) && !CSR_IS_WDS(profile)) + if ((!CSR_IS_INFRA_AP(profile) && ((eCSR_CFG_DOT11_MODE_AUTO == curr_mode) || (eCSR_CFG_DOT11_MODE_ABG == curr_mode))) || (eCSR_CFG_DOT11_MODE_AUTO == cfg_dot11_mode) @@ -12741,37 +12594,21 @@ static void csr_roam_prepare_bss_params(tpAniSirGlobal pMac, uint32_t sessionId, if (pBssDesc) { csr_roam_get_bss_start_parms_from_bss_desc(pMac, pBssDesc, pIes, &pSession->bssParams); - /* Since csr_roam_get_bss_start_parms_from_bss_desc fills in the bssid for pSession->bssParams */ - /* The following code has to be do after that. */ - /* For WDS station, use selfMac as the self BSSID */ - if (CSR_IS_WDS_STA(pProfile)) { - cdf_mem_copy(&pSession->bssParams.bssid, - &pSession->selfMacAddr, - sizeof(struct cdf_mac_addr)); - } } else { csr_roam_get_bss_start_parms(pMac, pProfile, &pSession->bssParams); /* Use the first SSID */ - if (pProfile->SSIDs.numOfSSIDs) { + if (pProfile->SSIDs.numOfSSIDs) cdf_mem_copy(&pSession->bssParams.ssId, pProfile->SSIDs.SSIDList, sizeof(tSirMacSSid)); - } - /* For WDS station, use selfMac as the self BSSID */ - if (CSR_IS_WDS_STA(pProfile)) { - cdf_mem_copy(&pSession->bssParams.bssid, - &pSession->selfMacAddr, - sizeof(struct cdf_mac_addr)); - } - /* Use the first BSSID */ - else if (pProfile->BSSIDs.numOfBSSIDs) { + if (pProfile->BSSIDs.numOfBSSIDs) + /* Use the first BSSID */ cdf_mem_copy(&pSession->bssParams.bssid, pProfile->BSSIDs.bssid, sizeof(struct cdf_mac_addr)); - } else { + else cdf_mem_set(&pSession->bssParams.bssid, sizeof(struct cdf_mac_addr), 0); - } } Channel = pSession->bssParams.operationChn; /* Set operating channel in pProfile which will be used */ @@ -14165,8 +14002,7 @@ CDF_STATUS csr_send_mb_disassoc_req_msg(tpAniSirGlobal pMac, uint32_t sessionId, pMsg->sessionId = sessionId; pMsg->transactionId = 0; if ((pSession->pCurRoamProfile != NULL) - && ((CSR_IS_INFRA_AP(pSession->pCurRoamProfile)) - || (CSR_IS_WDS_AP(pSession->pCurRoamProfile)))) { + && (CSR_IS_INFRA_AP(pSession->pCurRoamProfile))) { cdf_mem_copy(&pMsg->bssId, &pSession->selfMacAddr, sizeof(tSirMacAddr)); @@ -14372,8 +14208,7 @@ CDF_STATUS csr_send_mb_deauth_req_msg(tpAniSirGlobal pMac, uint32_t sessionId, pMsg->transactionId = 0; if ((pSession->pCurRoamProfile != NULL) - && ((CSR_IS_INFRA_AP(pSession->pCurRoamProfile)) - || (CSR_IS_WDS_AP(pSession->pCurRoamProfile)))) { + && (CSR_IS_INFRA_AP(pSession->pCurRoamProfile))) { cdf_mem_copy(&pMsg->bssId, &pSession->selfMacAddr, sizeof(tSirMacAddr)); @@ -14792,18 +14627,9 @@ CDF_STATUS csr_send_mb_stop_bss_req_msg(tpAniSirGlobal pMac, uint32_t sessionId) pMsg->length = sizeof(tSirSmeStopBssReq); pMsg->transactionId = 0; pMsg->reasonCode = 0; - /* - * if BSSType is WDS sta, use selfmacAddr as bssid, - * else use bssid in connectedProfile - */ - if (CSR_IS_CONN_WDS_STA(&pSession->connectedProfile)) - cdf_mem_copy(&pMsg->bssId, - &pSession->selfMacAddr.bytes, - sizeof(tSirMacAddr)); - else - cdf_mem_copy(&pMsg->bssId, - &pSession->connectedProfile.bssid.bytes, - sizeof(tSirMacAddr)); + cdf_mem_copy(&pMsg->bssId, + &pSession->connectedProfile.bssid.bytes, + sizeof(tSirMacAddr)); return cds_send_mb_message_to_mac(pMsg); } diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index 1c3669341d2e..2ca632d2da50 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -2466,14 +2466,6 @@ CDF_STATUS csr_scanning_state_msg_processor(tpAniSirGlobal pMac, eCSR_ROAM_INFRA_IND, eCSR_ROAM_RESULT_INFRA_ASSOCIATION_CNF); } - if (CSR_IS_WDS_AP(pRoamInfo->u.pConnectedProfile)) { - cdf_sleep(100); - pMac->roam.roamSession[sessionId].connectState = - eCSR_ASSOC_STATE_TYPE_WDS_CONNECTED; - status = csr_roam_call_callback(pMac, sessionId, pRoamInfo, 0, - eCSR_ROAM_WDS_IND, - eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND); - } return status; } @@ -4945,9 +4937,7 @@ CDF_STATUS csr_send_mb_scan_req(tpAniSirGlobal pMac, uint16_t sessionId, * mode we need to send out a directed probe */ if ((eSIR_PASSIVE_SCAN != scanType) - && (eCSR_SCAN_P2P_DISCOVERY != - pScanReq->requestType) - && (eCSR_BSS_TYPE_WDS_STA != pScanReq->BSSType) + && (eCSR_SCAN_P2P_DISCOVERY != pScanReq->requestType) && (false == pMac->scan.fEnableBypass11d)) { scanType = pMac->scan.curScanType; if (eSIR_PASSIVE_SCAN == pMac->scan.curScanType) { @@ -6004,10 +5994,6 @@ CDF_STATUS csr_scan_for_ssid(tpAniSirGlobal mac_ctx, uint32_t session_id, sms_log(mac_ctx, LOG2, FL("called")); - /* For WDS, we use the index 0. There must be at least one in there */ - if (CSR_IS_WDS_STA(profile) && num_ssid) - num_ssid = 1; - if (!(mac_ctx->scan.fScanEnable) && (num_ssid != 1)) { sms_log(mac_ctx, LOGE, FL("cannot scan because scanEnable (%d) or numSSID (%d) is invalid"), diff --git a/core/sme/src/csr/csr_inside_api.h b/core/sme/src/csr/csr_inside_api.h index 3896db080f46..3b97ebd26de3 100644 --- a/core/sme/src/csr/csr_inside_api.h +++ b/core/sme/src/csr/csr_inside_api.h @@ -137,7 +137,6 @@ typedef enum { eCsrStartBssFailure, eCsrSilentlyStopRoaming, eCsrSilentlyStopRoamingSaveState, - eCsrJoinWdsFailure, eCsrJoinFailureDueToConcurrency, } eCsrRoamCompleteResult; diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c index a6796d9adc92..d45482d357be 100644 --- a/core/sme/src/csr/csr_util.c +++ b/core/sme/src/csr/csr_util.c @@ -4371,12 +4371,6 @@ bool csr_is_bss_type_ibss(eCsrRoamBssType bssType) || eCSR_BSS_TYPE_IBSS == bssType); } -bool csr_is_bss_type_wds(eCsrRoamBssType bssType) -{ - return (bool) - (eCSR_BSS_TYPE_WDS_STA == bssType - || eCSR_BSS_TYPE_WDS_AP == bssType); -} bool csr_is_bss_type_caps_match(eCsrRoamBssType bssType, tSirBssDescription *pSirBssDesc) @@ -4389,10 +4383,8 @@ bool csr_is_bss_type_caps_match(eCsrRoamBssType bssType, break; case eCSR_BSS_TYPE_INFRASTRUCTURE: - case eCSR_BSS_TYPE_WDS_STA: if (!csr_is_infra_bss_desc(pSirBssDesc)) fMatch = false; - break; case eCSR_BSS_TYPE_IBSS: @@ -4401,8 +4393,6 @@ bool csr_is_bss_type_caps_match(eCsrRoamBssType bssType, fMatch = false; break; - - case eCSR_BSS_TYPE_WDS_AP: /* For WDS AP, no need to match anything */ default: fMatch = false; break; @@ -5317,12 +5307,6 @@ tSirBssType csr_translate_bsstype_to_mac_type(eCsrRoamBssType csrtype) case eCSR_BSS_TYPE_START_IBSS: ret = eSIR_IBSS_MODE; break; - case eCSR_BSS_TYPE_WDS_AP: - ret = eSIR_BTAMP_AP_MODE; - break; - case eCSR_BSS_TYPE_WDS_STA: - ret = eSIR_BTAMP_STA_MODE; - break; case eCSR_BSS_TYPE_INFRA_AP: ret = eSIR_INFRA_AP_MODE; break;