summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Kondabattini <ganeshk@qti.qualcomm.com>2016-08-22 14:55:03 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-08-23 13:10:03 +0530
commitb2fa83d1ecf75e6df74bbfab0cc534492c83aa3f (patch)
treeb5b6643530b5ecfd30825e2e11b00d0b0e56770d
parent6edaadf30cb2bbddd90833c4e01848c00132cc76 (diff)
Revert "qcacld-2.0: Send disconnect indication to upperlayer after clean up in PE layer"
This reverts commit I976044186eb8e79f709bda618b38815827a3e0c5. This change causes regression in disconnect path as HDD is not receiving disconnect indication from the LIM. CRs-Fixed: 1057571 Change-Id: If2d69722f29ba98a6a5aa8c473008f8d684dc366
-rw-r--r--CORE/MAC/inc/sirApi.h9
-rw-r--r--CORE/MAC/inc/wniApi.h1
-rw-r--r--CORE/MAC/src/pe/lim/limAssocUtils.c6
-rw-r--r--CORE/MAC/src/pe/lim/limSendSmeRspMessages.c60
-rw-r--r--CORE/SAP/src/sapApiLinkCntl.c15
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c67
-rw-r--r--CORE/SME/src/csr/csrApiScan.c179
7 files changed, 132 insertions, 205 deletions
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index 0e160fc7c18d..d64582704281 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -1722,15 +1722,6 @@ typedef struct sSirSmeDeauthCnf
tSirMacAddr peerMacAddr;
} tSirSmeDeauthCnf, *tpSirSmeDeauthCnf;
-/* Definition for disconnect done indication */
-typedef struct sSirSmeDisConDoneInd {
- tANI_U16 messageType;
- tANI_U16 length;
- tANI_U8 sessionId;
- tSirResultCodes reasonCode;
- tSirMacAddr peerMacAddr;
-} tSirSmeDisConDoneInd, *tpSirSmeDisConDoneInd;
-
/// Definition for stop BSS request message
typedef struct sSirSmeStopBssReq
{
diff --git a/CORE/MAC/inc/wniApi.h b/CORE/MAC/inc/wniApi.h
index 9dca7ae96b97..ee0e37bfcddb 100644
--- a/CORE/MAC/inc/wniApi.h
+++ b/CORE/MAC/inc/wniApi.h
@@ -114,7 +114,6 @@ enum eWniMsgTypes
eWNI_SME_DEAUTH_REQ,
eWNI_SME_DEAUTH_RSP,
eWNI_SME_DEAUTH_IND,
- eWNI_SME_DISCONNECT_DONE_IND,
eWNI_SME_WM_STATUS_CHANGE_NTF,
eWNI_SME_IBSS_NEW_PEER_IND,
eWNI_SME_IBSS_PEER_DEPARTED_IND,
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index 927a96a7a5a4..1f18d9a5b303 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -774,6 +774,12 @@ limSendDelStaCnf(tpAniSirGlobal pMac, tSirMacAddr staDsAddr,
}
psessionEntry->limAID = 0;
+
+ } else if (
+ (mlmStaContext.cleanupTrigger == eLIM_LINK_MONITORING_DISASSOC) ||
+ (mlmStaContext.cleanupTrigger == eLIM_LINK_MONITORING_DEAUTH)) {
+ /* only for non-STA cases PE/SME is serialized */
+ return;
}
if ((mlmStaContext.cleanupTrigger ==
diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
index 4bc7a6e57d87..5c7aba25569a 100644
--- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
@@ -1517,7 +1517,6 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac,
tANI_U8 *pBuf;
tSirSmeDisassocRsp *pSirSmeDisassocRsp;
tSirSmeDisassocInd *pSirSmeDisassocInd;
- tSirSmeDisConDoneInd *pSirSmeDisConDoneInd;
tANI_U32 *pMsg;
bool failure = false;
@@ -1528,6 +1527,12 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac,
switch (disassocTrigger)
{
+ case eLIM_PEER_ENTITY_DISASSOC:
+ if (reasonCode != eSIR_SME_STA_NOT_ASSOCIATED) {
+ failure = true;
+ goto error;
+ }
+
case eLIM_HOST_DISASSOC:
/**
* Disassociation response due to
@@ -1578,30 +1583,6 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac,
#endif
pMsg = (tANI_U32*) pSirSmeDisassocRsp;
break;
- case eLIM_PEER_ENTITY_DISASSOC:
- case eLIM_LINK_MONITORING_DISASSOC:
- pSirSmeDisConDoneInd =
- vos_mem_malloc(sizeof(tSirSmeDisConDoneInd));
- if ( NULL == pSirSmeDisConDoneInd )
- {
- /* Log error */
- limLog(pMac, LOGP,
- FL("call to AllocateMemory failed for"
- "disconnect indication"));
- return;
- }
- vos_mem_zero(pSirSmeDisConDoneInd, sizeof(tSirSmeDisConDoneInd));
- limLog(pMac, LOG1,
- FL("send eWNI_SME_DISCONNECT_DONE_IND with retCode: %d"),
- reasonCode);
- pSirSmeDisConDoneInd->messageType = eWNI_SME_DISCONNECT_DONE_IND;
- pSirSmeDisConDoneInd->length = sizeof(tSirSmeDisConDoneInd);
- vos_mem_copy(pSirSmeDisConDoneInd->peerMacAddr, peerMacAddr,
- sizeof(tSirMacAddr));
- pSirSmeDisConDoneInd->sessionId = smesessionId;
- pSirSmeDisConDoneInd->reasonCode = reasonCode;
- pMsg = (tANI_U32 *)pSirSmeDisConDoneInd;
- break;
default:
/**
@@ -1999,7 +1980,6 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode
tANI_U8 *pBuf;
tSirSmeDeauthRsp *pSirSmeDeauthRsp;
tSirSmeDeauthInd *pSirSmeDeauthInd;
- tSirSmeDisConDoneInd *pSirSmeDisConDoneInd;
tpPESession psessionEntry;
tANI_U8 sessionId;
tANI_U32 *pMsg;
@@ -2007,6 +1987,9 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode
psessionEntry = peFindSessionByBssid(pMac,peerMacAddr,&sessionId);
switch (deauthTrigger)
{
+ case eLIM_PEER_ENTITY_DEAUTH:
+ return;
+
case eLIM_HOST_DEAUTH:
/**
* Deauthentication response to host triggered
@@ -2041,31 +2024,6 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode
break;
- case eLIM_PEER_ENTITY_DEAUTH:
- case eLIM_LINK_MONITORING_DEAUTH:
- pSirSmeDisConDoneInd =
- vos_mem_malloc(sizeof(tSirSmeDisConDoneInd));
- if ( NULL == pSirSmeDisConDoneInd )
- {
- /* Log error */
- limLog(pMac, LOGP,
- FL("call to AllocateMemory failed for"
- "disconnect indication"));
- return;
- }
-
- vos_mem_zero(pSirSmeDisConDoneInd, sizeof(tSirSmeDisConDoneInd));
- limLog(pMac, LOG1,
- FL("send eWNI_SME_DISCONNECT_DONE_IND withretCode: %d"),
- reasonCode);
- pSirSmeDisConDoneInd->messageType = eWNI_SME_DISCONNECT_DONE_IND;
- pSirSmeDisConDoneInd->length = sizeof(tSirSmeDisConDoneInd);
- pSirSmeDisConDoneInd->sessionId = smesessionId;
- pSirSmeDisConDoneInd->reasonCode = reasonCode;
- pMsg = (tANI_U32 *)pSirSmeDisConDoneInd;
-
- break;
-
default:
/**
* Deauthentication indication due to Deauthentication
diff --git a/CORE/SAP/src/sapApiLinkCntl.c b/CORE/SAP/src/sapApiLinkCntl.c
index 5f34feb9e594..92d0e8f16ce3 100644
--- a/CORE/SAP/src/sapApiLinkCntl.c
+++ b/CORE/SAP/src/sapApiLinkCntl.c
@@ -876,7 +876,6 @@ WLANSAP_RoamCallback
}
break;
- case eCSR_ROAM_RESULT_DEAUTH_IND:
case eCSR_ROAM_RESULT_DISASSOC_IND:
VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH,
FL("CSR roamResult = %s (%d)"),
@@ -890,6 +889,20 @@ WLANSAP_RoamCallback
}
break;
+ case eCSR_ROAM_RESULT_DEAUTH_IND:
+ VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH,
+ FL("CSR roamResult = %s (%d)"),
+ "eCSR_ROAM_RESULT_DEAUTH_IND",
+ roamResult);
+ /* Fill in the event structure */
+ //TODO: we will use the same event inorder to inform HDD to disassociate the station
+ vosStatus = sapSignalHDDevent( sapContext, pCsrRoamInfo, eSAP_STA_DISASSOC_EVENT, (v_PVOID_t)eSAP_STATUS_SUCCESS);
+ if(!VOS_IS_STATUS_SUCCESS(vosStatus))
+ {
+ halStatus = eHAL_STATUS_FAILURE;
+ }
+ break;
+
case eCSR_ROAM_RESULT_MIC_ERROR_GROUP:
VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH,
FL("CSR roamResult = %s (%d)"),
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 01043d3bb57a..468c00c59cbd 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -10321,7 +10321,6 @@ void csrRoamCheckForLinkStatusChange( tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg )
tSirSmeAssocInd *pAssocInd;
tSirSmeDisassocInd *pDisassocInd;
tSirSmeDeauthInd *pDeauthInd;
- tSirSmeDisConDoneInd *pDisConDoneInd;
tSirSmeWmStatusChangeNtf *pStatusChangeMsg;
tSirSmeNewBssInfo *pNewBss;
tSmeIbssPeerInd *pIbssPeerInd;
@@ -10486,6 +10485,22 @@ void csrRoamCheckForLinkStatusChange( tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg )
csrRoamIssueWmStatusChange( pMac, sessionId, eCsrDisassociated, pSirMsg );
if(CSR_IS_INFRA_AP(&pSession->connectedProfile))
{
+
+ pRoamInfo = &roamInfo;
+
+ pRoamInfo->statusCode = pDisassocInd->statusCode;
+ pRoamInfo->reasonCode = pDisassocInd->reasonCode;
+ pRoamInfo->u.pConnectedProfile = &pSession->connectedProfile;
+
+ pRoamInfo->staId = (tANI_U8)pDisassocInd->staId;
+
+ vos_mem_copy(pRoamInfo->peerMac, pDisassocInd->peerMacAddr,
+ sizeof(tSirMacAddr));
+ vos_mem_copy(&pRoamInfo->bssid, pDisassocInd->bssId,
+ sizeof(tCsrBssid));
+
+ status = csrRoamCallCallback(pMac, sessionId, pRoamInfo, 0, eCSR_ROAM_INFRA_IND, eCSR_ROAM_RESULT_DISASSOC_IND);
+
/*
* STA/P2P client got disassociated so remove any pending deauth
* commands in sme pending list
@@ -10553,30 +10568,24 @@ void csrRoamCheckForLinkStatusChange( tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg )
#endif
csrRoamLinkDown(pMac, sessionId);
csrRoamIssueWmStatusChange( pMac, sessionId, eCsrDeauthenticated, pSirMsg );
- }
- break;
+ if(CSR_IS_INFRA_AP(&pSession->connectedProfile))
+ {
- case eWNI_SME_DISCONNECT_DONE_IND:
- pDisConDoneInd = (tSirSmeDisConDoneInd *)(pSirMsg);
- smsLog( pMac, LOG1,
- FL("eWNI_SME_DISCONNECT_DONE_IND RC:%d"),
- pDisConDoneInd->reasonCode);
- if( CSR_IS_SESSION_VALID(pMac, pDisConDoneInd->sessionId))
- {
- roamInfo.reasonCode = pDisConDoneInd->reasonCode;
- roamInfo.statusCode = eSIR_SME_STA_DISASSOCIATED;
- vos_mem_copy(roamInfo.peerMac, pDisConDoneInd->peerMacAddr,
- sizeof(tSirMacAddr));
- status = csrRoamCallCallback(pMac,
- pDisConDoneInd->sessionId,
- &roamInfo, 0,
- eCSR_ROAM_LOSTLINK,
- eCSR_ROAM_RESULT_DISASSOC_IND);
- }
- else
- {
- smsLog(pMac, LOGE, FL("Inactive session %d"),
- pDisConDoneInd->sessionId);
+ pRoamInfo = &roamInfo;
+
+ pRoamInfo->statusCode = pDeauthInd->statusCode;
+ pRoamInfo->reasonCode = pDeauthInd->reasonCode;
+ pRoamInfo->u.pConnectedProfile = &pSession->connectedProfile;
+
+ pRoamInfo->staId = (tANI_U8)pDeauthInd->staId;
+
+ vos_mem_copy(pRoamInfo->peerMac, pDeauthInd->peerMacAddr,
+ sizeof(tSirMacAddr));
+ vos_mem_copy(&pRoamInfo->bssid, pDeauthInd->bssId,
+ sizeof(tCsrBssid));
+
+ status = csrRoamCallCallback(pMac, sessionId, pRoamInfo, 0, eCSR_ROAM_INFRA_IND, eCSR_ROAM_RESULT_DEAUTH_IND);
+ }
}
break;
@@ -11762,6 +11771,16 @@ eHalStatus csrRoamLostLink( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 ty
}
if(!fToRoam)
{
+ //Tell HDD about the lost link
+ if(!CSR_IS_INFRA_AP(&pSession->connectedProfile))
+ {
+ /* Don't call csrRoamCallCallback for GO/SoftAp case as this indication
+ * was already given as part of eWNI_SME_DISASSOC_IND msg handling in
+ * csrRoamCheckForLinkStatusChange API.
+ */
+ csrRoamCallCallback(pMac, sessionId, &roamInfo, 0, eCSR_ROAM_LOSTLINK, result);
+ }
+
/*No need to start idle scan in case of IBSS/SAP
Still enable idle scan for polling in case concurrent sessions are running */
if(CSR_IS_INFRASTRUCTURE(&pSession->connectedProfile))
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index ea0623441675..580fe09fd89e 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -2855,138 +2855,79 @@ eHalStatus csrScanningStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf )
{
eHalStatus status = eHAL_STATUS_SUCCESS;
tSirMbMsg *pMsg = (tSirMbMsg *)pMsgBuf;
- tSirSmeDisConDoneInd *pDisConDoneInd;
- tCsrRoamInfo roamInfo = {0};
- if ((eWNI_SME_SCAN_RSP == pMsg->type) ||
- (eWNI_SME_GET_SCANNED_CHANNEL_RSP == pMsg->type))
+ if((eWNI_SME_SCAN_RSP == pMsg->type) || (eWNI_SME_GET_SCANNED_CHANNEL_RSP == pMsg->type))
{
status = csrScanSmeScanResponse( pMac, pMsgBuf );
}
else
{
- switch (pMsg->type) {
- case eWNI_SME_UPPER_LAYER_ASSOC_CNF:
- {
- tCsrRoamSession *pSession;
- tSirSmeAssocIndToUpperLayerCnf *pUpperLayerAssocCnf;
- tCsrRoamInfo *pRoamInfo = NULL;
- tANI_U32 sessionId;
- eHalStatus status;
- smsLog(pMac, LOG1,
- FL("Scanning : ASSOCIATION confirmation can be given to upper layer "));
- pRoamInfo = &roamInfo;
- pUpperLayerAssocCnf =
- (tSirSmeAssocIndToUpperLayerCnf *)pMsgBuf;
- status = csrRoamGetSessionIdFromBSSID( pMac,
- (tCsrBssid *)pUpperLayerAssocCnf->bssId,
- &sessionId );
- pSession = CSR_GET_SESSION(pMac, sessionId);
- if(!pSession)
- {
- smsLog(pMac, LOGE,
- FL(" session %d not found "), sessionId);
- return eHAL_STATUS_FAILURE;
- }
- //send the status code as Success
- pRoamInfo->statusCode = eSIR_SME_SUCCESS;
- pRoamInfo->u.pConnectedProfile =
- &pSession->connectedProfile;
- pRoamInfo->staId = (tANI_U8)pUpperLayerAssocCnf->aid;
- pRoamInfo->rsnIELen =
- (tANI_U8)pUpperLayerAssocCnf->rsnIE.length;
- pRoamInfo->prsnIE =
- pUpperLayerAssocCnf->rsnIE.rsnIEdata;
- pRoamInfo->addIELen =
- (tANI_U8)pUpperLayerAssocCnf->addIE.length;
- pRoamInfo->paddIE =
- pUpperLayerAssocCnf->addIE.addIEdata;
- vos_mem_copy(pRoamInfo->peerMac,
- pUpperLayerAssocCnf->peerMacAddr,
- sizeof(tSirMacAddr));
- vos_mem_copy(&pRoamInfo->bssid,
- pUpperLayerAssocCnf->bssId,
- sizeof(tCsrBssid));
- pRoamInfo->wmmEnabledSta =
- pUpperLayerAssocCnf->wmmEnabledSta;
- if (CSR_IS_INFRA_AP(pRoamInfo->u.pConnectedProfile))
- {
- pMac->roam.roamSession[sessionId].connectState =
- eCSR_ASSOC_STATE_TYPE_INFRA_CONNECTED;
- pRoamInfo->fReassocReq =
- pUpperLayerAssocCnf->reassocReq;
- status = csrRoamCallCallback(pMac, sessionId,
- pRoamInfo, 0,
- eCSR_ROAM_INFRA_IND,
- eCSR_ROAM_RESULT_INFRA_ASSOCIATION_CNF);
- }
- if(CSR_IS_WDS_AP( pRoamInfo->u.pConnectedProfile))
- {
- vos_sleep( 100 );
- pMac->roam.roamSession[sessionId].connectState =
- //Sta
- eCSR_ASSOC_STATE_TYPE_WDS_CONNECTED;
- status = csrRoamCallCallback(pMac,
- sessionId, pRoamInfo, 0,
- eCSR_ROAM_WDS_IND,
- //Sta
- eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND);
- }
- break;
- }
- case eWNI_SME_DISCONNECT_DONE_IND:
- pDisConDoneInd = (tSirSmeDisConDoneInd *)(pMsg);
-
- smsLog( pMac, LOG1,
- FL("eWNI_SME_DISCONNECT_DONE_IND RC:%d"),
- pDisConDoneInd->reasonCode);
- if (CSR_IS_SESSION_VALID(pMac,
- pDisConDoneInd->sessionId))
- {
- roamInfo.reasonCode =
- pDisConDoneInd->reasonCode;
- roamInfo.statusCode =
- eSIR_SME_STA_DISASSOCIATED;
- vos_mem_copy(roamInfo.peerMac,
- pDisConDoneInd->peerMacAddr,
- sizeof(tSirMacAddr));
- status = csrRoamCallCallback(pMac,
- pDisConDoneInd->sessionId,
- &roamInfo, 0,
- eCSR_ROAM_LOSTLINK,
- eCSR_ROAM_RESULT_DISASSOC_IND);
- }
- else
- {
- smsLog(pMac, LOGE, FL("Inactive session %d"),
- pDisConDoneInd->sessionId);
- status = eHAL_STATUS_FAILURE;
- }
- break;
+ if(pMsg->type == eWNI_SME_UPPER_LAYER_ASSOC_CNF)
+ {
+ tCsrRoamSession *pSession;
+ tSirSmeAssocIndToUpperLayerCnf *pUpperLayerAssocCnf;
+ tCsrRoamInfo roamInfo;
+ tCsrRoamInfo *pRoamInfo = NULL;
+ tANI_U32 sessionId;
+ eHalStatus status;
+ smsLog( pMac, LOG1, FL("Scanning : ASSOCIATION confirmation can be given to upper layer "));
+ vos_mem_set(&roamInfo, sizeof(tCsrRoamInfo), 0);
+ pRoamInfo = &roamInfo;
+ pUpperLayerAssocCnf = (tSirSmeAssocIndToUpperLayerCnf *)pMsgBuf;
+ status = csrRoamGetSessionIdFromBSSID( pMac, (tCsrBssid *)pUpperLayerAssocCnf->bssId, &sessionId );
+ pSession = CSR_GET_SESSION(pMac, sessionId);
- default :
- if (csrIsAnySessionInConnectState(pMac))
- {
- /*In case of we are connected, we need to check whether
- * connect status changes because scan may also run while
- * connected.
- */
- csrRoamCheckForLinkStatusChange( pMac,
- (tSirSmeRsp *)pMsgBuf );
- }
- else
- {
- smsLog( pMac, LOGW,
- "Message [0x%04x] received in state, when expecting Scan Response",
- pMsg->type );
+ if(!pSession)
+ {
+ smsLog(pMac, LOGE, FL(" session %d not found "), sessionId);
+ return eHAL_STATUS_FAILURE;
+ }
- }
- }
+ pRoamInfo->statusCode = eSIR_SME_SUCCESS; //send the status code as Success
+ pRoamInfo->u.pConnectedProfile = &pSession->connectedProfile;
+ pRoamInfo->staId = (tANI_U8)pUpperLayerAssocCnf->aid;
+ pRoamInfo->rsnIELen = (tANI_U8)pUpperLayerAssocCnf->rsnIE.length;
+ pRoamInfo->prsnIE = pUpperLayerAssocCnf->rsnIE.rsnIEdata;
+ pRoamInfo->addIELen = (tANI_U8)pUpperLayerAssocCnf->addIE.length;
+ pRoamInfo->paddIE = pUpperLayerAssocCnf->addIE.addIEdata;
+ vos_mem_copy(pRoamInfo->peerMac, pUpperLayerAssocCnf->peerMacAddr, sizeof(tSirMacAddr));
+ vos_mem_copy(&pRoamInfo->bssid, pUpperLayerAssocCnf->bssId, sizeof(tCsrBssid));
+ pRoamInfo->wmmEnabledSta = pUpperLayerAssocCnf->wmmEnabledSta;
+ if(CSR_IS_INFRA_AP(pRoamInfo->u.pConnectedProfile) )
+ {
+ pMac->roam.roamSession[sessionId].connectState = eCSR_ASSOC_STATE_TYPE_INFRA_CONNECTED;
+ pRoamInfo->fReassocReq = pUpperLayerAssocCnf->reassocReq;
+ status = csrRoamCallCallback(pMac, sessionId, pRoamInfo, 0, eCSR_ROAM_INFRA_IND, eCSR_ROAM_RESULT_INFRA_ASSOCIATION_CNF);
+ }
+ if(CSR_IS_WDS_AP( pRoamInfo->u.pConnectedProfile))
+ {
+ vos_sleep( 100 );
+ pMac->roam.roamSession[sessionId].connectState = eCSR_ASSOC_STATE_TYPE_WDS_CONNECTED;//Sta
+ status = csrRoamCallCallback(pMac, sessionId, pRoamInfo, 0, eCSR_ROAM_WDS_IND, eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND);//Sta
+ }
+
+ }
+ else
+ {
+
+ if( csrIsAnySessionInConnectState( pMac ) )
+ {
+ //In case of we are connected, we need to check whether connect status changes
+ //because scan may also run while connected.
+ csrRoamCheckForLinkStatusChange( pMac, ( tSirSmeRsp * )pMsgBuf );
+ }
+ else
+ {
+ smsLog( pMac, LOGW, "Message [0x%04x] received in state, when expecting Scan Response", pMsg->type );
+ }
+ }
}
return (status);
}
+
+
void csrCheckNSaveWscIe(tpAniSirGlobal pMac, tSirBssDescription *pNewBssDescr, tSirBssDescription *pOldBssDescr)
{
int idx, len;