diff options
| author | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
|---|---|---|
| committer | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
| commit | 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch) | |
| tree | ad5f3ede5cbcd6b598677ce41bcf8318471bdd92 /network/wlan/WDI/COMMON/P2P_Receive.c | |
| parent | 687b274aa38fd05c8c26e3068932121876d7f745 (diff) | |
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'network/wlan/WDI/COMMON/P2P_Receive.c')
| -rw-r--r-- | network/wlan/WDI/COMMON/P2P_Receive.c | 744 |
1 files changed, 0 insertions, 744 deletions
diff --git a/network/wlan/WDI/COMMON/P2P_Receive.c b/network/wlan/WDI/COMMON/P2P_Receive.c deleted file mode 100644 index 858e8231..00000000 --- a/network/wlan/WDI/COMMON/P2P_Receive.c +++ /dev/null @@ -1,744 +0,0 @@ -#include "Mp_Precomp.h" - -#if WPP_SOFTWARE_TRACE -#include "P2P_Receive.tmh" -#endif - -#include "P2P_Internal.h" - -#if (P2P_SUPPORT == 1) - -//----------------------------------------------------------------------------- -// Local -//----------------------------------------------------------------------------- - - -//----------------------------------------------------------------------------- -// Exported -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// Exported: public -//----------------------------------------------------------------------------- - -BOOLEAN -p2p_validate_Beacon( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!FrameBuf_Length(&msg->p2pAttributes)) - { - break; - } - - if(!msg->_devId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev id attr\n")); - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_ProbeReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!FrameBuf_Length(&msg->p2pAttributes)) - { - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_opChannel && TEST_FLAG(msg->grpCap, P2P_GROUP_CAP_GROUP_OWNER)) - { - // PF #2, some vender don't send ProbeReq with op channel - // do not filter - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_ProbeRsp( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!FrameBuf_Length(&msg->p2pAttributes)) - { - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_devInfo) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr\n")); - break; - } - - if(!msg->_dsParam) // from P2P_OnProbersp - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no ds param ie\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_AssocReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_devInfo) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_AssocRsp( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - /*if(!msg->_status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no status attr\n")); - break; - }*/ - - /*if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - }*/ - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_Deauth( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - /*if(!msg->_minorReasonCode) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no minor reason code attr\n")); - break; - }*/ - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_GoNegReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_goIntent) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no go intent attr\n")); - break; - } - - if(!msg->_configTimeout) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no config timeout attr\n")); - break; - } - - if(!msg->_listenChannel) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no listen channel attr\n")); - break; - } - - if(!msg->_intendedIntfAddr) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no intended interface address attr\n")); - break; - } - - if(!msg->_channelList) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no channel list attr\n")); - break; - } - - if(!msg->_devInfo) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr\n")); - break; - } - - if(!msg->_opChannel) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no op channel attr\n")); - break; - } - - if(!msg->_wpsDevPasswordId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no WPS device password id attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_GoNegRsp( - IN const P2P_INFO *info, - IN P2P_MESSAGE *msg - ) -{ - int go = 0; - - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no status attr\n")); - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_goIntent) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no go intent attr\n")); - break; - } - - go = p2p_go_det(info->GOIntent, msg->goIntent); - - if(!msg->_intendedIntfAddr) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no intended interface address attr\n")); - break; - } - - if(!msg->_channelList) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no channel list attr\n")); - break; - } - - if(!msg->_devInfo) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr\n")); - break; - } - - if(!msg->_grpId && !go) - {// peer is GO and no group id - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group id attr, self intent: %u, peer intent: %u\n", info->GOIntent, msg->goIntent)); - break; - } - - if(!msg->_opChannel && !go) - {// peer is GO and no op channel - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no op channel attr, self intent: %u, peer intent: %u\n", info->GOIntent, msg->goIntent)); - break; - } - - if(P2P_SC_SUCCESS == msg->status && !msg->_wpsDevPasswordId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("status is success but no WPS device password id attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_GoNegConfirm( - IN BOOLEAN go, - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no status attr\n")); - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_channelList) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no channel list attr\n")); - break; - } - - if(!msg->_grpId && !go) - {// peer is GO and no group id - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group id attr when peer will be go\n")); - break; - } - - if(!msg->_opChannel) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no op channel attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_InvitationReq( - IN P2P_MESSAGE *msg - ) -{ - P2P_ROLE invitorRole; - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_configTimeout) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no config timeout attr\n")); - break; - } - - if(!msg->_grpId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group id attr\n")); - break; - } - - invitorRole = (eqMacAddr(msg->grpDevAddr, msg->sa)) ? (P2P_GO) : (P2P_CLIENT); - - if(!msg->_grpBssid && P2P_GO == invitorRole) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group bssid attr\n")); - break; - } - - if(!msg->_channelList) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no channel list attr\n")); - break; - } - - if(!msg->_devInfo) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr\n")); - break; - } - - if(!msg->_grpId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group id attr\n")); - break; - } - - if(!msg->_opChannel && P2P_GO == invitorRole) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no op channel attr when invitor role is GO\n")); - break; - } - - if(!msg->_invitationFlags) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no invitation flags attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_InvitationRsp( - IN P2P_ROLE invitorRole, - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no status attr\n")); - break; - } - - if(!msg->_channelList) - { - // Although the channel list attribute is mandatory for the successful case of - // invitation response, actually the information is not important because the - // pairing devices can go to next association by the OP channel attribute. - // Then, we defined it as optional and this would fix the invitation failure - // with Netgear PTV3000 (FW:2.4.12 or later) under Win8. - // By Bruce, 2013-09-03. - } - - if(!msg->_opChannel && P2P_CLIENT == invitorRole && 0 == msg->status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no op channel attr when invitor role is GO\n")); - break; - } - - if(!msg->_grpBssid && P2P_CLIENT == invitorRole && 0 == msg->status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group bssid attr when invitor role is GO\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_DevDiscReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_devId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no device id attr\n")); - break; - } - - if(!msg->_grpId) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no group id attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_DevDiscRsp( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no status attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_PDReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_capability) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no capability attr\n")); - break; - } - - if(!msg->_devInfo) - { - //RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr\n")); - //break; - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dev info attr, use sa as devAddr\n")); - msg->devAddr = msg->sa; - } - - if(!msg->_wpsConfigMethods) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no WPS config method attr\n")); - break; - } - - // TODO: if this is a PD req to join our GO, group id is mandatory - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_PDRsp( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_wpsConfigMethods) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no WPS config method attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_PresenceReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_noa) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no noa attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_PresenceRsp( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - if(!msg->_status) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no status attr\n")); - break; - } - - if(!msg->_noa) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no noa attr\n")); - break; - } - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -BOOLEAN -p2p_validate_GoDiscoverabilityReq( - IN P2P_MESSAGE *msg - ) -{ - BOOLEAN bValid = FALSE; - - do - { - if(!msg->_dialogToken) - { - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("no dialog token\n")); - break; - } - - // Thter is no Elements field in a GO Discoverability Request frame - - - bValid = TRUE; - }while(FALSE); - - return bValid; -} - -#endif |
