VOID kalP2PIndicateRxMgmtFrame ( IN P_GLUE_INFO_T prGlueInfo, IN P_SW_RFB_T prSwRfb ) { #define DBG_P2P_MGMT_FRAME_INDICATION 0 P_GL_P2P_INFO_T prGlueP2pInfo = (P_GL_P2P_INFO_T)NULL; INT_32 i4Freq = 0; UINT_8 ucChnlNum = 0; #if DBG_P2P_MGMT_FRAME_INDICATION P_WLAN_MAC_HEADER_T prWlanHeader = (P_WLAN_MAC_HEADER_T)NULL; #endif do { if ((prGlueInfo == NULL) || (prSwRfb == NULL)) { ASSERT(FALSE); break; } prGlueP2pInfo = prGlueInfo->prP2PInfo; ucChnlNum = prSwRfb->prHifRxHdr->ucHwChannelNum; #if DBG_P2P_MGMT_FRAME_INDICATION prWlanHeader = (P_WLAN_MAC_HEADER_T)prSwRfb->pvHeader; switch (prWlanHeader->u2FrameCtrl) { case MAC_FRAME_PROBE_REQ: DBGLOG(P2P, TRACE, ("RX Probe Req at channel %d ", ucChnlNum)); break; case MAC_FRAME_PROBE_RSP: DBGLOG(P2P, TRACE, ("RX Probe Rsp at channel %d ", ucChnlNum)); break; case MAC_FRAME_ACTION: DBGLOG(P2P, TRACE, ("RX Action frame at channel %d ", ucChnlNum)); break; default: DBGLOG(P2P, TRACE, ("RX Packet:%d at channel %d ", prWlanHeader->u2FrameCtrl, ucChnlNum)); break; } DBGLOG(P2P, TRACE, ("from: "MACSTR"\n", MAC2STR(prWlanHeader->aucAddr2))); #endif i4Freq = nicChannelNum2Freq(ucChnlNum) / 1000; #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) cfg80211_rx_mgmt(prGlueP2pInfo->prDevHandler, //struct net_device * dev, i4Freq, RCPI_TO_dBm(prSwRfb->prHifRxHdr->ucRcpi), prSwRfb->pvHeader, prSwRfb->u2PacketLen, GFP_KERNEL); #else cfg80211_rx_mgmt(prGlueP2pInfo->prDevHandler, //struct net_device * dev, i4Freq, prSwRfb->pvHeader, prSwRfb->u2PacketLen, GFP_KERNEL); #endif } while (FALSE); } /* kalP2PIndicateRxMgmtFrame */
VOID kalP2PIndicateRxMgmtFrame ( IN P_GLUE_INFO_T prGlueInfo, IN P_SW_RFB_T prSwRfb, IN BOOLEAN fgIsDevInterface, IN UINT_8 ucRoleIdx ) { #define DBG_P2P_MGMT_FRAME_INDICATION 1 P_GL_P2P_INFO_T prGlueP2pInfo = (P_GL_P2P_INFO_T)NULL; INT_32 i4Freq = 0; UINT_8 ucChnlNum = 0; #if DBG_P2P_MGMT_FRAME_INDICATION P_WLAN_MAC_HEADER_T prWlanHeader = (P_WLAN_MAC_HEADER_T)NULL; #endif do { if ((prGlueInfo == NULL) || (prSwRfb == NULL)) { ASSERT(FALSE); break; } prGlueP2pInfo = prGlueInfo->prP2PInfo; //ToDo[6630]: Get the following by chnnel freq //HAL_RX_STATUS_GET_CHAN_FREQ( prSwRfb->prRxStatus) //ucChnlNum = prSwRfb->prHifRxHdr->ucHwChannelNum; ucChnlNum = HAL_RX_STATUS_GET_CHNL_NUM(prSwRfb->prRxStatus); #if DBG_P2P_MGMT_FRAME_INDICATION prWlanHeader = (P_WLAN_MAC_HEADER_T)prSwRfb->pvHeader; switch (prWlanHeader->u2FrameCtrl) { case MAC_FRAME_PROBE_REQ: DBGLOG(P2P, TRACE, ("RX Probe Req at channel %d ", ucChnlNum)); break; case MAC_FRAME_PROBE_RSP: DBGLOG(P2P, TRACE, ("RX Probe Rsp at channel %d ", ucChnlNum)); break; case MAC_FRAME_ACTION: DBGLOG(P2P, TRACE, ("RX Action frame at channel %d ", ucChnlNum)); break; default: DBGLOG(P2P, TRACE, ("RX Packet:%d at channel %d ", prWlanHeader->u2FrameCtrl, ucChnlNum)); break; } DBGLOG(P2P, TRACE, ("from: "MACSTR"\n", MAC2STR(prWlanHeader->aucAddr2))); #endif i4Freq = nicChannelNum2Freq(ucChnlNum) / 1000; #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) cfg80211_rx_mgmt(&prGlueP2pInfo->wdev, //struct net_device * dev, #else cfg80211_rx_mgmt((fgIsDevInterface)?prGlueP2pInfo->prDevHandler:prGlueP2pInfo->aprRoleHandler[ucRoleIdx], //struct net_device * dev, #endif /* LINUX_VERSION_CODE */ i4Freq, RCPI_TO_dBm(HAL_RX_STATUS_GET_RCPI(prSwRfb->prRxStatusGroup3)), prSwRfb->pvHeader, prSwRfb->u2PacketLen, GFP_ATOMIC); #else cfg80211_rx_mgmt((fgIsDevInterface)?prGlueP2pInfo->prDevHandler:prGlueP2pInfo->aprRoleHandler[ucRoleIdx], //struct net_device * dev, i4Freq, prSwRfb->pvHeader, prSwRfb->u2PacketLen, GFP_ATOMIC); #endif } while (FALSE); } /* kalP2PIndicateRxMgmtFrame */