summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/COMMON/P2P_Build_Mgnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'network/wlan/WDI/COMMON/P2P_Build_Mgnt.c')
-rw-r--r--network/wlan/WDI/COMMON/P2P_Build_Mgnt.c675
1 files changed, 0 insertions, 675 deletions
diff --git a/network/wlan/WDI/COMMON/P2P_Build_Mgnt.c b/network/wlan/WDI/COMMON/P2P_Build_Mgnt.c
deleted file mode 100644
index f8f092a9..00000000
--- a/network/wlan/WDI/COMMON/P2P_Build_Mgnt.c
+++ /dev/null
@@ -1,675 +0,0 @@
-#include "Mp_Precomp.h"
-
-#if WPP_SOFTWARE_TRACE
-#include "P2P_Build_Mgnt.tmh"
-#endif
-
-#if (P2P_SUPPORT == 1)
-#include "P2P_Internal.h"
-
-static u1Byte BroadcastAddress[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-
-//-----------------------------------------------------------------------------
-// Local
-//-----------------------------------------------------------------------------
-
-static
-VOID
-p2p_Make_SupportedRate(
- IN FRAME_BUF *pBuf,
- IN const MGNT_INFO *pMgntInfo
- )
-{
- OCTET_STRING SuppRates, ExtSuppRates;
- u1Byte SuppRatesContent[8]; // NOTE! Length of Support Rates <= 8.
- u1Byte ExtSuppRatesContent[255]; // NOTE! Length of Support Rates <= 255.
-
- FillOctetString(SuppRates, SuppRatesContent, 0);
- FillOctetString(ExtSuppRates, ExtSuppRatesContent, 0);
-
- SelectSupportedRatesElement(pMgntInfo->dot11CurrentWirelessMode,
- pMgntInfo->SupportedRates,
- TRUE,
- &SuppRates,
- &ExtSuppRates);
-
- // Supported Rates
- FrameBuf_Add_u1(pBuf, EID_SupRates);
- FrameBuf_Add_u1(pBuf, (u1Byte)SuppRates.Length);
- FrameBuf_Add_Data(pBuf, SuppRates.Octet, SuppRates.Length);
-
- // Extended Supported Rates
- if(ExtSuppRates.Length != 0)
- {
- FrameBuf_Add_u1(pBuf, EID_ExtSupRates);
- FrameBuf_Add_u1(pBuf, (u1Byte)ExtSuppRates.Length);
- FrameBuf_Add_Data(pBuf, ExtSuppRates.Octet, ExtSuppRates.Length);
- }
-}
-
-static
-VOID
-p2p_build_TimeStamp(
- IN FRAME_BUF *pBuf
- )
-{
- u8Byte timeStamp = 0;
-
- timeStamp = PlatformGetCurrentTime();
-
- FrameBuf_Add_le_u4(pBuf, (u4Byte)(timeStamp & 0xffffffff));
- FrameBuf_Add_le_u4(pBuf, (u4Byte)(timeStamp >> 32));
-
- return;
-}
-
-static
-VOID
-p2p_build_ProbeReqIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- if(p2p_ActingAs_Go(pP2PInfo))
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("Invalid role\n"));
-
- P2PAttr_Make_Capability(pBuf,
- pP2PInfo->DeviceCapability & ~P2P_DEV_CAP_CLIENT_DISCOVERABILITY, // this cap valid only in P2P Group Info and AssocReq
- 0);
-
- // The P2P Device ID attribute may be present in the
- // Probe Request frame when using the discovery
- // protocol to find a P2P Device with a specific Device
- // Address.
- if(P2P_ADAPTER_OS_SUPPORT_P2P(pP2PInfo->pAdapter))
- {
- if(pP2PInfo->ScanDeviceIDs.uNumOfDeviceIDs > 0)
- {
- P2PAttr_Make_DevId(pBuf, pP2PInfo->ScanDeviceIDs.DeviceIDs[0]);
- }
- }
-
- P2PAttr_Make_ListenChannel(pBuf, pP2PInfo->CountryString, pP2PInfo->RegulatoryClass, pP2PInfo->ListenChannel);
- P2PAttr_Make_ExtListenTiming(pBuf, pP2PInfo->ExtListenTimingDuration, pP2PInfo->ExtListenTimingPeriod);
- if(P2P_GO == pP2PInfo->Role)
- P2PAttr_Make_OperatingChannel(pBuf, pP2PInfo->CountryString, pP2PInfo->RegulatoryClass, pP2PInfo->OperatingChannel);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-static
-VOID
-p2p_build_ProbeRspIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
- P2P_WPS_ATTRIBUTES *pWps = &pP2PInfo->WpsAttributes;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- if(p2p_ActingAs_Go(pP2PInfo))
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("Invalid role\n"));
- P2PAttr_Make_Capability(pBuf,
- pP2PInfo->DeviceCapability & ~P2P_DEV_CAP_CLIENT_DISCOVERABILITY, // this cap valid only in P2P Group Info and AssocReq
- 0);
-
- P2PAttr_Make_ExtListenTiming(pBuf, pP2PInfo->ExtListenTimingDuration, pP2PInfo->ExtListenTimingPeriod);
-
- P2PAttr_Make_DevInfo(pBuf,
- pP2PInfo->DeviceAddress,
- pWps->ConfigMethod,
- &pWps->PrimaryDeviceType,
- pWps->SecondaryDeviceTypeLength, pWps->SecondaryDeviceTypeList,
- pWps->DeviceNameLength, pWps->DeviceName);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-static
-VOID
-p2p_build_GoProbeRspIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
- u1Byte grpCap = 0;
- const P2P_WPS_ATTRIBUTES *pWps = &pP2PInfo->WpsAttributes;
- const ADAPTER *pExtAdapter = P2P_ADAPTER_OS_SUPPORT_P2P(pP2PInfo->pAdapter) ? pP2PInfo->pAdapter : GetFirstGOPort(pP2PInfo->pAdapter);
- const MGNT_INFO *pExtMgntInfo = &pExtAdapter->MgntInfo;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- if(p2p_ActingAs_Go(pP2PInfo))
- {
- grpCap = pP2PInfo->GroupCapability;
- if(p2p_Doing_Provisioning(pP2PInfo))
- SET_FLAG(grpCap, P2P_GROUP_CAP_GROUP_FORMATION);
- if(p2p_Check_GroupLimitReached(pP2PInfo))
- SET_FLAG(grpCap, P2P_GROUP_CAP_GROUP_LIMIT);
- }
- else
- {
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("invalid role\n"));
- }
-
- P2PAttr_Make_Capability(pBuf,
- pP2PInfo->DeviceCapability & ~P2P_DEV_CAP_CLIENT_DISCOVERABILITY, // this cap valid only in P2P Group Info and AssocReq
- grpCap);
-
- P2PAttr_Make_ExtListenTiming(pBuf, pP2PInfo->ExtListenTimingDuration, pP2PInfo->ExtListenTimingPeriod);
- if(P2P_GO == pP2PInfo->Role)
- P2PAttr_Make_Noa(pBuf, pP2PInfo->NoAIEIndex, pP2PInfo->bOppPS, pP2PInfo->CTWindow, P2P_MAX_NUM_NOA_DESC, pP2PInfo->NoADescriptors);
-
- P2PAttr_Make_DevInfo(pBuf,
- pP2PInfo->DeviceAddress,
- pWps->ConfigMethod,
- &pWps->PrimaryDeviceType,
- pWps->SecondaryDeviceTypeLength,
- pWps->SecondaryDeviceTypeList,
- pWps->DeviceNameLength,
- pWps->DeviceName);
-
- if(P2P_GO == pP2PInfo->Role)
- P2PAttr_Make_GroupInfo(pBuf, pExtMgntInfo->AsocEntry);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-static
-VOID
-p2p_build_BeaconIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
- u1Byte grpCap = 0;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- if(p2p_ActingAs_Go(pP2PInfo))
- {
- grpCap = pP2PInfo->GroupCapability;
- if(p2p_Doing_Provisioning(pP2PInfo))
- SET_FLAG(grpCap, P2P_GROUP_CAP_GROUP_FORMATION);
- if(p2p_Check_GroupLimitReached(pP2PInfo))
- SET_FLAG(grpCap, P2P_GROUP_CAP_GROUP_LIMIT);
- }
- else
- {
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("invalid role\n"));
- }
-
- P2PAttr_Make_Capability(pBuf,
- pP2PInfo->DeviceCapability & ~P2P_DEV_CAP_CLIENT_DISCOVERABILITY, // this cap valid only in P2P Group Info and AssocReq
- grpCap);
-
- P2PAttr_Make_DevId(pBuf, pP2PInfo->DeviceAddress);
-
- P2PAttr_Make_Noa(pBuf,
- pP2PInfo->NoAIEIndex,
- pP2PInfo->bOppPS,
- pP2PInfo->CTWindow,
- P2P_MAX_NUM_NOA_DESC,
- pP2PInfo->NoADescriptors);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-static
-VOID
-p2p_build_ManagedIe(
- IN FRAME_BUF *pBuf
- )
-{
-#if P2P_SIMULATE_MANAGED_AP == 1
- pu1Byte pLen = NULL;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- P2PAttr_Make_Manageability(pBuf, maP2PDeviceManagement);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-#endif
-
- return;
-}
-
-static
-VOID
-p2p_build_AssociationReqIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
- const P2P_WPS_ATTRIBUTES *pWps = &pP2PInfo->WpsAttributes;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- if(p2p_ActingAs_Go(pP2PInfo))
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("Invalid role\n"));
- P2PAttr_Make_Capability(pBuf,
- pP2PInfo->DeviceCapability,
- 0);
-
- P2PAttr_Make_ExtListenTiming(pBuf, pP2PInfo->ExtListenTimingDuration, pP2PInfo->ExtListenTimingPeriod);
-
- P2PAttr_Make_DevInfo(pBuf,
- pP2PInfo->DeviceAddress,
- pWps->ConfigMethod,
- &pWps->PrimaryDeviceType,
- pWps->SecondaryDeviceTypeLength,
- pWps->SecondaryDeviceTypeList,
- pWps->DeviceNameLength,
- pWps->DeviceName);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-static
-VOID
-p2p_build_AssociationReqToWlanApIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- if(p2p_ActingAs_Go(pP2PInfo))
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("Invalid role\n"));
- P2PAttr_Make_Capability(pBuf, pP2PInfo->DeviceCapability, pP2PInfo->GroupCapability);
-
- P2PAttr_Make_Interface(pBuf, pP2PInfo->DeviceAddress, 1, pP2PInfo->InterfaceAddress);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-static
-VOID
-p2p_build_AssociationRspIe(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- pu1Byte pLen = NULL;
- u1Byte grpCap = 0;
- const P2P_WPS_ATTRIBUTES *pWps = &pP2PInfo->WpsAttributes;
-
- if(NULL == (pLen = p2p_add_IEHdr(pBuf))) return;
-
- P2PAttr_Make_Status(pBuf, pP2PInfo->Status);
-
- if(!p2p_ActingAs_Go(pP2PInfo))
- RT_TRACE_F(COMP_P2P, DBG_WARNING, ("Invalid role\n"));
-
- grpCap = pP2PInfo->GroupCapability;
- if(p2p_Doing_Provisioning(pP2PInfo))
- SET_FLAG(grpCap, P2P_GROUP_CAP_GROUP_FORMATION);
- if(p2p_Check_GroupLimitReached(pP2PInfo))
- SET_FLAG(grpCap, P2P_GROUP_CAP_GROUP_LIMIT);
-
- P2PAttr_Make_Capability(pBuf,
- pP2PInfo->DeviceCapability & ~P2P_DEV_CAP_CLIENT_DISCOVERABILITY, // this cap valid only in P2P Group Info and AssocReq
- grpCap);
-
- P2PAttr_Make_ExtListenTiming(pBuf, pP2PInfo->ExtListenTimingDuration, pP2PInfo->ExtListenTimingPeriod);
-
- p2p_update_IeHdrLen(pBuf, pLen);
-
- return;
-}
-
-//-----------------------------------------------------------------------------
-// Exported
-//-----------------------------------------------------------------------------
-
-VOID
-p2p_Construct_ProbeReqEx(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo,
- IN const u1Byte *da,
- IN u1Byte ssidLen,
- IN const u1Byte *ssidBuf
- )
-{
- // MAC Header
- p2p_add_MgntFrameMacHdr(pBuf, Type_Probe_Req, da, pP2PInfo->DeviceAddress, da);
-
- // SSID
- FrameBuf_Add_u1(pBuf, EID_SsId);
- FrameBuf_Add_u1(pBuf, ssidLen);
- FrameBuf_Add_Data(pBuf, ssidBuf, ssidLen);
-
- // Supported Rates
- p2p_Make_SupportedRate(pBuf, &(pP2PInfo->pAdapter->MgntInfo));
-
- // P2P IE
- p2p_build_ProbeReqIe(pBuf, pP2PInfo);
-
- // Additional IE
- P2P_AddIe_Append(&pP2PInfo->AdditionalIEs, P2P_ADD_IE_DEFAULT_REQUEST, pBuf);
-
- // WFDS IE
- P2PSvc_MakeProbeReqIE(pP2PInfo->pP2PSvcInfo, pBuf);
-
- // WPS IE
- WPS_AppendElement(pP2PInfo->pAdapter, &pBuf->os, TRUE, WPS_INFO_PROBEREQ_IE);
-
- // WFD IE
- WFD_AppendProbeReqIEs(pP2PInfo->pAdapter, FrameBuf_Cap(pBuf), &pBuf->os);
-
- FrameBuf_Dump(pBuf, 0, FrameBuf_DbgLevel(pBuf), __FUNCTION__);
-
- return;
-}
-
-VOID
-p2p_Construct_ProbeReq(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo
- )
-{
- u1Byte ssidLen = P2P_WILDCARD_SSID_LEN;
- u1Byte *ssidBuf = P2P_WILDCARD_SSID;
-
- if(P2P_STATE_SCAN == pP2PInfo->State)
- {
- ssidLen = 0;
- ssidBuf = NULL;
- }
-
- p2p_Construct_ProbeReqEx(pBuf, pP2PInfo, BroadcastAddress, ssidLen, ssidBuf);
-
- return;
-}
-
-BOOLEAN
-p2p_Construct_ProbeRsp(
- IN FRAME_BUF *pBuf,
- IN P2P_INFO *pP2PInfo,
- IN const u1Byte *da,
- IN RT_RFD *rfdProbeReq,
- IN OCTET_STRING *posProbeReq,
- IN OCTET_STRING *posAttrs
- )
-{
- ADAPTER *pAdapter = pP2PInfo->pAdapter;
- u1Byte ssidLen = P2P_WILDCARD_SSID_LEN;
- u1Byte *ssidBuf = P2P_WILDCARD_SSID;
- u1Byte channel = 0;
-
- BOOLEAN bToSendProbeRsp = TRUE;
-
- // MAC Header
- p2p_add_MgntFrameMacHdr(pBuf, Type_Probe_Rsp, da, pP2PInfo->DeviceAddress, pP2PInfo->DeviceAddress);
-
- // Time Stamp
- // <RJ_TODO> I think this is not necessary, becuase our hw should fill timestamp.
- p2p_build_TimeStamp(pBuf);
-
- // Beacon Interval
- FrameBuf_Add_le_u2(pBuf, pP2PInfo->pAdapter->MgntInfo.dot11BeaconPeriod);
-
- // Capability Info
- FrameBuf_Add_le_u2(pBuf, 0);
-
- // SSID
- if(P2P_GO == pP2PInfo->Role)
- {// TODO: we shall not get here since ProbeRsp of a GO is constructed else where
- ssidLen = (u1Byte)pAdapter->MgntInfo.Ssid.Length;
- ssidBuf = pAdapter->MgntInfo.Ssid.Octet;
- }
- FrameBuf_Add_u1(pBuf, EID_SsId);
- FrameBuf_Add_u1(pBuf, ssidLen);
- FrameBuf_Add_Data(pBuf, ssidBuf, ssidLen);
-
- // Supported Rates
- p2p_Make_SupportedRate(pBuf, &(pP2PInfo->pAdapter->MgntInfo));
-
- // DS Parameter
- if(pP2PInfo->State == P2P_STATE_LISTEN)
- channel = pP2PInfo->ListenChannel;
- else if(pP2PInfo->State == P2P_STATE_OPERATING)
- channel = pP2PInfo->OperatingChannel;
- else
- channel = pP2PInfo->ListenChannel;
- FrameBuf_Add_u1(pBuf, EID_DSParms);
- FrameBuf_Add_u1(pBuf, 1);
- FrameBuf_Add_u1(pBuf, channel);
-
- // P2P IE
- p2p_build_ProbeRspIe(pBuf, pP2PInfo);
-
- // Additional IE
- P2P_AddIe_Append(&pP2PInfo->AdditionalIEs, P2P_ADD_IE_PROBE_RESPONSE, pBuf);
-
- // WFDS IE
- P2PSvc_MakeProbeRspIE(pP2PInfo->pP2PSvcInfo, posAttrs, pBuf, &bToSendProbeRsp);
-
- // WPS IE
- WPS_AppendElement(pP2PInfo->pAdapter, &pBuf->os, TRUE, WPS_INFO_PROBERSP_IE);
-
- // WFD IE
- WFD_AppendProbeRspIEs(pAdapter, FrameBuf_Cap(pBuf), &pBuf->os, rfdProbeReq, posProbeReq);
-
- // Debug IE
- if(P2P_ADAPTER_OS_SUPPORT_P2P(pP2PInfo->pAdapter))
- {
- FrameBuf_Add_u1(pBuf, EID_Vendor);
- FrameBuf_Add_u1(pBuf, 5);
- FrameBuf_Add_u1(pBuf, 0x00);
- FrameBuf_Add_u1(pBuf, 0xe0);
- FrameBuf_Add_u1(pBuf, 0x4c);
- FrameBuf_Add_le_u2(pBuf, pP2PInfo->ProbeRequestSequenceNum); // TODO: the original code use H2N2BYTE, but it should be LE
- }
-
- FrameBuf_Dump(pBuf, 0, FrameBuf_DbgLevel(pBuf), __FUNCTION__);
-
- return bToSendProbeRsp;
-}
-
-//-----------------------------------------------------------------------------
-// Exported: public
-//-----------------------------------------------------------------------------
-
-VOID
-P2P_Append_GoProbeRspIe(
- IN OCTET_STRING *posFrame,
- IN ADAPTER *pAdapter,
- IN u1Byte reason,
- IN RT_RFD *rfdProbeReq,
- IN OCTET_STRING *posProbeReq
- )
-{
- FRAME_BUF fbuf;
- P2P_INFO *pP2PInfo = GET_P2P_INFO(pAdapter);
-
- do
- {
- FrameBuf_Init(FRAME_BUF_CAP_UNKNOWN, posFrame->Length, posFrame->Octet, &fbuf);
-
- if(P2P_ENABLED(pP2PInfo))
- {
- FRAME_BUF p2pAttrs;
- BOOLEAN bToSendProbeRsp = FALSE;
-
- if(NULL == posProbeReq)
- {// No probe request.
- break;
- }
-
- // Additional IE
- P2P_AddIe_Append(&pP2PInfo->AdditionalIEs, P2P_ADD_IE_PROBE_RESPONSE, &fbuf);
-
- // Clause 3.2.2: GO shall not include P2P IE in ProbeRsp if the ProbeReq does not include a P2P IE
- if(0 == PacketGetElementNum(*posProbeReq, EID_Vendor, OUI_SUB_WIFI_DIRECT, OUI_SUB_DONT_CARE))
- {// No P2P IE, no need to append P2P element in the probe response.
- break;
- }
-
- // P2P IE
- p2p_build_GoProbeRspIe(&fbuf, pP2PInfo);
-
- // Get assembled P2P attributes
- p2p_parse_AssembleIe(rfdProbeReq->Buffer.VirtualAddress, rfdProbeReq->PacketLength, OUI_SUB_WIFI_DIRECT, &p2pAttrs);
-
- // WFDS IE
- P2PSvc_MakeProbeRspIE(pP2PInfo->pP2PSvcInfo, &p2pAttrs.os, &fbuf, &bToSendProbeRsp);
-
- // Free assembled P2P attributes
- p2p_parse_FreeAssembledIe(&p2pAttrs);
- }
- else
- {// P2P Managed Function simulator for test only.
- p2p_build_ManagedIe(&fbuf);
- }
- }while(FALSE);
-
- // Synch octet string with frame buffer
- FillOctetString(*posFrame, FrameBuf_MHead(&fbuf), FrameBuf_Length(&fbuf));
-
- FrameBuf_Dump(&fbuf, 0, FrameBuf_DbgLevel(&fbuf), __FUNCTION__);
-
- return;
-}
-
-VOID
-P2P_Append_BeaconIe(
- IN ADAPTER *pAdapter
- )
-{
- FRAME_BUF fbuf;
- P2P_INFO *pP2PInfo = GET_P2P_INFO(pAdapter);
- MGNT_INFO *pMgntInfo = &pAdapter->MgntInfo;
-
- FrameBuf_Init(FRAME_BUF_CAP_UNKNOWN, pMgntInfo->beaconframe.Length, pMgntInfo->beaconframe.Octet, &fbuf);
-
- if(P2P_ENABLED(pP2PInfo))
- {
- // Additional IE
- P2P_AddIe_Append(&pP2PInfo->AdditionalIEs, P2P_ADD_IE_BEACON, &fbuf);
-
- // P2P IE
- p2p_build_BeaconIe(&fbuf, pP2PInfo);
- }
- else
- {// P2P Managed Function simulator for test only.
- p2p_build_ManagedIe(&fbuf);
- }
-
- // Synch octet string with frame buffer
- FillOctetString(pMgntInfo->beaconframe, FrameBuf_MHead(&fbuf), FrameBuf_Length(&fbuf));
-
- FrameBuf_Dump(&fbuf, 0, FrameBuf_DbgLevel(&fbuf), __FUNCTION__);
-
- return;
-}
-
-VOID
-P2P_Append_AssociationReqIe(
- IN OCTET_STRING *posFrame,
- IN ADAPTER *pAdapter
- )
-{
- FRAME_BUF fbuf;
- P2P_INFO *pP2PInfo = GET_P2P_INFO(pAdapter);
-
- FrameBuf_Init(FRAME_BUF_CAP_UNKNOWN, posFrame->Length, posFrame->Octet, &fbuf);
- FrameBuf_SetDbgLevel(&fbuf, DBG_LOUD);
-
- // Append P2P IE
- if(P2P_ENABLED(GET_P2P_INFO(pAdapter)))
- {
- if(P2PScanListIsGo(pP2PInfo, Frame_pDaddr(*posFrame)))
- {// to P2P GO
- p2p_build_AssociationReqIe(&fbuf, pP2PInfo);
- }
- else
- {// to wlan AP
- p2p_build_AssociationReqToWlanApIe(&fbuf, pP2PInfo);
- }
- }
-
- // Synch octet string with frame buffer
- FillOctetString(*posFrame, FrameBuf_MHead(&fbuf), FrameBuf_Length(&fbuf));
-
- FrameBuf_Dump(&fbuf, 0, FrameBuf_DbgLevel(&fbuf), __FUNCTION__);
-
- return;
-}
-
-
-VOID
-P2P_Append_AssociationRspIe(
- IN OCTET_STRING *posFrame,
- IN ADAPTER *pAdapter
- )
-{
- FRAME_BUF fbuf;
- P2P_INFO *pP2PInfo = GET_P2P_INFO(pAdapter);
- MGNT_INFO *pMgntInfo = &pAdapter->MgntInfo;
-
- FrameBuf_Init(FRAME_BUF_CAP_UNKNOWN, posFrame->Length, posFrame->Octet, &fbuf);
- FrameBuf_SetDbgLevel(&fbuf, DBG_LOUD);
-
- // Append P2P IE
- if(P2P_ENABLED(pP2PInfo))
- {
- p2p_build_AssociationRspIe(&fbuf, pP2PInfo);
- }
- else
- {// P2P Managed Function simulator for test only.
- p2p_build_ManagedIe(&fbuf);
- }
-
- // Synch octet string with frame buffer
- FillOctetString(*posFrame, FrameBuf_MHead(&fbuf), FrameBuf_Length(&fbuf));
-
- FrameBuf_Dump(&fbuf, 0, FrameBuf_DbgLevel(&fbuf), __FUNCTION__);
-
- return;
-}
-
-VOID
-P2P_Append_ProbeReqIe(
- IN OCTET_STRING *posFrame,
- IN P2P_INFO *pP2PInfo
- )
-{
- FRAME_BUF fbuf;
-
- FrameBuf_Init(FRAME_BUF_CAP_UNKNOWN, posFrame->Length, posFrame->Octet, &fbuf);
-
- if(P2P_ENABLED(pP2PInfo))
- {
- p2p_build_ProbeReqIe(&fbuf, pP2PInfo);
-
- // Synch octet string with frame buffer
- FillOctetString(*posFrame, FrameBuf_MHead(&fbuf), FrameBuf_Length(&fbuf));
- }
- return;
-}
-
-#endif