qcacld-3.0: BT AMP Cleanup in CSR
Remove unused BT AMP code from CSR module Change-Id: I12ee3940ed8b9b4f50faffbed4ad949730cb1297 CRs-Fixed: 926965
This commit is contained in:

committed by
Satish Singh

parent
22b59a7689
commit
ee029ad052
@@ -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)
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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"),
|
||||
|
@@ -137,7 +137,6 @@ typedef enum {
|
||||
eCsrStartBssFailure,
|
||||
eCsrSilentlyStopRoaming,
|
||||
eCsrSilentlyStopRoamingSaveState,
|
||||
eCsrJoinWdsFailure,
|
||||
eCsrJoinFailureDueToConcurrency,
|
||||
|
||||
} eCsrRoamCompleteResult;
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user