diff options
| author | Madan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com> | 2013-10-29 17:38:25 -0700 |
|---|---|---|
| committer | Madan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com> | 2013-10-29 17:38:25 -0700 |
| commit | 55bb80fbb6febaf79f3b413cc037abe45b4fe3d3 (patch) | |
| tree | afc5ee706691cf71d69eba18e812f555046e8608 /CORE/MAC/src | |
| parent | dfd5eb5ff4238b64a812533c0c6db51f1b431817 (diff) | |
cld: umac: Roaming feature umac common code changes
LIM/PE
Don't flush scan cache when starting a new scan.
Return results from scan cache and LFR cache when a roaming
scan finishes.
Added flags to indicate reassoc request for WDA_ADD_BSS_REQ
Change-Id: I2fb6ebff82e0dcec929ae7a3653eddb4aa71c528
CRs-fixed: 562120
Diffstat (limited to 'CORE/MAC/src')
| -rw-r--r-- | CORE/MAC/src/pe/lim/limFT.c | 220 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limLogDump.c | 286 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limRoamingAlgo.c | 52 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limSendSmeRspMessages.c | 384 |
4 files changed, 516 insertions, 426 deletions
diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c index ca206b2f9add..c611571473f8 100644 --- a/CORE/MAC/src/pe/lim/limFT.c +++ b/CORE/MAC/src/pe/lim/limFT.c @@ -27,13 +27,13 @@ #ifdef WLAN_FEATURE_VOWIFI_11R /**========================================================================= - - \brief implementation for PE 11r VoWiFi FT Protocol - + + \brief implementation for PE 11r VoWiFi FT Protocol + Copyright 2008 (c) Qualcomm Technologies, Inc. All Rights Reserved. - + Qualcomm Technologies Confidential and Proprietary. - + ========================================================================*/ /* $Header$ */ @@ -59,7 +59,7 @@ #define LIM_FT_RIC_DESCRIPTOR_MAX_VAR_DATA_LEN 255 /*-------------------------------------------------------------------------- - Initialize the FT variables. + Initialize the FT variables. ------------------------------------------------------------------------*/ void limFTOpen(tpAniSirGlobal pMac) { @@ -68,15 +68,15 @@ void limFTOpen(tpAniSirGlobal pMac) } /*-------------------------------------------------------------------------- - Cleanup FT variables. + Cleanup FT variables. ------------------------------------------------------------------------*/ void limFTCleanup(tpAniSirGlobal pMac) { - if (pMac->ft.ftPEContext.pFTPreAuthReq) + if (pMac->ft.ftPEContext.pFTPreAuthReq) { #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Freeing pFTPreAuthReq= %p", - __func__, pMac->ft.ftPEContext.pFTPreAuthReq);) + __func__, pMac->ft.ftPEContext.pFTPreAuthReq);) #endif if (pMac->ft.ftPEContext.pFTPreAuthReq->pbssDescription) { @@ -93,7 +93,7 @@ void limFTCleanup(tpAniSirGlobal pMac) { #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Setting psavedsessionEntry= %p to NULL", - __func__, pMac->ft.ftPEContext.psavedsessionEntry);) + __func__, pMac->ft.ftPEContext.psavedsessionEntry);) #endif pMac->ft.ftPEContext.psavedsessionEntry = NULL; } @@ -111,7 +111,7 @@ void limFTCleanup(tpAniSirGlobal pMac) pMac->ft.ftPEContext.pftSessionEntry = NULL; #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Setting psavedsessionEntry= %p to NULL", - __func__, pMac->ft.ftPEContext.psavedsessionEntry);) + __func__, pMac->ft.ftPEContext.psavedsessionEntry);) #endif } @@ -127,20 +127,20 @@ void limFTCleanup(tpAniSirGlobal pMac) pMac->ft.ftPEContext.pAddStaReq = NULL; } - pMac->ft.ftPEContext.ftPreAuthStatus = eSIR_SUCCESS; + pMac->ft.ftPEContext.ftPreAuthStatus = eSIR_SUCCESS; } /*-------------------------------------------------------------------------- - Init FT variables. + Init FT variables. ------------------------------------------------------------------------*/ void limFTInit(tpAniSirGlobal pMac) { - if (pMac->ft.ftPEContext.pFTPreAuthReq) + if (pMac->ft.ftPEContext.pFTPreAuthReq) { #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Freeing pFTPreAuthReq= %p", - __func__, pMac->ft.ftPEContext.pFTPreAuthReq);) + __func__, pMac->ft.ftPEContext.pFTPreAuthReq);) #endif if (pMac->ft.ftPEContext.pFTPreAuthReq->pbssDescription) { @@ -158,7 +158,7 @@ void limFTInit(tpAniSirGlobal pMac) { #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Setting psavedsessionEntry= %p to NULL", - __func__, pMac->ft.ftPEContext.psavedsessionEntry);) + __func__, pMac->ft.ftPEContext.psavedsessionEntry);) #endif pMac->ft.ftPEContext.psavedsessionEntry = NULL; } @@ -170,7 +170,7 @@ void limFTInit(tpAniSirGlobal pMac) /* Cannot delete sessions across associations */ #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Deleting session = %p ", - __func__, pMac->ft.ftPEContext.pftSessionEntry);) + __func__, pMac->ft.ftPEContext.pftSessionEntry);) #endif pMac->ft.ftPEContext.pftSessionEntry = NULL; } @@ -179,7 +179,7 @@ void limFTInit(tpAniSirGlobal pMac) { #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Freeing AddBssReq = %p ", - __func__, pMac->ft.ftPEContext.pAddBssReq);) + __func__, pMac->ft.ftPEContext.pAddBssReq);) #endif vos_mem_free(pMac->ft.ftPEContext.pAddBssReq); pMac->ft.ftPEContext.pAddBssReq = NULL; @@ -190,18 +190,18 @@ void limFTInit(tpAniSirGlobal pMac) { #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "%s: Freeing AddStaReq = %p ", - __func__, pMac->ft.ftPEContext.pAddStaReq);) + __func__, pMac->ft.ftPEContext.pAddStaReq);) #endif vos_mem_free(pMac->ft.ftPEContext.pAddStaReq); pMac->ft.ftPEContext.pAddStaReq = NULL; } - pMac->ft.ftPEContext.ftPreAuthStatus = eSIR_SUCCESS; + pMac->ft.ftPEContext.ftPreAuthStatus = eSIR_SUCCESS; } /*------------------------------------------------------------------ - * + * * This is the handler after suspending the link. * We suspend the link and then now proceed to switch channel. * @@ -209,9 +209,9 @@ void limFTInit(tpAniSirGlobal pMac) void FTPreAuthSuspendLinkHandler(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data) { tpPESession psessionEntry; - + // The link is suspended of not ? - if (status != eHAL_STATUS_SUCCESS) + if (status != eHAL_STATUS_SUCCESS) { PELOGE(limLog( pMac, LOGE, "%s: Returning ", __func__);) // Post the FT Pre Auth Response to SME @@ -225,7 +225,7 @@ void FTPreAuthSuspendLinkHandler(tpAniSirGlobal pMac, eHalStatus status, tANI_U3 // Perform some sanity check before proceeding. if ((pMac->ft.ftPEContext.pFTPreAuthReq) && psessionEntry) { - limChangeChannelWithCallback(pMac, + limChangeChannelWithCallback(pMac, pMac->ft.ftPEContext.pFTPreAuthReq->preAuthchannelNum, limPerformFTPreAuth, NULL, psessionEntry); return; @@ -268,7 +268,7 @@ int limProcessFTPreAuthReq(tpAniSirGlobal pMac, tpSirMsgQ pMsg) #endif // Get the current session entry - psessionEntry = peFindSessionByBssid(pMac, + psessionEntry = peFindSessionByBssid(pMac, pMac->ft.ftPEContext.pFTPreAuthReq->currbssId, &sessionId); if (psessionEntry == NULL) { @@ -277,20 +277,20 @@ int limProcessFTPreAuthReq(tpAniSirGlobal pMac, tpSirMsgQ pMsg) limPrintMacAddr( pMac, pMac->ft.ftPEContext.pFTPreAuthReq->currbssId, LOGE ); // Post the FT Pre Auth Response to SME limPostFTPreAuthRsp(pMac, eSIR_FAILURE, NULL, 0, NULL); - pMac->ft.ftPEContext.pFTPreAuthReq = NULL; + pMac->ft.ftPEContext.pFTPreAuthReq = NULL; return TRUE; } // Dont need to suspend if APs are in same channel - if (psessionEntry->currentOperChannel != pMac->ft.ftPEContext.pFTPreAuthReq->preAuthchannelNum) + if (psessionEntry->currentOperChannel != pMac->ft.ftPEContext.pFTPreAuthReq->preAuthchannelNum) { // Need to suspend link only if the channels are different PELOG2(limLog(pMac,LOG2,"%s: Performing pre-auth on different" " channel (session %p)", __func__, psessionEntry);) - limSuspendLink(pMac, eSIR_CHECK_ROAMING_SCAN, FTPreAuthSuspendLinkHandler, - (tANI_U32 *)psessionEntry); + limSuspendLink(pMac, eSIR_CHECK_ROAMING_SCAN, FTPreAuthSuspendLinkHandler, + (tANI_U32 *)psessionEntry); } - else + else { PELOG2(limLog(pMac,LOG2,"%s: Performing pre-auth on same" " channel (session %p)", __func__, psessionEntry);) @@ -302,10 +302,10 @@ int limProcessFTPreAuthReq(tpAniSirGlobal pMac, tpSirMsgQ pMsg) } /*------------------------------------------------------------------ - * Send the Auth1 + * Send the Auth1 * Receive back Auth2 *------------------------------------------------------------------*/ -void limPerformFTPreAuth(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, +void limPerformFTPreAuth(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, tpPESession psessionEntry) { tSirMacAuthFrameBody authFrame; @@ -313,13 +313,13 @@ void limPerformFTPreAuth(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, if (psessionEntry->is11Rconnection) { // Only 11r assoc has FT IEs. - if (pMac->ft.ftPEContext.pFTPreAuthReq->ft_ies == NULL) + if (pMac->ft.ftPEContext.pFTPreAuthReq->ft_ies == NULL) { PELOGE(limLog( pMac, LOGE, "%s: FTIEs for Auth Req Seq 1 is absent");) return; } } - if (status != eHAL_STATUS_SUCCESS) + if (status != eHAL_STATUS_SUCCESS) { PELOGE(limLog( pMac, LOGE, "%s: Change channel not successful for FT pre-auth");) return; @@ -335,7 +335,7 @@ void limPerformFTPreAuth(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, if (psessionEntry->is11Rconnection) { - // Now we are on the right channel and need to send out Auth1 and + // Now we are on the right channel and need to send out Auth1 and // receive Auth2. authFrame.authAlgoNumber = eSIR_FT_AUTH; // Set the auth type to FT } @@ -344,7 +344,7 @@ void limPerformFTPreAuth(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, { // Will need to make isCCXconnection a enum may be for further // improvements to this to match this algorithm number - authFrame.authAlgoNumber = eSIR_OPEN_SYSTEM; // For now if its CCX and 11r FT. + authFrame.authAlgoNumber = eSIR_OPEN_SYSTEM; // For now if its CCX and 11r FT. } #endif authFrame.authTransactionSeqNumber = SIR_MAC_AUTH_FRAME_1; @@ -379,8 +379,8 @@ MTRACE(macTrace(pMac, TRACE_CODE_TIMER_ACTIVATE, psessionEntry->peSessionId, eLI * The newly created ft Session entry is passed to this function * *------------------------------------------------------------------*/ -tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, - tANI_U8 updateEntry, tpPESession pftSessionEntry, +tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, + tANI_U8 updateEntry, tpPESession pftSessionEntry, tpSirBssDescription bssDescription ) { tpAddBssParams pAddBssParams = NULL; @@ -388,7 +388,7 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, tANI_U8 chanWidthSupp = 0; tSchBeaconStruct *pBeaconStruct; - if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd, + if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd, (void **)&pBeaconStruct, sizeof(tSchBeaconStruct))) { limLog(pMac, LOGE, FL("Unable to PAL allocate memory for creating ADD_BSS") ); @@ -404,7 +404,7 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, FL( "Unable to PAL allocate memory for creating ADD_BSS" )); return (eSIR_MEM_ALLOC_FAILED); } - + palZeroMemory( pMac->hHdd, (tANI_U8 *) pAddBssParams, sizeof( tAddBssParams )); @@ -426,10 +426,10 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pAddBssParams->operMode = BSS_OPERATIONAL_MODE_STA; pAddBssParams->beaconInterval = bssDescription->beaconInterval; - + pAddBssParams->dtimPeriod = pBeaconStruct->tim.dtimPeriod; pAddBssParams->updateBss = updateEntry; - + pAddBssParams->reassocReq = true; pAddBssParams->cfParamSet.cfpCount = pBeaconStruct->cfParamSet.cfpCount; pAddBssParams->cfParamSet.cfpPeriod = pBeaconStruct->cfParamSet.cfpPeriod; @@ -442,8 +442,8 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pBeaconStruct->supportedRates.rate, pBeaconStruct->supportedRates.numRates ); pAddBssParams->nwType = bssDescription->nwType; - - pAddBssParams->shortSlotTimeSupported = (tANI_U8)pBeaconStruct->capabilityInfo.shortSlotTime; + + pAddBssParams->shortSlotTimeSupported = (tANI_U8)pBeaconStruct->capabilityInfo.shortSlotTime; pAddBssParams->llaCoexist = (tANI_U8) pftSessionEntry->beaconParams.llaCoexist; pAddBssParams->llbCoexist = (tANI_U8) pftSessionEntry->beaconParams.llbCoexist; pAddBssParams->llgCoexist = (tANI_U8) pftSessionEntry->beaconParams.llgCoexist; @@ -516,7 +516,7 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, else { pAddBssParams->staContext.txChannelWidthSet = WNI_CFG_CHANNEL_BONDING_MODE_DISABLE; - } + } pAddBssParams->staContext.mimoPS = (tSirMacHTMIMOPowerSaveState)pBeaconStruct->HTCaps.mimoPowerSave; pAddBssParams->staContext.delBASupport = ( tANI_U8 ) pBeaconStruct->HTCaps.delayedBA; pAddBssParams->staContext.maxAmsduSize = ( tANI_U8 ) pBeaconStruct->HTCaps.maximalAMSDUsize; @@ -525,7 +525,7 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pAddBssParams->staContext.fShortGI20Mhz = (tANI_U8)pBeaconStruct->HTCaps.shortGI20MHz; pAddBssParams->staContext.fShortGI40Mhz = (tANI_U8)pBeaconStruct->HTCaps.shortGI40MHz; pAddBssParams->staContext.maxAmpduSize= pBeaconStruct->HTCaps.maxRxAMPDUFactor; - + if( pBeaconStruct->HTInfo.present ) pAddBssParams->staContext.rifsMode = pBeaconStruct->HTInfo.rifsMode; } @@ -533,16 +533,16 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, if ((pftSessionEntry->limWmeEnabled && pBeaconStruct->wmeEdcaPresent) || (pftSessionEntry->limQosEnabled && pBeaconStruct->edcaPresent)) pAddBssParams->staContext.wmmEnabled = 1; - else + else pAddBssParams->staContext.wmmEnabled = 0; //Update the rates #ifdef WLAN_FEATURE_11AC - limPopulateOwnRateSet(pMac, &pAddBssParams->staContext.supportedRates, - pBeaconStruct->HTCaps.supportedMCSSet, + limPopulateOwnRateSet(pMac, &pAddBssParams->staContext.supportedRates, + pBeaconStruct->HTCaps.supportedMCSSet, false,pftSessionEntry,&pBeaconStruct->VHTCaps); #else - limPopulateOwnRateSet(pMac, &pAddBssParams->staContext.supportedRates, + limPopulateOwnRateSet(pMac, &pAddBssParams->staContext.supportedRates, beaconStruct.HTCaps.supportedMCSSet, false,pftSessionEntry); #endif limFillSupportedRatesInfo(pMac, NULL, &pAddBssParams->staContext.supportedRates,pftSessionEntry); @@ -559,7 +559,7 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pAddBssParams->staContext.staTCParams[i].rxBApolicy = eBA_POLICY_IMMEDIATE; } -#if defined WLAN_FEATURE_VOWIFI +#if defined WLAN_FEATURE_VOWIFI pAddBssParams->maxTxPower = pftSessionEntry->maxTxPower; #endif @@ -568,13 +568,13 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pAddBssParams->staContext.sessionId = pftSessionEntry->peSessionId; pAddBssParams->sessionId = pftSessionEntry->peSessionId; - + // Set a new state for MLME pftSessionEntry->limMlmState = eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE; MTRACE(macTrace(pMac, TRACE_CODE_MLM_STATE, pftSessionEntry->peSessionId, eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE)); pAddBssParams->halPersona=(tANI_U8)pftSessionEntry->pePersona; //pass on the session persona to hal - + pMac->ft.ftPEContext.pAddBssReq = pAddBssParams; #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG @@ -587,7 +587,7 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, /*------------------------------------------------------------------ * - * Setup the new session for the pre-auth AP. + * Setup the new session for the pre-auth AP. * Return the newly created session entry. * *------------------------------------------------------------------*/ @@ -600,7 +600,7 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, tPowerdBm regMax; tSchBeaconStruct *pBeaconStruct; - if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd, + if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd, (void **)&pBeaconStruct, sizeof(tSchBeaconStruct))) { limLog(pMac, LOGE, FL("Unable to PAL allocate memory for creating limFillFTSession") ); @@ -608,7 +608,7 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, } - + /* Retrieve the session that has already been created and update the entry */ pftSessionEntry = pMac->ft.ftPEContext.pftSessionEntry; #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR) @@ -624,9 +624,9 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, pftSessionEntry->lim11hEnable = psessionEntry->lim11hEnable; // Fields to be filled later - pftSessionEntry->pLimJoinReq = NULL; - pftSessionEntry->smeSessionId = 0; - pftSessionEntry->transactionId = 0; + pftSessionEntry->pLimJoinReq = NULL; + pftSessionEntry->smeSessionId = 0; + pftSessionEntry->transactionId = 0; limExtractApCapabilities( pMac, (tANI_U8 *) pbssDescription->ieFields, @@ -638,7 +638,7 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, pBeaconStruct->supportedRates.rate, pBeaconStruct->supportedRates.numRates ); pftSessionEntry->extRateSet.numRates = pBeaconStruct->extendedRates.numRates; - palCopyMemory(pMac->hHdd, pftSessionEntry->extRateSet.rate, + palCopyMemory(pMac->hHdd, pftSessionEntry->extRateSet.rate, pBeaconStruct->extendedRates.rate, pftSessionEntry->extRateSet.numRates); @@ -664,8 +664,8 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, /* Copy The channel Id to the session Table */ pftSessionEntry->limReassocChannelId = pbssDescription->channelId; pftSessionEntry->currentOperChannel = pbssDescription->channelId; - - + + if (pftSessionEntry->bssType == eSIR_INFRASTRUCTURE_MODE) { pftSessionEntry->limSystemRole = eLIM_STA_ROLE; @@ -675,11 +675,11 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, pftSessionEntry->limSystemRole = eLIM_BT_AMP_STA_ROLE; } else - { + { /* Throw an error and return and make sure to delete the session.*/ limLog(pMac, LOGE, FL("Invalid bss type")); - } - + } + pftSessionEntry->limCurrentBssCaps = pbssDescription->capabilityInfo; pftSessionEntry->limReassocBssCaps = pbssDescription->capabilityInfo; if( pMac->roam.configParam.shortSlotTime && @@ -688,9 +688,9 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, pftSessionEntry->shortSlotTimeSupported = TRUE; } - regMax = cfgGetRegulatoryMaxTransmitPower( pMac, pftSessionEntry->currentOperChannel ); + regMax = cfgGetRegulatoryMaxTransmitPower( pMac, pftSessionEntry->currentOperChannel ); localPowerConstraint = regMax; - limExtractApCapability( pMac, (tANI_U8 *) pbssDescription->ieFields, + limExtractApCapability( pMac, (tANI_U8 *) pbssDescription->ieFields, limGetIElenFromBssDescription(pbssDescription), &pftSessionEntry->limCurrentBssQosCaps, &pftSessionEntry->limCurrentBssPropCap, @@ -727,7 +727,7 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, /*------------------------------------------------------------------ * - * Setup the session and the add bss req for the pre-auth AP. + * Setup the session and the add bss req for the pre-auth AP. * *------------------------------------------------------------------*/ void limFTSetupAuthSession(tpAniSirGlobal pMac, tpPESession psessionEntry) @@ -748,16 +748,16 @@ void limFTSetupAuthSession(tpAniSirGlobal pMac, tpPESession psessionEntry) #endif #ifdef FEATURE_WLAN_LFR - pftSessionEntry->isFastRoamIniFeatureEnabled = psessionEntry->isFastRoamIniFeatureEnabled; + pftSessionEntry->isFastRoamIniFeatureEnabled = psessionEntry->isFastRoamIniFeatureEnabled; #endif - limFTPrepareAddBssReq( pMac, FALSE, pftSessionEntry, + limFTPrepareAddBssReq( pMac, FALSE, pftSessionEntry, pMac->ft.ftPEContext.pFTPreAuthReq->pbssDescription ); pMac->ft.ftPEContext.pftSessionEntry = pftSessionEntry; } } /*------------------------------------------------------------------ - * Resume Link Call Back + * Resume Link Call Back *------------------------------------------------------------------*/ void limFTProcessPreAuthResult(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data) { @@ -778,18 +778,18 @@ void limFTProcessPreAuthResult(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 } /*------------------------------------------------------------------ - * Resume Link Call Back + * Resume Link Call Back *------------------------------------------------------------------*/ -void limPerformPostFTPreAuthAndChannelChange(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, +void limPerformPostFTPreAuthAndChannelChange(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data, tpPESession psessionEntry) { - //Set the resume channel to Any valid channel (invalid). + //Set the resume channel to Any valid channel (invalid). //This will instruct HAL to set it to any previous valid channel. peSetResumeChannel(pMac, 0, 0); limResumeLink(pMac, limFTProcessPreAuthResult, (tANI_U32 *)psessionEntry); } -tSirRetStatus limCreateRICBlockAckIE(tpAniSirGlobal pMac, tANI_U8 tid, tCfgTrafficClass *pTrafficClass, +tSirRetStatus limCreateRICBlockAckIE(tpAniSirGlobal pMac, tANI_U8 tid, tCfgTrafficClass *pTrafficClass, tANI_U8 *ric_ies, tANI_U32 *ieLength) { /* BlockACK + RIC is not supported now, TODO later to support this */ @@ -845,18 +845,18 @@ tSirRetStatus limFTFillRICBlockAckInfo(tpAniSirGlobal pMac, tANI_U8 *ric_ies, tA tpPESession psessionEntry = pMac->ft.ftPEContext.psavedsessionEntry; tANI_U32 offset = 0, ieLength = 0; tSirRetStatus status = eSIR_SUCCESS; - + // First, extract the DPH entry pSta = dphLookupHashEntry( pMac, pMac->ft.ftPEContext.pFTPreAuthReq->currbssId, &aid, &psessionEntry->dph.dphHashTable); if( NULL == pSta ) { PELOGE(limLog( pMac, LOGE, FL( "STA context not found for saved session's BSSID %02x:%02x:%02x:%02x:%02x:%02x" ), - pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[0], - pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[1], - pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[2], - pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[3], - pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[4], + pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[0], + pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[1], + pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[2], + pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[3], + pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[4], pMac->ft.ftPEContext.pFTPreAuthReq->currbssId[5] );) return eSIR_FAILURE; } @@ -900,7 +900,7 @@ void limPostFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, { tpSirFTPreAuthRsp pFTPreAuthRsp; tSirMsgQ mmhMsg; - tANI_U16 rspLen = sizeof(tSirFTPreAuthRsp); + tANI_U16 rspLen = sizeof(tSirFTPreAuthRsp); // TODO: RIC Support //tSirRetStatus sirStatus = eSIR_SUCCESS; @@ -915,7 +915,7 @@ void limPostFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, #if defined WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOG1, "%s: Auth Rsp = %p", pFTPreAuthRsp);) #endif - + palZeroMemory(pMac, (tANI_U8*)pFTPreAuthRsp, rspLen); pFTPreAuthRsp->messageType = eWNI_SME_FT_PRE_AUTH_RSP; pFTPreAuthRsp->length = (tANI_U16) rspLen; @@ -925,24 +925,24 @@ void limPostFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, // The bssid of the AP we are sending Auth1 to. if (pMac->ft.ftPEContext.pFTPreAuthReq) - sirCopyMacAddr(pFTPreAuthRsp->preAuthbssId, + sirCopyMacAddr(pFTPreAuthRsp->preAuthbssId, pMac->ft.ftPEContext.pFTPreAuthReq->preAuthbssId); - + // Attach the auth response now back to SME pFTPreAuthRsp->ft_ies_length = 0; if ((auth_rsp != NULL) && (auth_rsp_length < MAX_FTIE_SIZE)) { // Only 11r assoc has FT IEs. - vos_mem_copy(pFTPreAuthRsp->ft_ies, auth_rsp, auth_rsp_length); + vos_mem_copy(pFTPreAuthRsp->ft_ies, auth_rsp, auth_rsp_length); pFTPreAuthRsp->ft_ies_length = auth_rsp_length; } - + #ifdef WLAN_FEATURE_VOWIFI_11R if ((psessionEntry) && (psessionEntry->is11Rconnection)) { /* TODO: RIC SUPPORT Fill in the Block Ack RIC IEs in the preAuthRsp */ /* - sirStatus = limFTFillRICBlockAckInfo(pMac, pFTPreAuthRsp->ric_ies, + sirStatus = limFTFillRICBlockAckInfo(pMac, pFTPreAuthRsp->ric_ies, (tANI_U32 *)&pFTPreAuthRsp->ric_ies_length); if (eSIR_SUCCESS != sirStatus) { @@ -951,7 +951,7 @@ void limPostFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, */ } #endif - + mmhMsg.type = pFTPreAuthRsp->messageType; mmhMsg.bodyptr = pFTPreAuthRsp; mmhMsg.bodyval = 0; @@ -967,7 +967,7 @@ void limPostFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, * Send the FT Pre Auth Response to SME when ever we have a status * ready to be sent to SME * - * SME will be the one to send it up to the supplicant to receive + * SME will be the one to send it up to the supplicant to receive * FTIEs which will be required for Reassoc Req. * *------------------------------------------------------------------*/ @@ -981,15 +981,15 @@ void limHandleFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, tpSirBssDescription pbssDescription; // Save the status of pre-auth - pMac->ft.ftPEContext.ftPreAuthStatus = status; + pMac->ft.ftPEContext.ftPreAuthStatus = status; - // Save the auth rsp, so we can send it to - // SME once we resume link. - pMac->ft.ftPEContext.saved_auth_rsp_length = 0; + // Save the auth rsp, so we can send it to + // SME once we resume link. + pMac->ft.ftPEContext.saved_auth_rsp_length = 0; if ((auth_rsp != NULL) && (auth_rsp_length < MAX_FTIE_SIZE)) { vos_mem_copy(pMac->ft.ftPEContext.saved_auth_rsp, - auth_rsp, auth_rsp_length); + auth_rsp, auth_rsp_length); pMac->ft.ftPEContext.saved_auth_rsp_length = auth_rsp_length; } @@ -1033,14 +1033,14 @@ void limHandleFTPreAuthRsp(tpAniSirGlobal pMac, tSirRetStatus status, limPrintMacAddr(pMac, psessionEntry->limReAssocbssId, LOGE); } - if (psessionEntry->currentOperChannel != - pMac->ft.ftPEContext.pFTPreAuthReq->preAuthchannelNum) + if (psessionEntry->currentOperChannel != + pMac->ft.ftPEContext.pFTPreAuthReq->preAuthchannelNum) { // Need to move to the original AP channel - limChangeChannelWithCallback(pMac, psessionEntry->currentOperChannel, + limChangeChannelWithCallback(pMac, psessionEntry->currentOperChannel, limPerformPostFTPreAuthAndChannelChange, NULL, psessionEntry); } - else + else { #ifdef WLAN_FEATURE_VOWIFI_11R_DEBUG PELOGE(limLog( pMac, LOGE, "Pre auth on same channel as connected AP channel %d", @@ -1208,7 +1208,7 @@ void limProcessFTPreauthRspTimeout(tpAniSirGlobal pMac) // We have failed pre auth. We need to resume link and get back on // home channel. - if((psessionEntry = peFindSessionBySessionId(pMac, pMac->lim.limTimers.gLimFTPreAuthRspTimer.sessionId))== NULL) + if((psessionEntry = peFindSessionBySessionId(pMac, pMac->lim.limTimers.gLimFTPreAuthRspTimer.sessionId))== NULL) { limLog(pMac, LOGE, FL("Session Does not exist for given sessionID")); return; @@ -1303,7 +1303,7 @@ limProcessFTAggrQosReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf ) tpAggrAddTsParams pAggrAddTsParam; tpPESession psessionEntry = NULL; tpLimTspecInfo tspecInfo; - tANI_U8 ac; + tANI_U8 ac; tpDphHashNode pSta; tANI_U16 aid; tANI_U8 sessionId; @@ -1342,16 +1342,16 @@ limProcessFTAggrQosReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf ) for( i = 0; i < HAL_QOS_NUM_AC_MAX; i++ ) { - if (aggrQosReq->aggrInfo.tspecIdx & (1<<i)) + if (aggrQosReq->aggrInfo.tspecIdx & (1<<i)) { tSirMacTspecIE *pTspec = &aggrQosReq->aggrInfo.aggrAddTsInfo[i].tspec; /* Since AddTS response was successful, check for the PSB flag - * and directional flag inside the TS Info field. - * An AC is trigger enabled AC if the PSB subfield is set to 1 + * and directional flag inside the TS Info field. + * An AC is trigger enabled AC if the PSB subfield is set to 1 * in the uplink direction. - * An AC is delivery enabled AC if the PSB subfield is set to 1 + * An AC is delivery enabled AC if the PSB subfield is set to 1 * in the downlink direction. - * An AC is trigger and delivery enabled AC if the PSB subfield + * An AC is trigger and delivery enabled AC if the PSB subfield * is set to 1 in the bi-direction field. */ if(!pMac->psOffloadEnabled) @@ -1425,11 +1425,11 @@ limProcessFTAggrQosReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf ) limSetActiveEdcaParams(pMac, psessionEntry->gLimEdcaParams, psessionEntry); - if (pSta->aniPeer == eANI_BOOLEAN_TRUE) + if (pSta->aniPeer == eANI_BOOLEAN_TRUE) { limSendEdcaParams(pMac, psessionEntry->gLimEdcaParamsActive, pSta->bssId, eANI_BOOLEAN_TRUE); } - else + else { limSendEdcaParams(pMac, psessionEntry->gLimEdcaParamsActive, pSta->bssId, eANI_BOOLEAN_FALSE); } @@ -1593,14 +1593,14 @@ int limisFastTransitionRequired(tpAniSirGlobal pMac, int sessionId) { // If ccx or 11r connection is found we need to return TRUE if((pMac->lim.gpSession[sessionId].bssType == eSIR_INFRASTRUCTURE_MODE) && - (((pMac->lim.gpSession[sessionId].is11Rconnection) + (((pMac->lim.gpSession[sessionId].is11Rconnection) #ifdef FEATURE_WLAN_CCX || (pMac->lim.gpSession[sessionId].isCCXconnection) #endif #ifdef FEATURE_WLAN_LFR || (pMac->lim.gpSession[sessionId].isFastRoamIniFeatureEnabled) #endif - )&& + )&& pMac->lim.gpSession[sessionId].isFastTransitionEnabled)) { // Make sure we have 11r/CCX and FT enabled only then we need diff --git a/CORE/MAC/src/pe/lim/limLogDump.c b/CORE/MAC/src/pe/lim/limLogDump.c index cbb3a47630a6..1b7f1c83c374 100644 --- a/CORE/MAC/src/pe/lim/limLogDump.c +++ b/CORE/MAC/src/pe/lim/limLogDump.c @@ -28,7 +28,7 @@ /*============================================================================ limLogDump.c -Implements the dump commands specific to the lim module. +Implements the dump commands specific to the lim module. Copyright (c) 2007 Qualcomm Technologies, Inc. All Rights Reserved. @@ -301,16 +301,16 @@ char *dumpLim( tpAniSirGlobal pMac, char *p, tANI_U32 sessionId) char *triggerBeaconGen( tpAniSirGlobal pMac, char *p ) { tSirMsgQ mesg = { (tANI_U16) SIR_LIM_BEACON_GEN_IND, (tANI_U16) 0, (tANI_U32) 0 }; - + pMac->lim.gLimSmeState = eLIM_SME_NORMAL_STATE; MTRACE(macTrace(pMac, TRACE_CODE_SME_STATE, NO_SESSION, pMac->lim.gLimSmeState)); pMac->lim.gLimSystemRole = eLIM_AP_ROLE; - + p += log_sprintf( pMac, p, "Posted SIR_LIM_BEACON_GEN_IND with result = %s\n", (eSIR_SUCCESS == limPostMsgApi( pMac, &mesg ))? "Success": "Failure" ); - + return p; } @@ -376,7 +376,15 @@ static char *sendSmeScanReq(tpAniSirGlobal pMac, char *p) pScanReq->scanType = eSIR_ACTIVE_SCAN; pScanReq->returnAfterFirstMatch = 0; pScanReq->returnUniqueResults = 0; - pScanReq->returnFreshResults = SIR_BG_SCAN_PURGE_RESUTLS|SIR_BG_SCAN_RETURN_FRESH_RESULTS; + /* Original code: + * pScanReq->returnFreshResults = SIR_BG_SCAN_PURGE_RESUTLS|SIR_BG_SCAN_RETURN_FRESH_RESULTS; + * + * Do not purge while starting a scan. Rome firmware sends results of + * roaming scan as normal entries. They land up in this scan cache. + * We should not lose those entries. + * This cached should be purged after filling in a query. + */ + pScanReq->returnFreshResults = SIR_BG_SCAN_RETURN_FRESH_RESULTS; pScanReq->channelList.numChannels = 1; pScanReq->channelList.channelNumber[0] = 6; pScanReq->uIEFieldLen = 0; @@ -451,7 +459,7 @@ static char *sendSmeDisAssocReq(tpAniSirGlobal pMac, char *p,tANI_U32 arg1 ,tANI pDisAssocReq->sessionId = 0; - pDisAssocReq->transactionId = 0; + pDisAssocReq->transactionId = 0; msg.type = eWNI_SME_DISASSOC_REQ; msg.bodyptr = pDisAssocReq; @@ -473,7 +481,7 @@ static char *sendSmeStartBssReq(tpAniSirGlobal pMac, char *p,tANI_U32 arg1) tSirNwType nwType; p += log_sprintf( pMac,p, "sendSmeStartBssReq: Preparing eWNI_SME_START_BSS_REQ message\n"); - + if(arg1 > 2) { p += log_sprintf( pMac,p,"Invalid Argument1 \n"); @@ -488,19 +496,19 @@ static char *sendSmeStartBssReq(tpAniSirGlobal pMac, char *p,tANI_U32 arg1) pStartBssReq->messageType = eWNI_SME_START_BSS_REQ; pStartBssReq->length = 29; // 0x1d - - if(arg1 == 0) //BTAMP STATION + + if(arg1 == 0) //BTAMP STATION { pStartBssReq->bssType = eSIR_BTAMP_STA_MODE; pStartBssReq->ssId.length = 5; - palCopyMemory(pMac->hHdd, (void *) &pStartBssReq->ssId.ssId, (void *)"BTSTA", 5); + palCopyMemory(pMac->hHdd, (void *) &pStartBssReq->ssId.ssId, (void *)"BTSTA", 5); } - else if(arg1 == 1) //BTAMP AP + else if(arg1 == 1) //BTAMP AP { pStartBssReq->bssType = eSIR_BTAMP_AP_MODE; pStartBssReq->ssId.length = 4; - palCopyMemory(pMac->hHdd, (void *) &pStartBssReq->ssId.ssId, (void *)"BTAP", 4); + palCopyMemory(pMac->hHdd, (void *) &pStartBssReq->ssId.ssId, (void *)"BTAP", 4); } else //IBSS { @@ -528,7 +536,7 @@ static char *sendSmeStartBssReq(tpAniSirGlobal pMac, char *p,tANI_U32 arg1) palCopyMemory( pMac->hHdd, pBuf, (tANI_U8 *)&nwType, sizeof(tSirNwType) ); pBuf += sizeof(tSirNwType); - /* ---- To be filled by LIM later ---- + /* ---- To be filled by LIM later ---- pStartBssReq->operationalRateSet pStartBssReq->extendedRateSet pStartBssReq->dot11mode @@ -536,7 +544,7 @@ static char *sendSmeStartBssReq(tpAniSirGlobal pMac, char *p,tANI_U32 arg1) pStartBssReq->selfMacAddr pStartBssReq->beaconInterval pStartBssReq->sessionId = 0; - pStartBssReq->transactionId = 0; + pStartBssReq->transactionId = 0; * ------------------------------------ */ msg.type = eWNI_SME_START_BSS_REQ; @@ -573,11 +581,11 @@ static char *sendSmeStopBssReq(tpAniSirGlobal pMac, char *p, tANI_U32 sessionId) pStopBssReq->messageType = eWNI_SME_STOP_BSS_REQ; msgLen += sizeof(tANI_U32); // msgType + length - + pStopBssReq->reasonCode = eSIR_SME_SUCCESS; msgLen += sizeof(tSirResultCodes); - palCopyMemory(pMac->hHdd, (void *) &pStopBssReq->bssId, (void *)psessionEntry->bssId, 6); + palCopyMemory(pMac->hHdd, (void *) &pStopBssReq->bssId, (void *)psessionEntry->bssId, 6); msgLen += sizeof(tSirMacAddr); pStopBssReq->sessionId = (tANI_U8)sessionId; @@ -605,36 +613,36 @@ static char *sendSmeJoinReq(tpAniSirGlobal pMac, char *p) tANI_U16 msgLen = 307; tANI_U8 msgDump[307] = { - 0x06, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, - 0xDE, 0xAD, 0xBA, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x64, 0x00, 0x21, 0x04, 0x02, 0x00, 0x00, - 0x00, 0x01, 0x1E, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, - 0x00, 0x00, 0x00, 0xA8, 0x85, 0x4F, 0x7A, 0x00, 0x06, 0x41, - 0x6E, 0x69, 0x4E, 0x65, 0x74, 0x01, 0x04, 0x82, 0x84, 0x8B, - 0x96, 0x03, 0x01, 0x06, 0x07, 0x06, 0x55, 0x53, 0x49, 0x01, - 0x0E, 0x1E, 0x2A, 0x01, 0x00, 0x32, 0x08, 0x0C, 0x12, 0x18, - 0x24, 0x30, 0x48, 0x60, 0x6C, 0x2D, 0x1A, 0xEE, 0x11, 0x03, - 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3D, 0x16, 0x06, 0x07, 0x11, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDD, 0x18, 0x00, - 0x50, 0xF2, 0x02, 0x01, 0x01, 0x01, 0x00, 0x03, 0xA4, 0x00, - 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, - 0x32, 0x2F, 0x00, 0xDD, 0x14, 0x00, 0x0A, 0xF5, 0x00, 0x03, - 0x01, 0x03, 0x05, 0x0A, 0x02, 0x80, 0xC0, 0x12, 0x06, 0xFF, - 0xFF, 0xFF, 0xFF, 0xB6, 0x0D, 0xDD, 0x6E, 0x00, 0x50, 0xF2, - 0x04, 0x10, 0x4A, 0x00, 0x01, 0x10, 0x10, 0x44, 0x00, 0x01, - 0x01, 0x10, 0x3B, 0x00, 0x01, 0x03, 0x10, 0x47, 0x00, 0x10, - 0xDB, 0xC6, 0x77, 0x28, 0xB9, 0xF3, 0xD8, 0x58, 0x86, 0xFF, - 0xFC, 0x6B, 0xB6, 0xB9, 0x27, 0x79, 0x10, 0x21, 0x00, 0x08, - 0x51, 0x75, 0x61, 0x6C, 0x63, 0x6F, 0x6D, 0x6D, 0x10, 0x23, + 0x06, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, + 0xDE, 0xAD, 0xBA, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x64, 0x00, 0x21, 0x04, 0x02, 0x00, 0x00, + 0x00, 0x01, 0x1E, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0xA8, 0x85, 0x4F, 0x7A, 0x00, 0x06, 0x41, + 0x6E, 0x69, 0x4E, 0x65, 0x74, 0x01, 0x04, 0x82, 0x84, 0x8B, + 0x96, 0x03, 0x01, 0x06, 0x07, 0x06, 0x55, 0x53, 0x49, 0x01, + 0x0E, 0x1E, 0x2A, 0x01, 0x00, 0x32, 0x08, 0x0C, 0x12, 0x18, + 0x24, 0x30, 0x48, 0x60, 0x6C, 0x2D, 0x1A, 0xEE, 0x11, 0x03, + 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3D, 0x16, 0x06, 0x07, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDD, 0x18, 0x00, + 0x50, 0xF2, 0x02, 0x01, 0x01, 0x01, 0x00, 0x03, 0xA4, 0x00, + 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, + 0x32, 0x2F, 0x00, 0xDD, 0x14, 0x00, 0x0A, 0xF5, 0x00, 0x03, + 0x01, 0x03, 0x05, 0x0A, 0x02, 0x80, 0xC0, 0x12, 0x06, 0xFF, + 0xFF, 0xFF, 0xFF, 0xB6, 0x0D, 0xDD, 0x6E, 0x00, 0x50, 0xF2, + 0x04, 0x10, 0x4A, 0x00, 0x01, 0x10, 0x10, 0x44, 0x00, 0x01, + 0x01, 0x10, 0x3B, 0x00, 0x01, 0x03, 0x10, 0x47, 0x00, 0x10, + 0xDB, 0xC6, 0x77, 0x28, 0xB9, 0xF3, 0xD8, 0x58, 0x86, 0xFF, + 0xFC, 0x6B, 0xB6, 0xB9, 0x27, 0x79, 0x10, 0x21, 0x00, 0x08, + 0x51, 0x75, 0x61, 0x6C, 0x63, 0x6F, 0x6D, 0x6D, 0x10, 0x23, 0x00, 0x07, 0x57, 0x46, 0x52, 0x34, 0x30, 0x33, 0x31, 0x10, - 0x24, 0x00, 0x06, 0x4D, 0x4E, 0x31, 0x32, 0x33, 0x34, 0x10, - 0x42, 0x00, 0x06, 0x53, 0x4E, 0x31, 0x32, 0x33, 0x34, 0x10, - 0x54, 0x00, 0x08, 0x00, 0x06, 0x00, 0x50, 0xF2, 0x04, 0x00, - 0x01, 0x10, 0x11, 0x00, 0x06, 0x31, 0x31, 0x6E, 0x2D, 0x41, + 0x24, 0x00, 0x06, 0x4D, 0x4E, 0x31, 0x32, 0x33, 0x34, 0x10, + 0x42, 0x00, 0x06, 0x53, 0x4E, 0x31, 0x32, 0x33, 0x34, 0x10, + 0x54, 0x00, 0x08, 0x00, 0x06, 0x00, 0x50, 0xF2, 0x04, 0x00, + 0x01, 0x10, 0x11, 0x00, 0x06, 0x31, 0x31, 0x6E, 0x2D, 0x41, 0x50, 0x10, 0x08, 0x00, 0x02, 0x01, 0x8E }; @@ -658,7 +666,7 @@ static char *sendSmeJoinReq(tpAniSirGlobal pMac, char *p) static char *printSessionInfo(tpAniSirGlobal pMac, char *p) { - tpPESession psessionEntry = &pMac->lim.gpSession[0]; + tpPESession psessionEntry = &pMac->lim.gpSession[0]; tANI_U8 i; p += log_sprintf( pMac, p, "Dump PE Session \n"); @@ -667,16 +675,16 @@ static char *printSessionInfo(tpAniSirGlobal pMac, char *p) { if( pMac->lim.gpSession[i].valid ) { - psessionEntry = &pMac->lim.gpSession[i]; + psessionEntry = &pMac->lim.gpSession[i]; p += log_sprintf( pMac,p, "*****************************************\n"); - p += log_sprintf( pMac,p, " PE Session [%d] \n", i); + p += log_sprintf( pMac,p, " PE Session [%d] \n", i); p += log_sprintf( pMac,p, "available: %d \n", psessionEntry->available); - p += log_sprintf( pMac,p, "peSessionId: %d, smeSessionId: %d, transactionId: %d \n", + p += log_sprintf( pMac,p, "peSessionId: %d, smeSessionId: %d, transactionId: %d \n", psessionEntry->peSessionId, psessionEntry->smeSessionId, psessionEntry->smeSessionId); - p += log_sprintf( pMac,p, "bssId: %02X:%02X:%02X:%02X:%02X:%02X \n", + p += log_sprintf( pMac,p, "bssId: %02X:%02X:%02X:%02X:%02X:%02X \n", psessionEntry->bssId[0], psessionEntry->bssId[1], psessionEntry->bssId[2], psessionEntry->bssId[3], psessionEntry->bssId[4], psessionEntry->bssId[5]); - p += log_sprintf( pMac,p, "selfMacAddr: %02X:%02X:%02X:%02X:%02X:%02X \n", + p += log_sprintf( pMac,p, "selfMacAddr: %02X:%02X:%02X:%02X:%02X:%02X \n", psessionEntry->selfMacAddr[0], psessionEntry->selfMacAddr[1], psessionEntry->selfMacAddr[2], psessionEntry->selfMacAddr[3], psessionEntry->selfMacAddr[4], psessionEntry->selfMacAddr[5]); p += log_sprintf( pMac,p, "bssIdx: %d \n", psessionEntry->bssIdx); @@ -698,7 +706,7 @@ static char *printSessionInfo(tpAniSirGlobal pMac, char *p) p += log_sprintf( pMac,p, "limCurrentBssPropCap: %d \n", psessionEntry->limCurrentBssPropCap); p += log_sprintf( pMac,p, "limSentCapsChangeNtf: %d \n", psessionEntry->limSentCapsChangeNtf); p += log_sprintf( pMac,p, "LimAID: %d \n", psessionEntry->limAID); - p += log_sprintf( pMac,p, "ReassocbssId: %02X:%02X:%02X:%02X:%02X:%02X \n", + p += log_sprintf( pMac,p, "ReassocbssId: %02X:%02X:%02X:%02X:%02X:%02X \n", psessionEntry->limReAssocbssId[0], psessionEntry->limReAssocbssId[1], psessionEntry->limReAssocbssId[2], psessionEntry->limReAssocbssId[3], psessionEntry->limReAssocbssId[4], psessionEntry->limReAssocbssId[5]); p += log_sprintf( pMac,p, "limReassocChannelId: %d \n", psessionEntry->limReassocChannelId); @@ -724,7 +732,7 @@ static char * limDumpEdcaParams(tpAniSirGlobal pMac, char *p) { tANI_U8 i = 0; - tpPESession psessionEntry = &pMac->lim.gpSession[0]; //TBD-RAJESH HOW TO GET sessionEntry????? + tpPESession psessionEntry = &pMac->lim.gpSession[0]; //TBD-RAJESH HOW TO GET sessionEntry????? p += log_sprintf( pMac,p, "EDCA parameter set count = %d\n", psessionEntry->gLimEdcaParamSetCount); p += log_sprintf( pMac,p, "Broadcast parameters\n"); p += log_sprintf( pMac,p, "AC\tACI\tACM\tAIFSN\tCWMax\tCWMin\tTxopLimit\t\n"); @@ -840,11 +848,11 @@ static char* limDumpDphTableSummary(tpAniSirGlobal pMac,char *p) pMac->lim.gpSession[j].dph.dphHashTable.pDphNodeArray[i].staAddr[4], pMac->lim.gpSession[j].dph.dphHashTable.pDphNodeArray[i].staAddr[5]); } - } - } + } + } } return p; -} +} // add the specified tspec to the tspec list static char* limDumpTsecTable( tpAniSirGlobal pMac, char* p) @@ -1100,7 +1108,7 @@ dump_lim_del_sta( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 ar p += log_sprintf( pMac,p, "Could not find station with assocId = %d\n", arg1); return p; } - + if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE) { p += log_sprintf( pMac,p, "received Disassoc frame from peer that is in state %X \n", pStaDs->mlmStaContext.mlmState); @@ -1369,17 +1377,17 @@ dump_lim_AddBA_DeclineStat( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t if (arg1 > 1) { log_sprintf( pMac,p, "%s:Invalid Value is entered for Enable/Disable \n", __func__ ); arg1 &= 1; - } - + } + val = pMac->lim.gAddBA_Declined; - + if (arg2 > 7) { log_sprintf( pMac,p, "%s:Invalid Value is entered for Tid \n", __func__ ); Tid = arg2 & 0x7; } else Tid = arg2; - - + + if ( Enable) val |= Enable << Tid; else @@ -1427,7 +1435,7 @@ static char* dump_lim_update_cb_Mode(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U3 psessionEntry->htRecommendedTxWidthSet = psessionEntry->htSupportedChannelWidthSet; psessionEntry->htSecondaryChannelOffset = arg2; - if(eSIR_SUCCESS != cfgSetInt(pMac, WNI_CFG_CHANNEL_BONDING_MODE, + if(eSIR_SUCCESS != cfgSetInt(pMac, WNI_CFG_CHANNEL_BONDING_MODE, arg2 ? WNI_CFG_CHANNEL_BONDING_MODE_ENABLE : WNI_CFG_CHANNEL_BONDING_MODE_DISABLE)) p += log_sprintf(pMac,p, "cfgSetInt failed for WNI_CFG_CHANNEL_BONDING_MODE\n"); @@ -1447,7 +1455,7 @@ static char* dump_lim_abort_scan(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 ar (void) arg1; (void) arg2; (void) arg3; (void) arg4; //csrScanAbortMacScan(pMac); return p; - + } static char* dump_lim_start_stop_bg_scan(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) @@ -1481,10 +1489,10 @@ static char* dump_lim_start_stop_bg_scan(tpAniSirGlobal pMac, tANI_U32 arg1, tAN pMac->lim.gLimForceBackgroundScanDisable = true; } return p; - + } -static char* +static char* dump_lim_get_pe_statistics(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { eHalStatus status = eHAL_STATUS_SUCCESS; @@ -1493,9 +1501,9 @@ dump_lim_get_pe_statistics(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tA (void) arg2; (void) arg3; (void) arg4; - + switch(arg1) - { + { case 1: statsMask = PE_SUMMARY_STATS_INFO; break; @@ -1514,7 +1522,7 @@ dump_lim_get_pe_statistics(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tA default: return p; } - + if( eHAL_STATUS_SUCCESS != (status = palAllocateMemory (pMac->hHdd, (void**) &pReq, sizeof(tAniGetPEStatsReq)))) { @@ -1523,16 +1531,16 @@ dump_lim_get_pe_statistics(tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tA } palZeroMemory( pMac, pReq, sizeof(*pReq)); - + pReq->msgType = eWNI_SME_GET_STATISTICS_REQ; pReq->statsMask = statsMask; pReq->staId = (tANI_U16)arg2; pMac->lim.gLimRspReqd = eANI_BOOLEAN_TRUE; limPostSmeMessage(pMac, eWNI_SME_GET_STATISTICS_REQ, (tANI_U32 *) pReq); - + return p; - + } extern char* setLOGLevel( tpAniSirGlobal pMac, char *p, tANI_U32 module, tANI_U32 level ); @@ -1570,7 +1578,7 @@ static char * dump_lim_send_join_req( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { (void) arg1; (void) arg2; (void) arg3; (void) arg4; - p = sendSmeJoinReq(pMac, p); + p = sendSmeJoinReq(pMac, p); return p; } @@ -1699,7 +1707,7 @@ static char *finishScan(tpAniSirGlobal pMac, char *p) msg.type = SIR_LIM_MIN_CHANNEL_TIMEOUT; msg.bodyval = 0; msg.bodyptr = NULL; - + limPostMsgApi(pMac, &msg); return p; } @@ -1785,10 +1793,10 @@ dump_lim_send_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tAN /* send two reports with incapable bit set */ pRRMReport[0].type = 6; pRRMReport[1].type = 7; - limSendRadioMeasureReportActionFrame( pMac, 1, 2, &pRRMReport[0], psessionEntry->bssId, psessionEntry ); - break; + limSendRadioMeasureReportActionFrame( pMac, 1, 2, &pRRMReport[0], psessionEntry->bssId, psessionEntry ); + break; case 1: - for ( i = 0 ; i < num ; i++ ) + for ( i = 0 ; i < num ; i++ ) { pRRMReport[i].type = 5; if ( i == 3 ) @@ -1805,7 +1813,7 @@ dump_lim_send_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tAN pRRMReport[i].report.beaconReport.rcpi = 40; pRRMReport[i].report.beaconReport.bssid[0] = 0x00; - pRRMReport[i].report.beaconReport.bssid[1] = 0xAA; + pRRMReport[i].report.beaconReport.bssid[1] = 0xAA; pRRMReport[i].report.beaconReport.bssid[2] = 0xBB; pRRMReport[i].report.beaconReport.bssid[3] = 0xCC; pRRMReport[i].report.beaconReport.bssid[4] = 0x00; @@ -1825,7 +1833,7 @@ dump_lim_send_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tAN } } - limSendRadioMeasureReportActionFrame( pMac, 1, num, &pRRMReport[0], psessionEntry->bssId, psessionEntry ); + limSendRadioMeasureReportActionFrame( pMac, 1, num, &pRRMReport[0], psessionEntry->bssId, psessionEntry ); break; case 2: //send Neighbor request. @@ -1851,7 +1859,7 @@ dump_lim_send_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tAN link.txAntenna = 1; link.rcpi = 9; link.rsni = 3; - limSendLinkReportActionFrame( pMac, &link, psessionEntry->bssId, psessionEntry ); + limSendLinkReportActionFrame( pMac, &link, psessionEntry->bssId, psessionEntry ); } break; default: @@ -1860,7 +1868,7 @@ dump_lim_send_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tAN done: vos_mem_free(pRRMReport); - return p; + return p; } static char * @@ -1881,17 +1889,17 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t tANI_U8 pBody[][100] = { { /*Beacon Request 0*/ - 0x05, 0x00, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x01, 0x00, 0x00, //Measurement request IE - 0x26, 0x25, 0x01, 0x00, + 0x26, 0x25, 0x01, 0x00, //Beacon request type 0x05, //Beacon request starts here 0x0C, 0x01, 0x30, 0x00, 0x14, 0x00, 0x01, //BSSID - 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, //SSID - 0x00, 0x05, 0x57, 0x69, 0x46, 0x69, 0x31, + 0x00, 0x05, 0x57, 0x69, 0x46, 0x69, 0x31, //Reporting Condition 0x01, 0x02, 0x00, 0x00, //Reporting Detail @@ -1901,15 +1909,15 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t }, { /*Beacon Request 1*/ - 0x05, 0x00, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x01, 0x00, 0x00, //Measurement request IE - 0x26, 0x28, 0x01, 0x00, + 0x26, 0x28, 0x01, 0x00, //Beacon request type 0x05, //Beacon request starts here 0x0C, 0xFF, 0x30, 0x00, 0x14, 0x00, 0x01, //BSSID - 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, //SSID /* 0x00, 0x08, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, */ //Reporting Condition @@ -1919,23 +1927,23 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t //Request IE 0x0A, 0x05, 0x00, 0x30, 0x46, 0x36, 0xDD, //AP channel report - 0x33, 0x03, 0x0C, 0x01, 0x06, - 0x33, 0x03, 0x0C, 0x24, 0x30, + 0x33, 0x03, 0x0C, 0x01, 0x06, + 0x33, 0x03, 0x0C, 0x24, 0x30, }, { /*Beacon Request 2*/ - 0x05, 0x00, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x01, 0x00, 0x00, //Measurement request IE - 0x26, 0x1E, 0x01, 0x00, + 0x26, 0x1E, 0x01, 0x00, //Beacon request type 0x05, //Beacon request starts here 0x0C, 0x00, 0x30, 0x00, 0x14, 0x00, 0x02, //BSSID - 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, //SSID - 0x00, 0x05, 0x57, 0x69, 0x46, 0x69, 0x31, - //0x00, 0x08, 0x41, 0x53, 0x54, 0x2D, 0x57, 0x41, 0x50, 0x49, + 0x00, 0x05, 0x57, 0x69, 0x46, 0x69, 0x31, + //0x00, 0x08, 0x41, 0x53, 0x54, 0x2D, 0x57, 0x41, 0x50, 0x49, //Reporting Condition 0x01, 0x02, 0x00, 0x00, //Reporting Detail @@ -1944,17 +1952,17 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t }, { /*Beacon Request 3*/ - 0x05, 0x00, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x01, 0x00, 0x00, //Measurement request IE - 0x26, 0x25, 0x01, 0x00, + 0x26, 0x25, 0x01, 0x00, //Beacon request type 0x05, //Beacon request starts here 0x0C, 0x01, 0x30, 0x00, 0x69, 0x00, 0x00, //BSSID - 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, //SSID - 0x00, 0x05, 0x57, 0x69, 0x46, 0x69, 0x31, + 0x00, 0x05, 0x57, 0x69, 0x46, 0x69, 0x31, //Reporting Condition 0x01, 0x02, 0x00, 0x00, //Reporting Detail @@ -1964,15 +1972,15 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t }, { /*Neighbor report*/ - 0x05, 0x05, 0x01, + 0x05, 0x05, 0x01, //Measurement request IE - 0x34, 0x17, + 0x34, 0x17, //BSSID - 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xff, 0xFF, //BSSID INFOo 0xED, 0x01, 0x00, 0x00, //Reg class, channel, Phy type - 0x20, 0x01, 0x02, + 0x20, 0x01, 0x02, //TSF Info 0x01, 0x04, 0x02, 0x00, 0x60, 0x00, //Condensed country @@ -1984,7 +1992,7 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t //Txpower used 0x00, //Max Tx Power - 0x00 + 0x00 } }; @@ -2041,7 +2049,7 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t case 6: { tPowerdBm localConstraint = (tPowerdBm) arg3; - tPowerdBm maxTxPower = cfgGetRegulatoryMaxTransmitPower( pMac, psessionEntry->currentOperChannel ); + tPowerdBm maxTxPower = cfgGetRegulatoryMaxTransmitPower( pMac, psessionEntry->currentOperChannel ); maxTxPower = VOS_MIN( maxTxPower, maxTxPower-localConstraint ); if( maxTxPower != psessionEntry->maxTxPower ) { @@ -2054,14 +2062,14 @@ dump_lim_unpack_rrm_action( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, t p += log_sprintf( pMac, p, "Invalid option" ); break; } - return p; + return p; } #endif #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING #ifdef RSSI_HACK -/* This dump command is needed to set the RSSI values in TL while testing handoff. Handoff code was tested - * using this dump command. Whatever the value gives as the first parameter will be considered as the average +/* This dump command is needed to set the RSSI values in TL while testing handoff. Handoff code was tested + * using this dump command. Whatever the value gives as the first parameter will be considered as the average * RSSI by TL and invokes corresponding callback registered by the clients */ extern int dumpCmdRSSI; static char * @@ -2116,42 +2124,42 @@ dump_lim_ft_event( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 a pftPreAuthReq->messageType = eWNI_SME_FT_PRE_AUTH_REQ; pftPreAuthReq->length = auth_req_len + sizeof(Profile.pBssDesc->length) + Profile.pBssDesc->length; - pftPreAuthReq->preAuthchannelNum = 6; + pftPreAuthReq->preAuthchannelNum = 6; - palCopyMemory(pMac->hHdd, (void *) &pftPreAuthReq->currbssId, - (void *)psessionEntry->bssId, 6); - palCopyMemory(pMac->hHdd, (void *) &pftPreAuthReq->preAuthbssId, - (void *)macAddr, 6); + palCopyMemory(pMac->hHdd, (void *) &pftPreAuthReq->currbssId, + (void *)psessionEntry->bssId, 6); + palCopyMemory(pMac->hHdd, (void *) &pftPreAuthReq->preAuthbssId, + (void *)macAddr, 6); pftPreAuthReq->ft_ies_length = (tANI_U16)pMac->ft.ftSmeContext.auth_ft_ies_length; // Also setup the mac address in sme context. palCopyMemory(pMac->hHdd, pMac->ft.ftSmeContext.preAuthbssId, macAddr, 6); - vos_mem_copy(pftPreAuthReq->ft_ies, pMac->ft.ftSmeContext.auth_ft_ies, + vos_mem_copy(pftPreAuthReq->ft_ies, pMac->ft.ftSmeContext.auth_ft_ies, pMac->ft.ftSmeContext.auth_ft_ies_length); vos_mem_copy(Profile.pBssDesc->bssId, macAddr, 6); p += log_sprintf( pMac,p, "\n ----- LIM Debug Information ----- \n"); - p += log_sprintf( pMac, p, "%s: length = %d\n", __func__, + p += log_sprintf( pMac, p, "%s: length = %d\n", __func__, (int)pMac->ft.ftSmeContext.auth_ft_ies_length); - p += log_sprintf( pMac, p, "%s: length = %02x\n", __func__, + p += log_sprintf( pMac, p, "%s: length = %02x\n", __func__, (int)pMac->ft.ftSmeContext.auth_ft_ies[0]); - p += log_sprintf( pMac, p, "%s: Auth Req %02x %02x %02x\n", + p += log_sprintf( pMac, p, "%s: Auth Req %02x %02x %02x\n", __func__, pftPreAuthReq->ft_ies[0], pftPreAuthReq->ft_ies[1], pftPreAuthReq->ft_ies[2]); - p += log_sprintf( pMac, p, "%s: Session %02x %02x %02x\n", __func__, + p += log_sprintf( pMac, p, "%s: Session %02x %02x %02x\n", __func__, psessionEntry->bssId[0], psessionEntry->bssId[1], psessionEntry->bssId[2]); - p += log_sprintf( pMac, p, "%s: Session %02x %02x %02x %p\n", __func__, + p += log_sprintf( pMac, p, "%s: Session %02x %02x %02x %p\n", __func__, pftPreAuthReq->currbssId[0], - pftPreAuthReq->currbssId[1], + pftPreAuthReq->currbssId[1], pftPreAuthReq->currbssId[2], pftPreAuthReq); Profile.pBssDesc->channelId = (tANI_U8)arg3; - vos_mem_copy((void *)pftPreAuthReq->pbssDescription, (void *)Profile.pBssDesc, - Profile.pBssDesc->length); + vos_mem_copy((void *)pftPreAuthReq->pbssDescription, (void *)Profile.pBssDesc, + Profile.pBssDesc->length); msg.type = eWNI_SME_FT_PRE_AUTH_REQ; msg.bodyptr = pftPreAuthReq; @@ -2165,7 +2173,7 @@ dump_lim_ft_event( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 a default: break; } - return p; + return p; } #endif static char * @@ -2193,7 +2201,7 @@ dump_lim_channel_switch_announcement( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U psessionEntry->gLimChannelSwitch.primaryChannel = nNewChannel; schSetFixedBeaconFields(pMac, psessionEntry); - limSendBeaconInd(pMac, psessionEntry); + limSendBeaconInd(pMac, psessionEntry); return p; } @@ -2212,16 +2220,16 @@ dump_lim_vht_opmode_notification(tpAniSirGlobal pMac, tANI_U32 arg1,tANI_U32 arg p,"Session does not exist usage: 366 <0> sessionid channel \n"); return p; } - + limSendVHTOpmodeNotificationFrame(pMac, peer, nMode,psessionEntry); - + psessionEntry->gLimOperatingMode.present = 1; psessionEntry->gLimOperatingMode.chanWidth = nMode; psessionEntry->gLimOperatingMode.rxNSS = 0; psessionEntry->gLimOperatingMode.rxNSSType = 0; schSetFixedBeaconFields(pMac, psessionEntry); - limSendBeaconInd(pMac, psessionEntry); + limSendBeaconInd(pMac, psessionEntry); return p; } @@ -2252,9 +2260,9 @@ dump_lim_vht_channel_switch_notification(tpAniSirGlobal pMac, tANI_U32 arg1,tANI psessionEntry->gLimWiderBWChannelSwitch.newChanWidth = nChanWidth; psessionEntry->gLimWiderBWChannelSwitch.newCenterChanFreq0 = limGetCenterChannel(pMac,nNewChannel,(ncbMode+1),nChanWidth); psessionEntry->gLimWiderBWChannelSwitch.newCenterChanFreq1 = 0; - + schSetFixedBeaconFields(pMac, psessionEntry); - limSendBeaconInd(pMac, psessionEntry); + limSendBeaconInd(pMac, psessionEntry); return p; } @@ -2278,7 +2286,7 @@ dump_lim_cancel_channel_switch_announcement( tpAniSirGlobal pMac, tANI_U32 arg1, psessionEntry->gLimChannelSwitch.primaryChannel = 0; schSetFixedBeaconFields(pMac, psessionEntry); - limSendBeaconInd(pMac, psessionEntry); + limSendBeaconInd(pMac, psessionEntry); return p; } @@ -2288,9 +2296,9 @@ static char * dump_lim_mcc_policy_maker(tpAniSirGlobal pMac, tANI_U32 arg1,tANI_U32 arg2,tANI_U32 arg3, tANI_U32 arg4, char *p) { VOS_TRACE(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_FATAL, "dump_lim_mcc_policy_maker arg = %d",arg1); - + if(arg1 == 0) //Disable feature completely - { + { WDA_TrafficStatsTimerActivate(FALSE); if (ccmCfgSetInt(pMac, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, FALSE, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE) @@ -2299,15 +2307,15 @@ dump_lim_mcc_policy_maker(tpAniSirGlobal pMac, tANI_U32 arg1,tANI_U32 arg2,tANI_ } } else if(arg1 == 1) //Enable feature - { + { if (ccmCfgSetInt(pMac, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, TRUE, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE) { limLog( pMac, LOGE, FL("Could not set WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED")); - } + } } else if(arg1 == 2) //Enable feature and activate periodic timer - { + { if (ccmCfgSetInt(pMac, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, TRUE, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE) { @@ -2387,12 +2395,12 @@ static tDumpFuncEntry limMenuDumpTable[] = { {308, "PE:LIM: dump all 11H related data", dump_lim_dot11h_stats}, {309, "PE:LIM: dump to enable Measurement on AP", dump_lim_enable_measurement}, {310, "PE:LIM: dump to enable QuietIE on AP", dump_lim_enable_quietIE}, - {311, "PE:LIM: disable/enable scan 1(disable)", dump_lim_disable_enable_scan}, + {311, "PE:LIM: disable/enable scan 1(disable)", dump_lim_disable_enable_scan}, {320, "PE.LIM: send sme scan request", dump_lim_scan_req_send}, /*FIXME_GEN6*/ - /* This dump command is more of generic dump cmd and hence it should + /* This dump command is more of generic dump cmd and hence it should * be moved to logDump.c */ {321, "PE:LIM: Set Log Level <VOS Module> <VOS Log Level>", dump_lim_update_log_level}, @@ -2424,7 +2432,7 @@ static tDumpFuncEntry limMenuDumpTable[] = { {355, "PE.LIM: send sme start BSS request", dump_lim_send_start_bss_req}, {356, "PE.LIM: dump pesession info ", dump_lim_session_print}, {357, "PE.LIM: send DisAssocRequest", dump_lim_send_disassoc_req}, - {358, "PE.LIM: send sme stop bss request <session ID>", dump_lim_stop_bss_req}, + {358, "PE.LIM: send sme stop bss request <session ID>", dump_lim_stop_bss_req}, {359, "PE.LIM: send sme join request", dump_lim_send_join_req}, #if defined WLAN_FEATURE_VOWIFI {360, "PE.LIM: send an RRM action frame", dump_lim_send_rrm_action}, @@ -2455,7 +2463,7 @@ static tDumpFuncEntry limMenuDumpTable[] = { void limDumpInit(tpAniSirGlobal pMac) { - logDumpRegisterTable( pMac, &limMenuDumpTable[0], + logDumpRegisterTable( pMac, &limMenuDumpTable[0], sizeof(limMenuDumpTable)/sizeof(limMenuDumpTable[0]) ); } diff --git a/CORE/MAC/src/pe/lim/limRoamingAlgo.c b/CORE/MAC/src/pe/lim/limRoamingAlgo.c index e3e34a481abc..f91abf33b720 100644 --- a/CORE/MAC/src/pe/lim/limRoamingAlgo.c +++ b/CORE/MAC/src/pe/lim/limRoamingAlgo.c @@ -47,15 +47,15 @@ /** ---------------------------------------------------------------------- -\fn limSelectsBackgroundScanMode() -\brief This function is called by limIsBackgroundScanAllowed(). -\ Here LIM decides whether we shall enforce this background -\ scan or let HAL decide whether to proceed with the background +\fn limSelectsBackgroundScanMode() +\brief This function is called by limIsBackgroundScanAllowed(). +\ Here LIM decides whether we shall enforce this background +\ scan or let HAL decide whether to proceed with the background \ scan as HAL sees fits. LIM shall enforce background scan if: \ 1) station is not in link established state \ 2) station is in link established state, but there has been \ max number of consecutive background scan failure. -\ +\ \param tpAniSirGlobal pMac \return none \ ------------------------------------------------------------------------- */ @@ -68,7 +68,7 @@ tSirBackgroundScanMode limSelectsBackgroundScanMode(tpAniSirGlobal pMac) limLog(pMac, LOGP, FL("Fail to get WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE value")); return eSIR_NORMAL_BACKGROUND_SCAN; } - + if (cfgVal == 0) return eSIR_NORMAL_BACKGROUND_SCAN; @@ -92,7 +92,7 @@ tSirBackgroundScanMode limSelectsBackgroundScanMode(tpAniSirGlobal pMac) /** ----------------------------------------------------------- \fn limIsBackgroundScanAllowed \brief This function determines if background scan should be -\ allowed. It is called by limTriggerBackgroundScan(). +\ allowed. It is called by limTriggerBackgroundScan(). \param tpAniSirGlobal pMac \return none \ ------------------------------------------------------------- */ @@ -135,10 +135,10 @@ static tANI_U8 limIsBackgroundScanAllowed(tpAniSirGlobal pMac) \ when there is an exisiting link with an AP. \ SME_SCAN_REQ is issued to SME state machine with Active \ scanning is performed on one channel at a time. -\ +\ \ Assumptions: -\ Valid channel list at CFG is either populated by Roaming -\ algorithm upon determining/selecting a regulatory domain +\ Valid channel list at CFG is either populated by Roaming +\ algorithm upon determining/selecting a regulatory domain \ or by default has all 36 possible channels. \ \param tpAniSirGlobal pMac @@ -183,7 +183,7 @@ void limTriggerBackgroundScan(tpAniSirGlobal pMac) smeScanReq.bssType = eSIR_INFRASTRUCTURE_MODE; palCopyMemory( pMac->hHdd, (tANI_U8 *) smeScanReq.bssId, (tANI_U8 *) &bcAddr, sizeof(tSirMacAddr)); - + if (wlan_cfgGetStr(pMac, WNI_CFG_SSID, (tANI_U8 *) (smeScanReq.ssId[0].ssId), (tANI_U32 *) &ssidLen) != eSIR_SUCCESS) @@ -218,16 +218,20 @@ void limTriggerBackgroundScan(tpAniSirGlobal pMac) smeScanReq.returnAfterFirstMatch = 0; smeScanReq.returnUniqueResults = 1; - //At the first channel scan, clear the cached results + //At the first channel scan, clear the cached results if(pMac->lim.gLimBackgroundScanChannelId == 0) { - smeScanReq.returnFreshResults = SIR_BG_SCAN_PURGE_RESUTLS|SIR_BG_SCAN_RETURN_FRESH_RESULTS; + /* + * Do not purge while starting a scan. Rome firmware sends results + * of roaming scan into this cache. + */ + smeScanReq.returnFreshResults = SIR_BG_SCAN_RETURN_FRESH_RESULTS; } else { smeScanReq.returnFreshResults = SIR_BG_SCAN_RETURN_FRESH_RESULTS; } - + smeScanReq.channelList.numChannels = 1; if (pMac->lim.gLimBackgroundScanChannelId >= len) @@ -237,7 +241,7 @@ void limTriggerBackgroundScan(tpAniSirGlobal pMac) PELOGE(limLog(pMac, LOGE, FL("Skipping Background Scan since the channel list is exhausted."));) PELOGE(limLog(pMac, LOGE, FL("SME should send WNI_CFG_BACKGROUND_SCAN_PERIOD indication to start the background scan again."));) - /* Stop the BG scan timer here. SME should send WNI_CFG_BACKGROUND_SCAN_PERIOD + /* Stop the BG scan timer here. SME should send WNI_CFG_BACKGROUND_SCAN_PERIOD * indication to start the background scan again. */ if (TX_TIMER_VALID(pMac->lim.limTimers.gLimBackgroundScanTimer)) @@ -263,17 +267,17 @@ void limTriggerBackgroundScan(tpAniSirGlobal pMac) smeScanReq.uIEFieldLen = 0; smeScanReq.uIEFieldOffset = sizeof(tSirSmeScanReq); - + backgroundScan = limSelectsBackgroundScanMode(pMac); PELOG1(limLog(pMac, LOG1, FL("Performing (mode %d) Background Scan "), backgroundScan);) smeScanReq.backgroundScanMode = backgroundScan; - + //determine whether to send the results or not, If so, notify the BG scan results to SME if (pMac->lim.gLimBackgroundScanChannelId >= len) { pMac->lim.gLimReportBackgroundScanResults = TRUE; } - + limPostSmeMessage(pMac, eWNI_SME_SCAN_REQ, (tANI_U32 *) &smeScanReq); @@ -282,8 +286,8 @@ void limTriggerBackgroundScan(tpAniSirGlobal pMac) /** ---------------------------------------------------------------------- \fn limAbortBackgroundScan -\brief This function aborts background scan and send scan -\ response to SME. +\brief This function aborts background scan and send scan +\ response to SME. \param tpAniSirGlobal pMac \return none \ ------------------------------------------------------------------------- */ @@ -291,12 +295,12 @@ void limAbortBackgroundScan(tpAniSirGlobal pMac) { tANI_U16 scanRspLen = 8; - if(pMac->lim.gLimBackgroundScanTerminate == FALSE) + if(pMac->lim.gLimBackgroundScanTerminate == FALSE) { limLog(pMac, LOGE, FL("Abort Background Scan ")); if (TX_TIMER_VALID(pMac->lim.limTimers.gLimBackgroundScanTimer)) { - limDeactivateAndChangeTimer(pMac, eLIM_BACKGROUND_SCAN_TIMER); + limDeactivateAndChangeTimer(pMac, eLIM_BACKGROUND_SCAN_TIMER); } pMac->lim.gLimBackgroundScanTerminate = TRUE; @@ -310,11 +314,11 @@ void limAbortBackgroundScan(tpAniSirGlobal pMac) pMac->lim.gLimSmeScanResultLength - sizeof(tSirBssDescription); limSendSmeScanRsp(pMac, scanRspLen, eSIR_SME_SUCCESS, 0, 0); - } + } } // reset background scan variables - pMac->lim.gLimBackgroundScanChannelId = 0; + pMac->lim.gLimBackgroundScanChannelId = 0; return; } diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c index caecbf2bfb33..1d71f2013a28 100644 --- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c +++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c @@ -104,7 +104,7 @@ limSendSmeRsp(tpAniSirGlobal pMac, tANI_U16 msgType, return; } - + pSirSmeRsp->messageType = msgType; pSirSmeRsp->length = sizeof(tSirSmeRsp); pSirSmeRsp->statusCode = resultCode; @@ -119,7 +119,7 @@ limSendSmeRsp(tpAniSirGlobal pMac, tANI_U16 msgType, mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, smesessionId , mmhMsg.type)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT { tpPESession psessionEntry = peGetValidPowerSaveSession(pMac); switch(msgType) @@ -132,7 +132,7 @@ limSendSmeRsp(tpAniSirGlobal pMac, tANI_U16 msgType, break; case eWNI_PMC_ENTER_IMPS_RSP: limDiagEventReport(pMac, WLAN_PE_DIAG_ENTER_IMPS_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); - break; + break; case eWNI_PMC_EXIT_IMPS_RSP: limDiagEventReport(pMac, WLAN_PE_DIAG_EXIT_IMPS_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); break; @@ -147,17 +147,17 @@ limSendSmeRsp(tpAniSirGlobal pMac, tANI_U16 msgType, break; case eWNI_SME_STOP_BSS_RSP: limDiagEventReport(pMac, WLAN_PE_DIAG_STOP_BSS_RSP_EVENT, NULL, (tANI_U16)resultCode, 0); - break; + break; case eWNI_PMC_ENTER_WOWL_RSP: limDiagEventReport(pMac, WLAN_PE_DIAG_ENTER_WOWL_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); break; case eWNI_PMC_EXIT_WOWL_RSP: limDiagEventReport(pMac, WLAN_PE_DIAG_EXIT_WOWL_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); - break; - } - } + break; + } + } #endif //FEATURE_WLAN_DIAG_SUPPORT - + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); } /*** end limSendSmeRsp() ***/ @@ -180,13 +180,13 @@ limSendSmeRsp(tpAniSirGlobal pMac, tANI_U16 msgType, * NA * * @param pMac Pointer to Global MAC structure - * @param status Resume link status + * @param status Resume link status * @param ctx context passed while calling resmune link. * (join response to be sent) * * @return None */ -static void limSendSmeJoinReassocRspAfterResume( tpAniSirGlobal pMac, +static void limSendSmeJoinReassocRspAfterResume( tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *ctx) { tSirMsgQ mmhMsg; @@ -235,7 +235,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, tANI_U32 rspLen; tpDphHashNode pStaDs = NULL; -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT if (msgType == eWNI_SME_REASSOC_RSP) limDiagEventReport(pMac, WLAN_PE_DIAG_REASSOC_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); else @@ -249,7 +249,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, if(psessionEntry == NULL) { - rspLen = sizeof(tSirSmeJoinRsp); + rspLen = sizeof(tSirSmeJoinRsp); if( eHAL_STATUS_SUCCESS != palAllocateMemory( pMac->hHdd, (void **)&pSirSmeJoinRsp, rspLen)) { @@ -257,10 +257,10 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, limLog(pMac, LOGP, FL("call to palAllocateMemory failed for JOIN/REASSOC_RSP")); return; } - + palZeroMemory(pMac, (tANI_U8*)pSirSmeJoinRsp, rspLen); - - + + pSirSmeJoinRsp->beaconLength = 0; pSirSmeJoinRsp->assocReqLength = 0; pSirSmeJoinRsp->assocRspLength = 0; @@ -268,16 +268,16 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, else { - rspLen = psessionEntry->assocReqLen + psessionEntry->assocRspLen + - psessionEntry->bcnLen + + rspLen = psessionEntry->assocReqLen + psessionEntry->assocRspLen + + psessionEntry->bcnLen + #ifdef WLAN_FEATURE_VOWIFI_11R psessionEntry->RICDataLen + #endif -#ifdef FEATURE_WLAN_CCX - psessionEntry->tspecLen + -#endif +#ifdef FEATURE_WLAN_CCX + psessionEntry->tspecLen + +#endif sizeof(tSirSmeJoinRsp) - sizeof(tANI_U8) ; - + if( eHAL_STATUS_SUCCESS != palAllocateMemory( pMac->hHdd, (void **)&pSirSmeJoinRsp, rspLen)) { /// Buffer not available. Log error @@ -311,10 +311,10 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, #ifdef WLAN_FEATURE_VOWIFI_11R pSirSmeJoinRsp->parsedRicRspLen = 0; #endif -#ifdef FEATURE_WLAN_CCX +#ifdef FEATURE_WLAN_CCX pSirSmeJoinRsp->tspecIeLen = 0; #endif - + if(resultCode == eSIR_SME_SUCCESS) { @@ -328,7 +328,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, PELOG1(limLog(pMac, LOG1, FL("Beacon=%d"), psessionEntry->bcnLen);) #endif } - + if(psessionEntry->assocReq != NULL) { pSirSmeJoinRsp->assocReqLength = psessionEntry->assocReqLen; @@ -345,7 +345,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, palCopyMemory(pMac->hHdd, pSirSmeJoinRsp->frames + psessionEntry->bcnLen + psessionEntry->assocReqLen, psessionEntry->assocRsp, pSirSmeJoinRsp->assocRspLength); palFreeMemory(pMac->hHdd, psessionEntry->assocRsp); psessionEntry->assocRsp = NULL; - } + } #ifdef WLAN_FEATURE_VOWIFI_11R if(psessionEntry->ricData != NULL) { @@ -356,7 +356,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, PELOG1(limLog(pMac, LOG1, FL("RicLength=%d"), pSirSmeJoinRsp->parsedRicRspLen);) } #endif -#ifdef FEATURE_WLAN_CCX +#ifdef FEATURE_WLAN_CCX if(psessionEntry->tspecIes != NULL) { pSirSmeJoinRsp->tspecIeLen = psessionEntry->tspecLen; @@ -365,7 +365,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, psessionEntry->tspecIes = NULL; PELOG1(limLog(pMac, LOG1, FL("CCX-TspecLen=%d"), psessionEntry->tspecLen);) } -#endif +#endif pSirSmeJoinRsp->aid = psessionEntry->limAID; #ifdef WLAN_FEATURE_VOWIFI_11R_DEBUG PELOG1(limLog(pMac, LOG1, FL("AssocRsp=%d"), psessionEntry->assocRspLen);) @@ -400,29 +400,29 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, pSirSmeJoinRsp->length = (tANI_U16) rspLen; pSirSmeJoinRsp->statusCode = resultCode; pSirSmeJoinRsp->protStatusCode = protStatusCode; - + /* Update SME session ID and transaction Id */ pSirSmeJoinRsp->sessionId = smesessionId; pSirSmeJoinRsp->transactionId = smetransactionId; - + if(IS_MCC_SUPPORTED && limIsLinkSuspended( pMac ) ) { if( psessionEntry && psessionEntry->limSmeState == eLIM_SME_LINK_EST_STATE ) { - + #ifdef WLAN_FEATURE_11AC if (psessionEntry->vhtCapability) { ePhyChanBondState htSecondaryChannelOffset; /*Get 11ac cbState from 11n cbState*/ - htSecondaryChannelOffset = limGet11ACPhyCBState(pMac, + htSecondaryChannelOffset = limGet11ACPhyCBState(pMac, psessionEntry->currentOperChannel, psessionEntry->htSecondaryChannelOffset, psessionEntry->apCenterChan, psessionEntry); peSetResumeChannel( pMac, psessionEntry->currentOperChannel, htSecondaryChannelOffset); } - else + else #endif peSetResumeChannel( pMac, psessionEntry->currentOperChannel, psessionEntry->htSecondaryChannelOffset); } @@ -430,7 +430,7 @@ limSendSmeJoinReassocRsp(tpAniSirGlobal pMac, tANI_U16 msgType, { peSetResumeChannel( pMac, 0, 0); } - limResumeLink( pMac, limSendSmeJoinReassocRspAfterResume, + limResumeLink( pMac, limSendSmeJoinReassocRspAfterResume, (tANI_U32*) pSirSmeJoinRsp ); } else @@ -487,7 +487,7 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, if(psessionEntry == NULL) { - + if( eHAL_STATUS_SUCCESS != palAllocateMemory( pMac->hHdd, (void **)&pSirSmeRsp, size)) { /// Buffer not available. Log error @@ -495,7 +495,7 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, return; } palZeroMemory(pMac, (tANI_U8*)pSirSmeRsp, size); - + } else { @@ -519,7 +519,7 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, { sirCopyMacAddr(pSirSmeRsp->bssDescription.bssId, psessionEntry->bssId); - + /* Read beacon interval from session */ pSirSmeRsp->bssDescription.beaconInterval = (tANI_U16) psessionEntry->beaconParams.beaconInterval; pSirSmeRsp->bssType = psessionEntry->bssType; @@ -533,9 +533,9 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, #if 0 if (wlan_cfgGetInt(pMac, WNI_CFG_CURRENT_CHANNEL, &len) != eSIR_SUCCESS) limLog(pMac, LOGP, FL("could not retrieve CURRENT_CHANNEL from CFG")); - -#endif// TO SUPPORT BT-AMP - + +#endif// TO SUPPORT BT-AMP + pSirSmeRsp->bssDescription.channelId = psessionEntry->currentOperChannel; pSirSmeRsp->bssDescription.aniIndicator = 1; @@ -558,9 +558,9 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, size += ieLen - sizeof(tANI_U32); } - - + + } pSirSmeRsp->messageType = msgType; @@ -571,8 +571,8 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, pSirSmeRsp->transactionId = smetransactionId; pSirSmeRsp->statusCode = resultCode; if(psessionEntry != NULL ) - pSirSmeRsp->staId = psessionEntry->staId; //else it will be always zero smeRsp StaID = 0 - + pSirSmeRsp->staId = psessionEntry->staId; //else it will be always zero smeRsp StaID = 0 + mmhMsg.type = msgType; mmhMsg.bodyptr = pSirSmeRsp; @@ -585,7 +585,7 @@ limSendSmeStartBssRsp(tpAniSirGlobal pMac, { MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); } -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_START_BSS_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); #endif //FEATURE_WLAN_DIAG_SUPPORT @@ -754,6 +754,8 @@ limSendSmeScanRsp(tpAniSirGlobal pMac, tANI_U16 length, limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); PELOG2(limLog(pMac, LOG2, FL("statusCode : eSIR_SME_SUCCESS"));) } + // Discard previously cached scan results + limReInitScanResults(pMac); return; @@ -890,6 +892,80 @@ limSendSmeLfrScanRsp(tpAniSirGlobal pMac, tANI_U16 length, } //while(ptemp) } //for (i = 0; i < LIM_MAX_NUM_OF_SCAN_RESULTS; i++) + /* Repeat for normal scan cache */ + if (pMac->roam.roamSession[smesessionId].connectedProfile.SSID.length != 0) { + tSirMacSSid *pSsid = &pMac->roam.roamSession[smesessionId].connectedProfile.SSID; + for (i = 0; i < LIM_MAX_NUM_OF_SCAN_RESULTS; i++) + { + ptemp = pMac->lim.gLimCachedScanHashTable[i]; + while(ptemp) + { + if(palEqualMemory(pMac->hHdd, (tANI_U8* ) ptemp->bssDescription.ieFields+1, + (tANI_U8 *) &pSsid->length, + (tANI_U8) (pSsid->length + 1))) + { + pbBuf = ((tANI_U8 *)pSirSmeScanRsp) + msgLen; + if(0 == bssCount) + { + msgLen = sizeof(tSirSmeScanRsp) - + sizeof(tSirBssDescription) + + ptemp->bssDescription.length + + sizeof(ptemp->bssDescription.length); + pDesc = pSirSmeScanRsp->bssDescription; + } + else + { + msgLen += ptemp->bssDescription.length + + sizeof(ptemp->bssDescription.length); + pDesc = (tSirBssDescription *)pbBuf; + } + if ( (allocLength < msgLen) || + (LIM_MAX_NUM_OF_SCAN_RESULTS_REPORTED <= bssCount++) ) + { + pSirSmeScanRsp->statusCode = + eSIR_SME_MORE_SCAN_RESULTS_FOLLOW; + pSirSmeScanRsp->messageType = eWNI_SME_SCAN_RSP; + pSirSmeScanRsp->length = curMsgLen; + mmhMsg.bodyptr = pSirSmeScanRsp; + mmhMsg.bodyval = 0; + MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type)); + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); + if (eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd, + (void **)&pSirSmeScanRsp, + allocLength)) + { + // Log error + limLog(pMac, LOGP, + FL("call to palAllocateMemory failed for eWNI_SME_SCAN_RSP\n")); + return; + } + msgLen = sizeof(tSirSmeScanRsp) - + sizeof(tSirBssDescription) + + ptemp->bssDescription.length + + sizeof(ptemp->bssDescription.length); + pDesc = pSirSmeScanRsp->bssDescription; + bssCount = 1; + } + curMsgLen = msgLen; + + PELOG2(limLog(pMac, LOG2, FL("ScanRsp : msgLen %d, bssDescr Len=%d\n"), + msgLen, ptemp->bssDescription.length);) + pDesc->length + = ptemp->bssDescription.length; + palCopyMemory( pMac->hHdd, (tANI_U8 *) &pDesc->bssId, + (tANI_U8 *) &ptemp->bssDescription.bssId, + ptemp->bssDescription.length); + + PELOG2(limLog(pMac, LOG2, FL("BssId ")); + limPrintMacAddr(pMac, ptemp->bssDescription.bssId, LOG2);) + + pSirSmeScanRsp->sessionId = smesessionId; + pSirSmeScanRsp->transcationId = smetranscationId; + } + ptemp = ptemp->next; + } //while(ptemp) + } //for (i = 0; i < LIM_MAX_NUM_OF_SCAN_RESULTS; i++) + } if (0 == bssCount) { limPostSmeScanRspMessage(pMac, length, resultCode, smesessionId, smetranscationId); @@ -917,6 +993,8 @@ limSendSmeLfrScanRsp(tpAniSirGlobal pMac, tANI_U16 length, limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); PELOG2(limLog(pMac, LOG2, FL("statusCode : eSIR_SME_SUCCESS\n"));) } + // Discard previously cached scan results + limReInitLfrScanResults(pMac); return; @@ -941,7 +1019,7 @@ limSendSmeLfrScanRsp(tpAniSirGlobal pMac, tANI_U16 length, */ void -limPostSmeScanRspMessage(tpAniSirGlobal pMac, +limPostSmeScanRspMessage(tpAniSirGlobal pMac, tANI_U16 length, tSirResultCodes resultCode,tANI_U8 smesessionId, tANI_U16 smetransactionId) { @@ -972,13 +1050,13 @@ limPostSmeScanRspMessage(tpAniSirGlobal pMac, /*Update SME session Id and transaction Id */ pSirSmeScanRsp->sessionId = smesessionId; pSirSmeScanRsp->transcationId = smetransactionId; - + mmhMsg.type = eWNI_SME_SCAN_RSP; mmhMsg.bodyptr = pSirSmeScanRsp; mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_SCAN_RSP_EVENT, NULL, (tANI_U16)resultCode, 0); #endif //FEATURE_WLAN_DIAG_SUPPORT @@ -1022,7 +1100,7 @@ void limSendSmeOemDataRsp(tpAniSirGlobal pMac, tANI_U32* pMsgBuf, tSirResultCode tLimMlmOemDataRsp* pMlmOemDataRsp=NULL; tANI_U16 msgLength; - + //get the pointer to the mlm message pMlmOemDataRsp = (tLimMlmOemDataRsp*)(pMsgBuf); @@ -1106,24 +1184,24 @@ limSendSmeAuthRsp(tpAniSirGlobal pMac, return; } - + if(psessionEntry != NULL) { palCopyMemory( pMac->hHdd, (tANI_U8 *) pSirSmeAuthRsp->peerMacAddr, (tANI_U8 *) peerMacAddr, sizeof(tSirMacAddr)); pSirSmeAuthRsp->authType = authType; - + } pSirSmeAuthRsp->messageType = eWNI_SME_AUTH_RSP; pSirSmeAuthRsp->length = sizeof(tSirSmeAuthRsp); pSirSmeAuthRsp->statusCode = statusCode; pSirSmeAuthRsp->protStatusCode = protStatusCode; - + /* Update SME session and transaction Id*/ pSirSmeAuthRsp->sessionId = smesessionId; - pSirSmeAuthRsp->transactionId = smetransactionId; + pSirSmeAuthRsp->transactionId = smetransactionId; mmhMsg.type = eWNI_SME_AUTH_RSP; mmhMsg.bodyptr = pSirSmeAuthRsp; @@ -1191,7 +1269,7 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, tSirSmeDisassocRsp *pSirSmeDisassocRsp; tSirSmeDisassocInd *pSirSmeDisassocInd; tANI_U32 *pMsg; - + switch (disassocTrigger) { case eLIM_PEER_ENTITY_DISASSOC: @@ -1223,7 +1301,7 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, limCopyU16(pBuf, smetransactionId); pBuf += sizeof(tANI_U16); - //statusCode + //statusCode limCopyU32(pBuf, reasonCode); pBuf += sizeof(tSirResultCodes); @@ -1235,8 +1313,8 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, //for sta, it is always 1, IBSS is handled at halInitSta - -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT + +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DISASSOC_RSP_EVENT, psessionEntry, (tANI_U16)reasonCode, 0); #endif @@ -1260,7 +1338,7 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, pSirSmeDisassocInd->messageType = eWNI_SME_DISASSOC_IND; pSirSmeDisassocInd->length = sizeof(tSirSmeDisassocInd); - + /* Update SME session Id and Transaction Id */ pSirSmeDisassocInd->sessionId = smesessionId; pSirSmeDisassocInd->transactionId = smetransactionId; @@ -1276,7 +1354,7 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, palCopyMemory( pMac->hHdd, pBuf, peerMacAddr, sizeof(tSirMacAddr)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DISASSOC_IND_EVENT, psessionEntry, (tANI_U16)reasonCode, 0); #endif @@ -1291,7 +1369,7 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, { peDeleteSession(pMac,psessionEntry); } - + limSendSmeDisassocDeauthNtf( pMac, eHAL_STATUS_SUCCESS, (tANI_U32*) pMsg ); } /*** end limSendSmeDisassocNtf() ***/ @@ -1299,14 +1377,14 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, /** ----------------------------------------------------------------- \brief limSendSmeDisassocInd() - sends SME_DISASSOC_IND - - After receiving disassociation frame from peer entity, this + + After receiving disassociation frame from peer entity, this function sends a eWNI_SME_DISASSOC_IND to SME with a specific - reason code. - + reason code. + \param pMac - global mac structure - \param pStaDs - station dph hash node - \return none + \param pStaDs - station dph hash node + \return none \sa ----------------------------------------------------------------- */ void @@ -1328,41 +1406,41 @@ limSendSmeDisassocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs,tpPESession pses pSirSmeDisassocInd->transactionId = psessionEntry->transactionId; pSirSmeDisassocInd->statusCode = pStaDs->mlmStaContext.disassocReason; pSirSmeDisassocInd->reasonCode = pStaDs->mlmStaContext.disassocReason; - + palCopyMemory( pMac->hHdd, pSirSmeDisassocInd->bssId , psessionEntry->bssId , sizeof(tSirMacAddr)); - + palCopyMemory( pMac->hHdd, pSirSmeDisassocInd->peerMacAddr , pStaDs->staAddr, sizeof(tSirMacAddr)); pSirSmeDisassocInd->staId = pStaDs->staIndex; - + mmhMsg.type = eWNI_SME_DISASSOC_IND; mmhMsg.bodyptr = pSirSmeDisassocInd; mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT - limDiagEventReport(pMac, WLAN_PE_DIAG_DISASSOC_IND_EVENT, psessionEntry, 0, (tANI_U16)pStaDs->mlmStaContext.disassocReason); +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT + limDiagEventReport(pMac, WLAN_PE_DIAG_DISASSOC_IND_EVENT, psessionEntry, 0, (tANI_U16)pStaDs->mlmStaContext.disassocReason); #endif //FEATURE_WLAN_DIAG_SUPPORT limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); - + } /*** end limSendSmeDisassocInd() ***/ /** ----------------------------------------------------------------- \brief limSendSmeDeauthInd() - sends SME_DEAUTH_IND - - After receiving deauthentication frame from peer entity, this + + After receiving deauthentication frame from peer entity, this function sends a eWNI_SME_DEAUTH_IND to SME with a specific - reason code. - + reason code. + \param pMac - global mac structure - \param pStaDs - station dph hash node - \return none + \param pStaDs - station dph hash node + \return none \sa ----------------------------------------------------------------- */ void -limSendSmeDeauthInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry) +limSendSmeDeauthInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry) { tSirMsgQ mmhMsg; tSirSmeDeauthInd *pSirSmeDeauthInd; @@ -1401,7 +1479,7 @@ limSendSmeDeauthInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psess mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DEAUTH_IND_EVENT, psessionEntry, 0, pStaDs->mlmStaContext.cleanupTrigger); #endif //FEATURE_WLAN_DIAG_SUPPORT @@ -1603,12 +1681,12 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode tANI_U8 sessionId; tANI_U32 *pMsg; - psessionEntry = peFindSessionByBssid(pMac,peerMacAddr,&sessionId); + psessionEntry = peFindSessionByBssid(pMac,peerMacAddr,&sessionId); switch (deauthTrigger) { case eLIM_PEER_ENTITY_DEAUTH: return; - + case eLIM_HOST_DEAUTH: /** * Deauthentication response to host triggered @@ -1627,12 +1705,12 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode pSirSmeDeauthRsp->length = sizeof(tSirSmeDeauthRsp); pSirSmeDeauthRsp->statusCode = reasonCode; pSirSmeDeauthRsp->sessionId = smesessionId; - pSirSmeDeauthRsp->transactionId = smetransactionId; + pSirSmeDeauthRsp->transactionId = smetransactionId; pBuf = (tANI_U8 *) pSirSmeDeauthRsp->peerMacAddr; palCopyMemory( pMac->hHdd, pBuf, peerMacAddr, sizeof(tSirMacAddr)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DEAUTH_RSP_EVENT, psessionEntry, 0, (tANI_U16)reasonCode); #endif @@ -1678,7 +1756,7 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode //peerMacAddr palCopyMemory( pMac->hHdd, pSirSmeDeauthInd->peerMacAddr, peerMacAddr, sizeof(tSirMacAddr)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DEAUTH_IND_EVENT, psessionEntry, 0, (tANI_U16)reasonCode); #endif //FEATURE_WLAN_DIAG_SUPPORT @@ -1686,12 +1764,12 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode break; } - + /*Delete the PE session created */ if(psessionEntry != NULL) { peDeleteSession(pMac,psessionEntry); - } + } limSendSmeDisassocDeauthNtf( pMac, eHAL_STATUS_SUCCESS, (tANI_U32*) pMsg ); @@ -1861,10 +1939,10 @@ limSendSmeSetContextRsp(tpAniSirGlobal pMac, MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); } -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0); #endif //FEATURE_WLAN_DIAG_SUPPORT - + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); } /*** end limSendSmeSetContextRsp() ***/ @@ -1914,7 +1992,7 @@ limSendSmeRemoveKeyRsp(tpAniSirGlobal pMac, return; } - + if(psessionEntry != NULL) { @@ -1923,15 +2001,15 @@ limSendSmeRemoveKeyRsp(tpAniSirGlobal pMac, pBuf += sizeof(tSirMacAddr); limCopyU32(pBuf, resultCode); } - + pSirSmeRemoveKeyRsp->messageType = eWNI_SME_REMOVEKEY_RSP; pSirSmeRemoveKeyRsp->length = sizeof(tSirSmeRemoveKeyRsp); pSirSmeRemoveKeyRsp->statusCode = resultCode; - + /* Update SME session and transaction Id*/ pSirSmeRemoveKeyRsp->sessionId = smesessionId; - pSirSmeRemoveKeyRsp->transactionId = smetransactionId; - + pSirSmeRemoveKeyRsp->transactionId = smetransactionId; + mmhMsg.type = eWNI_SME_REMOVEKEY_RSP; mmhMsg.bodyptr = pSirSmeRemoveKeyRsp; mmhMsg.bodyval = 0; @@ -2080,9 +2158,9 @@ limSendSmeNeighborBssInd(tpAniSirGlobal pMac, } /*** end limSendSmeNeighborBssInd() ***/ /** ----------------------------------------------------------------- - \brief limSendSmeAddtsRsp() - sends SME ADDTS RSP - \ This function sends a eWNI_SME_ADDTS_RSP to SME. - \ SME only looks at rc and tspec field. + \brief limSendSmeAddtsRsp() - sends SME ADDTS RSP + \ This function sends a eWNI_SME_ADDTS_RSP to SME. + \ SME only looks at rc and tspec field. \param pMac - global mac structure \param rspReqd - is SmeAddTsRsp required \param status - status code of SME_ADD_TS_RSP @@ -2090,8 +2168,8 @@ limSendSmeNeighborBssInd(tpAniSirGlobal pMac, \sa ----------------------------------------------------------------- */ void -limSendSmeAddtsRsp(tpAniSirGlobal pMac, tANI_U8 rspReqd, tANI_U32 status, tpPESession psessionEntry, - tSirMacTspecIE tspec, tANI_U8 smesessionId, tANI_U16 smetransactionId) +limSendSmeAddtsRsp(tpAniSirGlobal pMac, tANI_U8 rspReqd, tANI_U32 status, tpPESession psessionEntry, + tSirMacTspecIE tspec, tANI_U8 smesessionId, tANI_U16 smetransactionId) { tpSirAddtsRsp rsp; tSirMsgQ mmhMsg; @@ -2109,13 +2187,13 @@ limSendSmeAddtsRsp(tpAniSirGlobal pMac, tANI_U8 rspReqd, tANI_U32 status, tpPESe rsp->messageType = eWNI_SME_ADDTS_RSP; rsp->rc = status; rsp->rsp.status = (enum eSirMacStatusCodes) status; - //palCopyMemory( pMac->hHdd, (tANI_U8 *) &rsp->rsp.tspec, (tANI_U8 *) &addts->tspec, sizeof(addts->tspec)); + //palCopyMemory( pMac->hHdd, (tANI_U8 *) &rsp->rsp.tspec, (tANI_U8 *) &addts->tspec, sizeof(addts->tspec)); rsp->rsp.tspec = tspec; - + /* Update SME session Id and transcation Id */ rsp->sessionId = smesessionId; rsp->transactionId = smetransactionId; - + mmhMsg.type = eWNI_SME_ADDTS_RSP; mmhMsg.bodyptr = rsp; mmhMsg.bodyval = 0; @@ -2127,10 +2205,10 @@ limSendSmeAddtsRsp(tpAniSirGlobal pMac, tANI_U8 rspReqd, tANI_U32 status, tpPESe { MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); } -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_ADDTS_RSP_EVENT, psessionEntry, 0, 0); #endif //FEATURE_WLAN_DIAG_SUPPORT - + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); return; } @@ -2186,16 +2264,16 @@ limSendSmeDeltsRsp(tpAniSirGlobal pMac, tpSirDeltsReq delts, tANI_U32 status,tpP return; } palZeroMemory( pMac->hHdd, (tANI_U8 *) rsp, sizeof(*rsp)); - + if(psessionEntry != NULL) { - + rsp->aid = delts->aid; palCopyMemory( pMac->hHdd, (tANI_U8 *) &rsp->macAddr[0], (tANI_U8 *) &delts->macAddr[0], 6); palCopyMemory( pMac->hHdd, (tANI_U8 *) &rsp->rsp, (tANI_U8 *) &delts->req, sizeof(tSirDeltsReqInfo)); - } + } + - rsp->messageType = eWNI_SME_DELTS_RSP; rsp->rc = status; @@ -2214,10 +2292,10 @@ limSendSmeDeltsRsp(tpAniSirGlobal pMac, tpSirDeltsReq delts, tANI_U32 status,tpP { MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); } -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DELTS_RSP_EVENT, psessionEntry, (tANI_U16)status, 0); #endif //FEATURE_WLAN_DIAG_SUPPORT - + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); } @@ -2254,7 +2332,7 @@ limSendSmeDeltsInd(tpAniSirGlobal pMac, tpSirDeltsReqInfo delts, tANI_U16 aid,tp mmhMsg.bodyptr = rsp; mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_DELTS_IND_EVENT, psessionEntry, 0, 0); #endif //FEATURE_WLAN_DIAG_SUPPORT @@ -2280,9 +2358,9 @@ limSendSmeDeltsInd(tpAniSirGlobal pMac, tpSirDeltsReqInfo delts, tANI_U16 aid,tp * NA * * @param pMac Pointer to Global MAC structure - * @param p80211Stats Statistics sent in response + * @param p80211Stats Statistics sent in response * @param resultCode TODO: - * + * * * @return none */ @@ -2306,18 +2384,18 @@ limSendSmeStatsRsp(tpAniSirGlobal pMac, tANI_U16 msgType, void* stats) break; case WDA_STAT_SUMM_RSP: mmhMsg.type = eWNI_SME_STAT_SUMM_RSP; - break; + break; default: mmhMsg.type = msgType; //Response from within PE break; } - pMsgHdr->messageType = mmhMsg.type; + pMsgHdr->messageType = mmhMsg.type; mmhMsg.bodyptr = stats; mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type)); - limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); return; @@ -2342,9 +2420,9 @@ limSendSmeStatsRsp(tpAniSirGlobal pMac, tANI_U16 msgType, void* stats) * NA * * @param pMac Pointer to Global MAC structure - * @param p80211Stats Statistics sent in response + * @param p80211Stats Statistics sent in response * @param resultCode TODO: - * + * * * @return none */ @@ -2366,9 +2444,9 @@ limSendSmePEStatisticsRsp(tpAniSirGlobal pMac, tANI_U16 msgType, void* stats) //Fill the Session Id pPeStats->sessionId = pPeSessionEntry->smeSessionId; } - + pPeStats->msgType = eWNI_SME_GET_STATISTICS_RSP; - + //msgType should be WDA_GET_STATISTICS_RSP mmhMsg.type = eWNI_SME_GET_STATISTICS_RSP; @@ -2376,7 +2454,7 @@ limSendSmePEStatisticsRsp(tpAniSirGlobal pMac, tANI_U16 msgType, void* stats) mmhMsg.bodyptr = stats; mmhMsg.bodyval = 0; MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type)); - limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); return; @@ -2448,24 +2526,24 @@ void limSendSmeIBSSPeerInd( tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, - tANI_U16 staIndex, + tANI_U16 staIndex, tANI_U8 ucastIdx, tANI_U8 bcastIdx, - tANI_U8 *beacon, - tANI_U16 beaconLen, + tANI_U8 *beacon, + tANI_U16 beaconLen, tANI_U16 msgType, tANI_U8 sessionId) { tSirMsgQ mmhMsg; tSmeIbssPeerInd *pNewPeerInd; - + if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd,(void * *) &pNewPeerInd,(sizeof(tSmeIbssPeerInd) + beaconLen))) { PELOGE(limLog(pMac, LOGE, FL("Failed to allocate memory"));) return; } - + palZeroMemory(pMac->hHdd, (void *) pNewPeerInd, (sizeof(tSmeIbssPeerInd) + beaconLen)); palCopyMemory( pMac->hHdd, (tANI_U8 *) pNewPeerInd->peerAddr, @@ -2487,19 +2565,19 @@ limSendSmeIBSSPeerInd( mmhMsg.bodyptr = pNewPeerInd; MTRACE(macTraceMsgTx(pMac, sessionId, mmhMsg.type)); limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); - + } /** ----------------------------------------------------------------- \brief limSendExitBmpsInd() - sends exit bmps indication - + This function sends a eWNI_PMC_EXIT_BMPS_IND with a specific reason - code to SME. This will trigger SME to get out of BMPS mode. - + code to SME. This will trigger SME to get out of BMPS mode. + \param pMac - global mac structure \param reasonCode - reason for which PE wish to exit BMPS - \return none + \return none \sa ----------------------------------------------------------------- */ void limSendExitBmpsInd(tpAniSirGlobal pMac, tExitBmpsReason reasonCode, @@ -2508,7 +2586,7 @@ void limSendExitBmpsInd(tpAniSirGlobal pMac, tExitBmpsReason reasonCode, tSirMsgQ mmhMsg; tANI_U16 msgLen = 0; tpSirSmeExitBmpsInd pExitBmpsInd; - + msgLen = sizeof(tSirSmeExitBmpsInd); if( eHAL_STATUS_SUCCESS != palAllocateMemory( pMac->hHdd, (void **)&pExitBmpsInd, msgLen )) { @@ -2526,13 +2604,13 @@ void limSendExitBmpsInd(tpAniSirGlobal pMac, tExitBmpsReason reasonCode, mmhMsg.type = eWNI_PMC_EXIT_BMPS_IND; mmhMsg.bodyptr = pExitBmpsInd; mmhMsg.bodyval = 0; - + PELOG1(limLog(pMac, LOG1, FL("Sending eWNI_PMC_EXIT_BMPS_IND to SME. "));) MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type)); -#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT +#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT limDiagEventReport(pMac, WLAN_PE_DIAG_EXIT_BMPS_IND_EVENT, peGetValidPowerSaveSession(pMac), 0, (tANI_U16)reasonCode); #endif //FEATURE_WLAN_DIAG_SUPPORT - + limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT); return; @@ -2544,10 +2622,10 @@ void limSendExitBmpsInd(tpAniSirGlobal pMac, tExitBmpsReason reasonCode, /*-------------------------------------------------------------------------- \brief peDeleteSession() - Handle the Delete BSS Response from HAL. - + \param pMac - pointer to global adapter context \param sessionId - Message pointer. - + \sa --------------------------------------------------------------------------*/ @@ -2563,22 +2641,22 @@ void limHandleDeleteBssRsp(tpAniSirGlobal pMac,tpSirMsgQ MsgQ) if (psessionEntry->limSystemRole == eLIM_STA_IN_IBSS_ROLE) { limIbssDelBssRsp(pMac, MsgQ->bodyptr,psessionEntry); - } + } else if(psessionEntry->limSystemRole == eLIM_UNKNOWN_ROLE) { limProcessSmeDelBssRsp(pMac, MsgQ->bodyval,psessionEntry); } - + else limProcessMlmDelBssRsp(pMac,MsgQ,psessionEntry); - + } #ifdef WLAN_FEATURE_VOWIFI_11R /** ----------------------------------------------------------------- - \brief limSendSmeAggrQosRsp() - sends SME FT AGGR QOS RSP - \ This function sends a eWNI_SME_FT_AGGR_QOS_RSP to SME. - \ SME only looks at rc and tspec field. + \brief limSendSmeAggrQosRsp() - sends SME FT AGGR QOS RSP + \ This function sends a eWNI_SME_FT_AGGR_QOS_RSP to SME. + \ SME only looks at rc and tspec field. \param pMac - global mac structure \param rspReqd - is SmeAddTsRsp required \param status - status code of eWNI_SME_FT_AGGR_QOS_RSP @@ -2586,7 +2664,7 @@ void limHandleDeleteBssRsp(tpAniSirGlobal pMac,tpSirMsgQ MsgQ) \sa ----------------------------------------------------------------- */ void -limSendSmeAggrQosRsp(tpAniSirGlobal pMac, tpSirAggrQosRsp aggrQosRsp, +limSendSmeAggrQosRsp(tpAniSirGlobal pMac, tpSirAggrQosRsp aggrQosRsp, tANI_U8 smesessionId) { tSirMsgQ mmhMsg; @@ -2602,13 +2680,13 @@ limSendSmeAggrQosRsp(tpAniSirGlobal pMac, tpSirAggrQosRsp aggrQosRsp, #endif /** ----------------------------------------------------------------- - \brief limSendSmePreChannelSwitchInd() - sends an indication to SME + \brief limSendSmePreChannelSwitchInd() - sends an indication to SME before switching channels for spectrum manangement. - + This function sends a eWNI_SME_PRE_SWITCH_CHL_IND to SME. - + \param pMac - global mac structure - \return none + \return none \sa ----------------------------------------------------------------- */ void @@ -2642,13 +2720,13 @@ limSendSmePreChannelSwitchInd(tpAniSirGlobal pMac, tpPESession psessionEntry) } /** ----------------------------------------------------------------- - \brief limSendSmePostChannelSwitchInd() - sends an indication to SME + \brief limSendSmePostChannelSwitchInd() - sends an indication to SME after channel switch for spectrum manangement is complete. - + This function sends a eWNI_SME_POST_SWITCH_CHL_IND to SME. - + \param pMac - global mac structure - \return none + \return none \sa ----------------------------------------------------------------- */ void @@ -2676,12 +2754,12 @@ void limSendSmeMaxAssocExceededNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, { PELOGE(limLog(pMac, LOGE, FL("Failed to allocate memory"));) return; - } + } palZeroMemory(pMac->hHdd, (void *) pSmeMaxAssocInd, sizeof(tSmeMaxAssocInd)); palCopyMemory( pMac->hHdd, (tANI_U8 *)pSmeMaxAssocInd->peerMac, (tANI_U8 *)peerMacAddr, sizeof(tSirMacAddr)); pSmeMaxAssocInd->mesgType = eWNI_SME_MAX_ASSOC_EXCEEDED; - pSmeMaxAssocInd->mesgLen = sizeof(tSmeMaxAssocInd); + pSmeMaxAssocInd->mesgLen = sizeof(tSmeMaxAssocInd); pSmeMaxAssocInd->sessionId = smesessionId; mmhMsg.type = pSmeMaxAssocInd->mesgType; mmhMsg.bodyptr = pSmeMaxAssocInd; |
