tpPESession peFindSessionByPeerSta(tpAniSirGlobal pMac, tANI_U8* sa, tANI_U8* sessionId) { tANI_U8 i; tpDphHashNode pSta; tANI_U16 aid; for(i =0; i < pMac->lim.maxBssId; i++) { if( (pMac->lim.gpSession[i].valid)) { pSta = dphLookupHashEntry(pMac, sa, &aid, &pMac->lim.gpSession[i].dph.dphHashTable); if (pSta != NULL) { *sessionId = i; return &pMac->lim.gpSession[i]; } } } return NULL; }
tpPESession peFindSessionByPeerSta(tpAniSirGlobal pMac, tANI_U8* sa, tANI_U8* sessionId) { tANI_U8 i; tpDphHashNode pSta; tANI_U16 aid; for(i =0; i < pMac->lim.maxBssId; i++) { if( (pMac->lim.gpSession[i].valid)) { pSta = dphLookupHashEntry(pMac, sa, &aid, &pMac->lim.gpSession[i].dph.dphHashTable); if (pSta != NULL) { *sessionId = i; return &pMac->lim.gpSession[i]; } } } limLog(pMac, LOG1, FL("Session lookup fails for Peer StaId: \n ")); limPrintMacAddr(pMac, sa, LOG1); return NULL; }
if ( (psessionEntry->limSmeState == eLIM_SME_WT_DISASSOC_STATE) || (psessionEntry->limSmeState == eLIM_SME_WT_DEAUTH_STATE) #ifdef WLAN_SOFTAP_FEATURE || (psessionEntry->limSystemRole == eLIM_AP_ROLE ) #endif ) { pStaDs = dphLookupHashEntry(pMac, smeDisassocCnf.peerMacAddr, &aid, &psessionEntry->dph.dphHashTable); if (pStaDs == NULL) { PELOGW(limLog(pMac, LOGW, FL("received DISASSOC_CNF for a STA that does not have context, addr= ")); limPrintMacAddr(pMac, smeDisassocCnf.peerMacAddr, LOGW);) return; } /* Delete FT session if there exists one */ limFTCleanup(pMac); limCleanupRxPath(pMac, pStaDs, psessionEntry); }
static void ibss_sta_caps_update( tpAniSirGlobal pMac, tLimIbssPeerNode *pPeerNode, tpPESession psessionEntry) { tANI_U16 peerIdx; tpDphHashNode pStaDs; pPeerNode->beaconHBCount++; if ((pStaDs = dphLookupHashEntry(pMac, pPeerNode->peerMacAddr, &peerIdx, &psessionEntry->dph.dphHashTable)) == NULL) return; if(IS_DOT11_MODE_HT(psessionEntry->dot11mode)) { pStaDs->mlmStaContext.htCapability = pPeerNode->htCapable; if (pPeerNode->htCapable) { pStaDs->htGreenfield = pPeerNode->htGreenfield; pStaDs->htSupportedChannelWidthSet = pPeerNode->htSupportedChannelWidthSet; pStaDs->htMIMOPSState = pPeerNode->htMIMOPSState; pStaDs->htMaxAmsduLength = pPeerNode->htMaxAmsduLength; pStaDs->htAMpduDensity = pPeerNode->htAMpduDensity; pStaDs->htDsssCckRate40MHzSupport = pPeerNode->htDsssCckRate40MHzSupport; pStaDs->htShortGI20Mhz = pPeerNode->htShortGI20Mhz; pStaDs->htShortGI40Mhz = pPeerNode->htShortGI40Mhz; pStaDs->htMaxRxAMpduFactor = pPeerNode->htMaxRxAMpduFactor; pStaDs->baPolicyFlag = 0xFF; } } #ifdef WLAN_FEATURE_11AC if ( IS_DOT11_MODE_VHT(psessionEntry->dot11mode) ) { pStaDs->mlmStaContext.vhtCapability = pPeerNode->vhtCapable; if ( pPeerNode->vhtCapable ) { pStaDs->vhtSupportedChannelWidthSet = pPeerNode->vhtSupportedChannelWidthSet; } } #endif if(IS_DOT11_MODE_PROPRIETARY(psessionEntry->dot11mode) && pPeerNode->aniIndicator) { pStaDs->aniPeer = pPeerNode->aniIndicator; pStaDs->propCapability = pPeerNode->propCapability; } if (pPeerNode->capabilityInfo.qos && (psessionEntry->limQosEnabled) && pPeerNode->edcaPresent) { pStaDs->qosMode = 1; pStaDs->wmeEnabled = 0; if (! pStaDs->lleEnabled) { pStaDs->lleEnabled = 1; } return; } else if (pStaDs->lleEnabled) { pStaDs->qosMode = 0; pStaDs->lleEnabled = 0; } if (pPeerNode->wmeInfoPresent && psessionEntry->limWmeEnabled) { pStaDs->qosMode = 1; pStaDs->lleEnabled = 0; if (! pStaDs->wmeEnabled) { pStaDs->wmeEnabled = 1; } return; } if (pPeerNode->wmeEdcaPresent && psessionEntry->limWmeEnabled) { pStaDs->qosMode = 1; pStaDs->lleEnabled = 0; if (! pStaDs->wmeEnabled) { pStaDs->wmeEnabled = 1; } return; } else if (pStaDs->wmeEnabled) { pStaDs->qosMode = 0; pStaDs->wmeEnabled = 0; } }