static void ap_beacon_process( tpAniSirGlobal pMac, tANI_U8* pRxPacketInfo, tpSchBeaconStruct pBcnStruct, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry) { tpSirMacMgmtHdr pMh = WDA_GET_RX_MAC_HEADER(pRxPacketInfo); tANI_U32 phyMode; tSirRFBand rfBand = SIR_BAND_UNKNOWN; //Get RF band from psessionEntry rfBand = psessionEntry->limRFBand; limGetPhyMode(pMac, &phyMode, psessionEntry); if(SIR_BAND_5_GHZ == rfBand) { if (psessionEntry->htCapability) { if (pBcnStruct->channelNumber == psessionEntry->currentOperChannel) { //11a (non HT) AP overlaps or //HT AP with HT op mode as mixed overlaps. //HT AP with HT op mode as overlap legacy overlaps. if ((!pBcnStruct->HTInfo.present) || (eSIR_HT_OP_MODE_MIXED == pBcnStruct->HTInfo.opMode) || (eSIR_HT_OP_MODE_OVERLAP_LEGACY == pBcnStruct->HTInfo.opMode)) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(pMac->lim.gLimOverlap11aParams)); if (pMac->lim.gLimOverlap11aParams.numSta && !pMac->lim.gLimOverlap11aParams.protectionEnabled) { limEnable11aProtection(pMac, true, true, pBeaconParams,psessionEntry); } } //HT AP with HT20 op mode overlaps. else if(eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT == pBcnStruct->HTInfo.opMode) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(pMac->lim.gLimOverlapHt20Params)); if (pMac->lim.gLimOverlapHt20Params.numSta && !pMac->lim.gLimOverlapHt20Params.protectionEnabled) { limEnableHT20Protection(pMac, true, true, pBeaconParams,psessionEntry); } } } } } else if(SIR_BAND_2_4_GHZ == rfBand) { //We are 11G AP. if ((phyMode == WNI_CFG_PHY_MODE_11G) && (false == psessionEntry->htCapability)) { if (pBcnStruct->channelNumber == psessionEntry->currentOperChannel) { if (((!(pBcnStruct->erpPresent)) && !(pBcnStruct->HTInfo.present))|| //if erp not present then 11B AP overlapping (pBcnStruct->erpPresent && (pBcnStruct->erpIEInfo.useProtection || pBcnStruct->erpIEInfo.nonErpPresent))) { #ifdef FEATURE_WLAN_ESE if( psessionEntry->isESEconnection ) { VOS_TRACE (VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO, "%s: [INFOLOG]ESE 11g erpPresent=%d useProtection=%d nonErpPresent=%d", __func__, pBcnStruct->erpPresent, pBcnStruct->erpIEInfo.useProtection, pBcnStruct->erpIEInfo.nonErpPresent); } #endif limEnableOverlap11gProtection(pMac, pBeaconParams, pMh,psessionEntry); } } } // handling the case when HT AP has overlapping legacy BSS. else if(psessionEntry->htCapability) { if (pBcnStruct->channelNumber == psessionEntry->currentOperChannel) { if (((!(pBcnStruct->erpPresent)) && !(pBcnStruct->HTInfo.present))|| //if erp not present then 11B AP overlapping (pBcnStruct->erpPresent && (pBcnStruct->erpIEInfo.useProtection || pBcnStruct->erpIEInfo.nonErpPresent))) { #ifdef FEATURE_WLAN_ESE if( psessionEntry->isESEconnection ) { VOS_TRACE (VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO, "%s: [INFOLOG]ESE 11g erpPresent=%d useProtection=%d nonErpPresent=%d", __func__, pBcnStruct->erpPresent, pBcnStruct->erpIEInfo.useProtection, pBcnStruct->erpIEInfo.nonErpPresent); } #endif limEnableOverlap11gProtection(pMac, pBeaconParams, pMh,psessionEntry); } //11g device overlaps if (pBcnStruct->erpPresent && !(pBcnStruct->erpIEInfo.useProtection || pBcnStruct->erpIEInfo.nonErpPresent) && !(pBcnStruct->HTInfo.present)) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(psessionEntry->gLimOverlap11gParams)); if (psessionEntry->gLimOverlap11gParams.numSta && !psessionEntry->gLimOverlap11gParams.protectionEnabled) { limEnableHtProtectionFrom11g(pMac, true, true, pBeaconParams,psessionEntry); } } //ht device overlaps. //here we will check for HT related devices only which might need protection. //check for 11b and 11g is already done in the previous blocks. //so we will not check for HT operating mode as MIXED. if (pBcnStruct->HTInfo.present) { //if we are not already in mixed mode or legacy mode as HT operating mode //and received beacon has HT operating mode as legacy //then we need to enable protection from 11g station. //we don't need protection from 11b because if that's needed then our operating //mode would have already been set to legacy in the previous blocks. if(eSIR_HT_OP_MODE_OVERLAP_LEGACY == pBcnStruct->HTInfo.opMode) { if((eSIR_HT_OP_MODE_MIXED != pMac->lim.gHTOperMode) && (eSIR_HT_OP_MODE_OVERLAP_LEGACY != pMac->lim.gHTOperMode)) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(psessionEntry->gLimOverlap11gParams)); if (psessionEntry->gLimOverlap11gParams.numSta && !psessionEntry->gLimOverlap11gParams.protectionEnabled) { limEnableHtProtectionFrom11g(pMac, true, true, pBeaconParams,psessionEntry); } } } else if(eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT == pBcnStruct->HTInfo.opMode) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(psessionEntry->gLimOverlapHt20Params)); if (psessionEntry->gLimOverlapHt20Params.numSta && !psessionEntry->gLimOverlapHt20Params.protectionEnabled) { limEnableHT20Protection(pMac, true, true, pBeaconParams,psessionEntry); } } } } } } pMac->sch.gSchBcnIgnored++; }
static void ap_beacon_process( tpAniSirGlobal pMac, tANI_U8* pRxPacketInfo, tpSchBeaconStruct pBcnStruct, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry) { tpSirMacMgmtHdr pMh = WDA_GET_RX_MAC_HEADER(pRxPacketInfo); tANI_U32 phyMode; tSirRFBand rfBand = SIR_BAND_UNKNOWN; rfBand = psessionEntry->limRFBand; limGetPhyMode(pMac, &phyMode, psessionEntry); if(SIR_BAND_5_GHZ == rfBand) { if (psessionEntry->htCapability) { if (pBcnStruct->channelNumber == psessionEntry->currentOperChannel) { if ((!pBcnStruct->HTInfo.present) || (eSIR_HT_OP_MODE_MIXED == pBcnStruct->HTInfo.opMode) || (eSIR_HT_OP_MODE_OVERLAP_LEGACY == pBcnStruct->HTInfo.opMode)) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(pMac->lim.gLimOverlap11aParams)); if (pMac->lim.gLimOverlap11aParams.numSta && !pMac->lim.gLimOverlap11aParams.protectionEnabled) { limEnable11aProtection(pMac, true, true, pBeaconParams,psessionEntry); } } else if(eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT == pBcnStruct->HTInfo.opMode) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(pMac->lim.gLimOverlapHt20Params)); if (pMac->lim.gLimOverlapHt20Params.numSta && !pMac->lim.gLimOverlapHt20Params.protectionEnabled) { limEnableHT20Protection(pMac, true, true, pBeaconParams,psessionEntry); } } } } } else if(SIR_BAND_2_4_GHZ == rfBand) { if ((phyMode == WNI_CFG_PHY_MODE_11G) && (false == psessionEntry->htCapability)) { if (pBcnStruct->channelNumber == psessionEntry->currentOperChannel) { if (((!(pBcnStruct->erpPresent)) && !(pBcnStruct->HTInfo.present))|| (pBcnStruct->erpPresent && (pBcnStruct->erpIEInfo.useProtection || pBcnStruct->erpIEInfo.nonErpPresent))) { #ifdef FEATURE_WLAN_CCX if( psessionEntry->isCCXconnection ) { VOS_TRACE (VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO, "%s: [INFOLOG]CCX 11g erpPresent=%d useProtection=%d nonErpPresent=%d", __func__, pBcnStruct->erpPresent, pBcnStruct->erpIEInfo.useProtection, pBcnStruct->erpIEInfo.nonErpPresent); } #endif limEnableOverlap11gProtection(pMac, pBeaconParams, pMh,psessionEntry); } } } else if(psessionEntry->htCapability) { if (pBcnStruct->channelNumber == psessionEntry->currentOperChannel) { if (((!(pBcnStruct->erpPresent)) && !(pBcnStruct->HTInfo.present))|| (pBcnStruct->erpPresent && (pBcnStruct->erpIEInfo.useProtection || pBcnStruct->erpIEInfo.nonErpPresent))) { #ifdef FEATURE_WLAN_CCX if( psessionEntry->isCCXconnection ) { VOS_TRACE (VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO, "%s: [INFOLOG]CCX 11g erpPresent=%d useProtection=%d nonErpPresent=%d", __func__, pBcnStruct->erpPresent, pBcnStruct->erpIEInfo.useProtection, pBcnStruct->erpIEInfo.nonErpPresent); } #endif limEnableOverlap11gProtection(pMac, pBeaconParams, pMh,psessionEntry); } if (pBcnStruct->erpPresent && !(pBcnStruct->erpIEInfo.useProtection || pBcnStruct->erpIEInfo.nonErpPresent) && !(pBcnStruct->HTInfo.present)) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(psessionEntry->gLimOverlap11gParams)); if (psessionEntry->gLimOverlap11gParams.numSta && !psessionEntry->gLimOverlap11gParams.protectionEnabled) { limEnableHtProtectionFrom11g(pMac, true, true, pBeaconParams,psessionEntry); } } if (pBcnStruct->HTInfo.present) { if(eSIR_HT_OP_MODE_OVERLAP_LEGACY == pBcnStruct->HTInfo.opMode) { if((eSIR_HT_OP_MODE_MIXED != pMac->lim.gHTOperMode) && (eSIR_HT_OP_MODE_OVERLAP_LEGACY != pMac->lim.gHTOperMode)) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(psessionEntry->gLimOverlap11gParams)); if (psessionEntry->gLimOverlap11gParams.numSta && !psessionEntry->gLimOverlap11gParams.protectionEnabled) { limEnableHtProtectionFrom11g(pMac, true, true, pBeaconParams,psessionEntry); } } } else if(eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT == pBcnStruct->HTInfo.opMode) { limUpdateOverlapStaParam(pMac, pMh->bssId, &(psessionEntry->gLimOverlapHt20Params)); if (psessionEntry->gLimOverlapHt20Params.numSta && !psessionEntry->gLimOverlapHt20Params.protectionEnabled) { limEnableHT20Protection(pMac, true, true, pBeaconParams,psessionEntry); } } } } } } pMac->sch.gSchBcnIgnored++; }
/** * @function : limUpdateAssocStaDatas * * @brief : This function is called to Update the Station Descriptor (dph) Details from * Association / ReAssociation Response Frame * *LOGIC: * *ASSUMPTIONS: * *NOTE: * * @param pMac - Pointer to Global MAC structure * @param pStaDs - Station Descriptor in DPH * @param pAssocRsp - Pointer to Association Response Structure * * @return None */ void limUpdateAssocStaDatas(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpSirAssocRsp pAssocRsp,tpPESession psessionEntry) { tANI_U32 prop; tANI_U32 phyMode; tANI_U32 val; //tpSirBoardCapabilities pBoardCaps; tANI_BOOLEAN qosMode; tANI_U16 rxHighestRate = 0; limGetPhyMode(pMac, &phyMode, psessionEntry); pStaDs->staType= STA_ENTRY_SELF; limGetQosMode(psessionEntry, &qosMode); // set the ani peer bit, if self mode is one of the proprietary modes if(IS_DOT11_MODE_PROPRIETARY(psessionEntry->dot11mode)) { wlan_cfgGetInt(pMac, WNI_CFG_PROPRIETARY_ANI_FEATURES_ENABLED, &prop); if (prop) { pStaDs->aniPeer = eHAL_SET; pStaDs->propCapability = pAssocRsp->propIEinfo.capability; } } //pMac->lim.gLimMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE; pStaDs->mlmStaContext.authType = psessionEntry->limCurrentAuthType; // Add capabilities information, rates and AID pStaDs->mlmStaContext.capabilityInfo = pAssocRsp->capabilityInfo; pStaDs->shortPreambleEnabled= (tANI_U8)pAssocRsp->capabilityInfo.shortPreamble; //Update HT Capabilites only when the self mode supports HT if(IS_DOT11_MODE_HT(psessionEntry->dot11mode)) { pStaDs->mlmStaContext.htCapability = pAssocRsp->HTCaps.present; if ( pAssocRsp->HTCaps.present ) { pStaDs->htGreenfield = ( tANI_U8 ) pAssocRsp->HTCaps.greenField; pStaDs->htSupportedChannelWidthSet = ( tANI_U8 ) (pAssocRsp->HTCaps.supportedChannelWidthSet ? pAssocRsp->HTInfo.recommendedTxWidthSet : pAssocRsp->HTCaps.supportedChannelWidthSet ); pStaDs->htLsigTXOPProtection = ( tANI_U8 ) pAssocRsp->HTCaps.lsigTXOPProtection; pStaDs->htMIMOPSState = (tSirMacHTMIMOPowerSaveState)pAssocRsp->HTCaps.mimoPowerSave; pStaDs->htMaxAmsduLength = ( tANI_U8 ) pAssocRsp->HTCaps.maximalAMSDUsize; pStaDs->htAMpduDensity = pAssocRsp->HTCaps.mpduDensity; pStaDs->htDsssCckRate40MHzSupport = (tANI_U8)pAssocRsp->HTCaps.dsssCckMode40MHz; pStaDs->htShortGI20Mhz = (tANI_U8)pAssocRsp->HTCaps.shortGI20MHz; pStaDs->htShortGI40Mhz = (tANI_U8)pAssocRsp->HTCaps.shortGI40MHz; pStaDs->htMaxRxAMpduFactor = pAssocRsp->HTCaps.maxRxAMPDUFactor; limFillRxHighestSupportedRate(pMac, &rxHighestRate, pAssocRsp->HTCaps.supportedMCSSet); pStaDs->supportedRates.rxHighestDataRate = rxHighestRate; /* This is for AP as peer STA and we are INFRA STA. We will put APs offset in dph node which is peer STA */ pStaDs->htSecondaryChannelOffset = (tANI_U8)pAssocRsp->HTInfo.secondaryChannelOffset; //FIXME_AMPDU // In the future, may need to check for "assoc.HTCaps.delayedBA" // For now, it is IMMEDIATE BA only on ALL TID's pStaDs->baPolicyFlag = 0xFF; } } #ifdef WLAN_FEATURE_11AC if(IS_DOT11_MODE_VHT(psessionEntry->dot11mode)) { pStaDs->mlmStaContext.vhtCapability = pAssocRsp->VHTCaps.present; } if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, pAssocRsp->HTCaps.supportedMCSSet, false,psessionEntry , &pAssocRsp->VHTCaps) != eSIR_SUCCESS) #else if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, pAssocRsp->HTCaps.supportedMCSSet, false,psessionEntry) != eSIR_SUCCESS) #endif { limLog(pMac, LOGP, FL("could not get rateset and extended rate set")); return; } //If one of the rates is 11g rates, set the ERP mode. if ((phyMode == WNI_CFG_PHY_MODE_11G) && sirIsArate(pStaDs->supportedRates.llaRates[0] & 0x7f)) pStaDs->erpEnabled = eHAL_SET; val = WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET_LEN; if (wlan_cfgGetStr(pMac, WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET, (tANI_U8 *) &pStaDs->mlmStaContext.propRateSet.propRate, &val) != eSIR_SUCCESS) { /// Could not get prop rateset from CFG. Log error. limLog(pMac, LOGP, FL("could not retrieve prop rateset")); return; } pStaDs->mlmStaContext.propRateSet.numPropRates = (tANI_U8) val; pStaDs->qosMode = 0; pStaDs->lleEnabled = 0; // update TSID to UP mapping //if (pMac->lim.gLimQosEnabled) if (qosMode) { if (pAssocRsp->edcaPresent) { tSirRetStatus status; status = schBeaconEdcaProcess(pMac,&pAssocRsp->edca, psessionEntry); PELOG2(limLog(pMac, LOG2, "Edca set update based on AssocRsp: status %d", status);) if (status != eSIR_SUCCESS) { PELOGE(limLog(pMac, LOGE, FL("Edca error in AssocResp "));) } else { // update default tidmap based on ACM
/** * @function : limUpdateAssocStaDatas * * @brief : This function is called to Update the Station Descriptor (dph) Details from * Association / ReAssociation Response Frame * *LOGIC: * *ASSUMPTIONS: * *NOTE: * * @param pMac - Pointer to Global MAC structure * @param pStaDs - Station Descriptor in DPH * @param pAssocRsp - Pointer to Association Response Structure * * @return None */ void limUpdateAssocStaDatas(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpSirAssocRsp pAssocRsp,tpPESession psessionEntry) { tANI_U32 phyMode; tANI_BOOLEAN qosMode; tANI_U16 rxHighestRate = 0; uint32_t shortgi_20mhz_support; uint32_t shortgi_40mhz_support; limGetPhyMode(pMac, &phyMode, psessionEntry); pStaDs->staType= STA_ENTRY_SELF; limGetQosMode(psessionEntry, &qosMode); pStaDs->mlmStaContext.authType = psessionEntry->limCurrentAuthType; // Add capabilities information, rates and AID pStaDs->mlmStaContext.capabilityInfo = pAssocRsp->capabilityInfo; pStaDs->shortPreambleEnabled= (tANI_U8)pAssocRsp->capabilityInfo.shortPreamble; //Update HT Capabilites only when the self mode supports HT if(IS_DOT11_MODE_HT(psessionEntry->dot11mode)) { pStaDs->mlmStaContext.htCapability = pAssocRsp->HTCaps.present; if ( pAssocRsp->HTCaps.present ) { pStaDs->htGreenfield = ( tANI_U8 ) pAssocRsp->HTCaps.greenField; if (psessionEntry->htSupportedChannelWidthSet) { pStaDs->htSupportedChannelWidthSet = (tANI_U8)(pAssocRsp->HTCaps.supportedChannelWidthSet ? pAssocRsp->HTInfo.recommendedTxWidthSet : pAssocRsp->HTCaps.supportedChannelWidthSet); } else pStaDs->htSupportedChannelWidthSet = eHT_CHANNEL_WIDTH_20MHZ; pStaDs->htLsigTXOPProtection = ( tANI_U8 ) pAssocRsp->HTCaps.lsigTXOPProtection; pStaDs->htMIMOPSState = (tSirMacHTMIMOPowerSaveState)pAssocRsp->HTCaps.mimoPowerSave; pStaDs->htMaxAmsduLength = ( tANI_U8 ) pAssocRsp->HTCaps.maximalAMSDUsize; pStaDs->htAMpduDensity = pAssocRsp->HTCaps.mpduDensity; pStaDs->htDsssCckRate40MHzSupport = (tANI_U8)pAssocRsp->HTCaps.dsssCckMode40MHz; pStaDs->htMaxRxAMpduFactor = pAssocRsp->HTCaps.maxRxAMPDUFactor; limFillRxHighestSupportedRate(pMac, &rxHighestRate, pAssocRsp->HTCaps.supportedMCSSet); pStaDs->supportedRates.rxHighestDataRate = rxHighestRate; /* This is for AP as peer STA and we are INFRA STA. We will put APs offset in dph node which is peer STA */ pStaDs->htSecondaryChannelOffset = (tANI_U8)pAssocRsp->HTInfo.secondaryChannelOffset; //FIXME_AMPDU // In the future, may need to check for "assoc.HTCaps.delayedBA" // For now, it is IMMEDIATE BA only on ALL TID's pStaDs->baPolicyFlag = 0xFF; /* * Check if we have support for gShortGI20Mhz and * gShortGI40Mhz from ini file. */ if (HAL_STATUS_SUCCESS(ccmCfgGetInt(pMac, WNI_CFG_SHORT_GI_20MHZ, &shortgi_20mhz_support))) { if (VOS_TRUE == shortgi_20mhz_support) pStaDs->htShortGI20Mhz = (tANI_U8)pAssocRsp->HTCaps.shortGI20MHz; else pStaDs->htShortGI20Mhz = VOS_FALSE; } else { limLog(pMac, LOGE, FL("could not retrieve shortGI 20Mhz CFG, setting value to default")); pStaDs->htShortGI20Mhz = WNI_CFG_SHORT_GI_20MHZ_STADEF; } if (HAL_STATUS_SUCCESS(ccmCfgGetInt(pMac, WNI_CFG_SHORT_GI_40MHZ, &shortgi_40mhz_support))) { if (VOS_TRUE == shortgi_40mhz_support) pStaDs->htShortGI40Mhz = (tANI_U8)pAssocRsp->HTCaps.shortGI40MHz; else pStaDs->htShortGI40Mhz = VOS_FALSE; } else { limLog(pMac, LOGE, FL("could not retrieve shortGI 40Mhz CFG,setting value to default")); pStaDs->htShortGI40Mhz = WNI_CFG_SHORT_GI_40MHZ_STADEF; } } } #ifdef WLAN_FEATURE_11AC if(IS_DOT11_MODE_VHT(psessionEntry->dot11mode)) { pStaDs->mlmStaContext.vhtCapability = pAssocRsp->VHTCaps.present; if (pAssocRsp->VHTCaps.present && psessionEntry->htSupportedChannelWidthSet) pStaDs->vhtSupportedChannelWidthSet = pAssocRsp->VHTOperation.chanWidth; } // If 11ac is supported and if the peer is sending VHT capabilities, // then htMaxRxAMpduFactor should be overloaded with VHT maxAMPDULenExp if (pAssocRsp->VHTCaps.present) { pStaDs->htMaxRxAMpduFactor = pAssocRsp->VHTCaps.maxAMPDULenExp; } if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, pAssocRsp->HTCaps.supportedMCSSet, false,psessionEntry , &pAssocRsp->VHTCaps) != eSIR_SUCCESS) #else if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, pAssocRsp->HTCaps.supportedMCSSet, false,psessionEntry) != eSIR_SUCCESS) #endif { limLog(pMac, LOGP, FL("could not get rateset and extended rate set")); return; } #ifdef WLAN_FEATURE_11AC pStaDs->vhtSupportedRxNss = ((pStaDs->supportedRates.vhtRxMCSMap & MCSMAPMASK2x2) == MCSMAPMASK2x2) ? 1 : 2; #endif //If one of the rates is 11g rates, set the ERP mode. if ((phyMode == WNI_CFG_PHY_MODE_11G) && sirIsArate(pStaDs->supportedRates.llaRates[0] & 0x7f)) pStaDs->erpEnabled = eHAL_SET; pStaDs->qosMode = 0; pStaDs->lleEnabled = 0; // update TSID to UP mapping if (qosMode) { if (pAssocRsp->edcaPresent) { tSirRetStatus status; status = schBeaconEdcaProcess(pMac,&pAssocRsp->edca, psessionEntry); PELOG2(limLog(pMac, LOG2, "Edca set update based on AssocRsp: status %d", status);) if (status != eSIR_SUCCESS) { PELOGE(limLog(pMac, LOGE, FL("Edca error in AssocResp "));) } else { // update default tidmap based on ACM