/** * limProcessDisassocFrame * *FUNCTION: * This function is called by limProcessMessageQueue() upon * Disassociation frame reception. * *LOGIC: * *ASSUMPTIONS: * DPH drops packets for STA with 'valid' bit in pStaDs set to '0'. * *NOTE: * * @param pMac - Pointer to Global MAC structure * @param *pRxPacketInfo - A pointer to Rx packet info structure * @return None */ void limProcessDisassocFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tpPESession psessionEntry) { tANI_U8 *pBody; tANI_U16 aid, reasonCode; tpSirMacMgmtHdr pHdr; tpDphHashNode pStaDs; tLimMlmDisassocInd mlmDisassocInd; #ifdef WLAN_FEATURE_11W tANI_U32 frameLen; #endif int8_t frame_rssi; pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo); pBody = WDA_GET_RX_MPDU_DATA(pRxPacketInfo); frame_rssi = (int8_t)WDA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo); if (limIsGroupAddr(pHdr->sa)) { // Received Disassoc frame from a BC/MC address // Log error and ignore it PELOGE(limLog(pMac, LOGE, FL("received Disassoc frame from a BC/MC address"));) return;
void limProcessDeauthFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tpPESession psessionEntry) { tANI_U8 *pBody; tANI_U16 aid, reasonCode; tpSirMacMgmtHdr pHdr; tLimMlmAssocCnf mlmAssocCnf; tLimMlmDeauthInd mlmDeauthInd; tpDphHashNode pStaDs; tpPESession pRoamSessionEntry=NULL; tANI_U8 roamSessionId; #ifdef WLAN_FEATURE_11W tANI_U32 frameLen; #endif int8_t frame_rssi; pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo); pBody = WDA_GET_RX_MPDU_DATA(pRxPacketInfo); frame_rssi = (int8_t)WDA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo); if ((eLIM_STA_ROLE == psessionEntry->limSystemRole) && ((eLIM_SME_WT_DISASSOC_STATE == psessionEntry->limSmeState) || (eLIM_SME_WT_DEAUTH_STATE == psessionEntry->limSmeState))) { /*Every 15th deauth frame will be logged in kmsg*/ if(!(pMac->lim.deauthMsgCnt & 0xF)) { PELOGE(limLog(pMac, LOGE, FL("received Deauth frame in DEAUTH_WT_STATE" "(already processing previously received DEAUTH frame).." "Dropping this.. Deauth Failed %d"),++pMac->lim.deauthMsgCnt);) } else {
} pBssDescr->channelId = rxChannel; } pBssDescr->channelIdSelf = pBssDescr->channelId; //set the network type in bss description channelNum = pBssDescr->channelId; pBssDescr->nwType = limGetNwType(pMac, channelNum, SIR_MAC_MGMT_FRAME, pBPR); // Copy RSSI & SINR from BD PELOG4(limLog(pMac, LOG4, "***********BSS Description for BSSID:*********** "); sirDumpBuf(pMac, SIR_LIM_MODULE_ID, LOG4, pBssDescr->bssId, 6 ); sirDumpBuf( pMac, SIR_LIM_MODULE_ID, LOG4, (tANI_U8*)pRxPacketInfo, 36 );) pBssDescr->rssi = (tANI_S8)WDA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo); pBssDescr->rssi_raw = (tANI_S8)WDA_GET_RX_RSSI_RAW(pRxPacketInfo); //SINR no longer reported by HW pBssDescr->sinr = 0; limLog(pMac, LOG3, FL(MAC_ADDRESS_STR " rssi: normalized = %d, absolute = %d"), MAC_ADDR_ARRAY(pHdr->bssId), pBssDescr->rssi, pBssDescr->rssi_raw); pBssDescr->nReceivedTime = (tANI_TIMESTAMP)palGetTickCount(pMac->hHdd); #if defined WLAN_FEATURE_VOWIFI if( fScanning ) { rrmGetStartTSF( pMac, pBssDescr->startTSF ); pBssDescr->parentTSF = WDA_GET_RX_TIMESTAMP(pRxPacketInfo);