summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang You (UU) <[email protected]>2025-11-10 12:29:39 -0800
committerYang You (UU) <[email protected]>2025-11-10 12:29:39 -0800
commitbddbce760509546060b3ccc28a9891b2412d2824 (patch)
treecaa3a743eea9f388e5e4eb4258416259a22834e3
parentaf60c12439cf289a8fcb670abc4e7cca76e32a4f (diff)
have the buildable KM and UM solutions for Wifi only scenarios.
-rw-r--r--network/wlan/WIFICX/drivercode/SharedTypes.h82
-rw-r--r--network/wlan/WIFICX/drivercode/adapter.cpp43
-rw-r--r--network/wlan/WIFICX/drivercode/adapter.h21
-rw-r--r--network/wlan/WIFICX/drivercode/device.cpp125
-rw-r--r--network/wlan/WIFICX/drivercode/device.h11
-rw-r--r--network/wlan/WIFICX/drivercode/driver.cpp137
-rw-r--r--network/wlan/WIFICX/drivercode/memorymanagement.cpp150
-rw-r--r--network/wlan/WIFICX/drivercode/precomp.h32
-rw-r--r--network/wlan/WIFICX/drivercode/testdata.h7439
-rw-r--r--network/wlan/WIFICX/drivercode/trace.h247
-rw-r--r--network/wlan/WIFICX/drivercode/umkmfusion.h89
-rw-r--r--network/wlan/WIFICX/drivercode/wifirequest.cpp1521
-rw-r--r--network/wlan/WIFICX/drivercode/wifirequest.h30
-rw-r--r--network/wlan/WIFICX/km/wificxsampleclientkm.inf62
-rw-r--r--network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj191
-rw-r--r--network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj.filters84
-rw-r--r--network/wlan/WIFICX/um/wificxsampleclientum.infbin0 -> 3340 bytes
-rw-r--r--network/wlan/WIFICX/um/wificxsampleclientum.vcxproj201
-rw-r--r--network/wlan/WIFICX/um/wificxsampleclientum.vcxproj.filters66
-rw-r--r--network/wlan/WIFICX/wificxsampleclient.sln48
20 files changed, 10579 insertions, 0 deletions
diff --git a/network/wlan/WIFICX/drivercode/SharedTypes.h b/network/wlan/WIFICX/drivercode/SharedTypes.h
new file mode 100644
index 00000000..237f5997
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/SharedTypes.h
@@ -0,0 +1,82 @@
+// Copyright (C) Microsoft Corporation. All rights reserved.
+#pragma once
+
+//
+// SharedTypes.h
+// Central header for global definitions, macros, and shared structures.
+//
+#include "precomp.h"
+#include <initguid.h> // for GUID defination
+
+// =============================
+// GUIDs or Constants
+// =============================
+// {bb67559a-06f6-4eb0-81e9-21fdc3b60efb}
+DEFINE_GUID(GUID_WIFICX_SAMPLE_CLIENT_INTERFACE, 0xbb67559a, 0x06f6, 0x4eb0, 0x81, 0xe9, 0x21, 0xfd, 0xc3, 0xb6, 0x0e, 0xfb);
+#define WIFI_DRIVER_DEFAULT_POOL_TAG 'sHIW' // WIFI IHV Sample Driver
+
+// =============================
+// WDF Object Context Types
+// =============================
+
+typedef struct _WIFI_DEVICE_CONTEXT
+{
+ //
+ // Do not add field variable before WdfTriageInfoPtr.
+ // NetAdapterCx carving code requires the first field of WDF context
+ // to be a pointer to WDF_TRIAGE_INFO.
+ //
+ void* WdfTriageInfoPtr;
+ WDFDEVICE WdfDevice;
+ UCHAR CurrentRadioState;
+ WDI_GET_ADAPTER_CAPABILITIES_PARAMETERS AdapterCapabilities;
+ TLV_CONTEXT TlvContext;
+ UINT32 LastConnectEntryId;
+ UINT32 LastConnectTransactionId;
+ WDI_AUTH_ALGORITHM LastAuthAlgo;
+ DOT11_MAC_ADDRESS ConnectedPeer;
+ NETADAPTER primaryStaAdapter;
+} WIFI_DEVICE_CONTEXT, * PWIFI_DEVICE_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WIFI_DEVICE_CONTEXT, WifiGetDeviceContext);
+static_assert(FIELD_OFFSET(WIFI_DEVICE_CONTEXT, WdfTriageInfoPtr) == 0);
+
+// Context for each NetAdapter instance.
+// Each NetAdapter instance corresponds to an IP interface
+//
+typedef struct _WIFI_NETADAPTER_CONTEXT
+{
+ PWIFI_DEVICE_CONTEXT WifiDeviceContext; // Wdf device context
+ NETADAPTER NetAdapter; // NetAdapter object
+
+ LIST_ENTRY ReceiveList;
+ NETPACKETQUEUE TxQueue; // Tx Queue object
+ NETPACKETQUEUE RxQueue; // Rx Queue object
+ bool CanReportWifiWakeSourceTypeClientDriverDiagnostic;
+} WIFI_NETADAPTER_CONTEXT, * PWIFI_NETADAPTER_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WIFI_NETADAPTER_CONTEXT, WifiGetNetAdapterContext);
+
+typedef struct _PLACEMENT_NEW_ALLOCATION_CONTEXT
+{
+ size_t cbMaxSize;
+ _Field_size_bytes_(cbMaxSize) void* pbBuffer;
+} PLACEMENT_NEW_ALLOCATION_CONTEXT, * PPLACEMENT_NEW_ALLOCATION_CONTEXT;
+typedef const PLACEMENT_NEW_ALLOCATION_CONTEXT* PCPLACEMENT_NEW_ALLOCATION_CONTEXT;
+
+// for FreeWdfMemoryBuffer to correct get
+// the handle to free the memory
+struct WIFI_IHV_MEMORY_HEADER
+{
+ size_t HeaderSize;
+ WDFMEMORY WdfMemoryHandle;
+};
+
+// for tracking memory leaks
+struct WIFI_IHV_MEMORY_CONTEXT
+{
+ size_t ContextSize;
+ void* pvCaller;
+};
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WIFI_IHV_MEMORY_CONTEXT, GetWificxIhvMemoryContextFromHandle);
diff --git a/network/wlan/WIFICX/drivercode/adapter.cpp b/network/wlan/WIFICX/drivercode/adapter.cpp
new file mode 100644
index 00000000..e0ea86e6
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/adapter.cpp
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+#include "precomp.h"
+
+#include "device.h"
+
+#include "adapter.h"
+#include "adapter.tmh"
+
+_Use_decl_annotations_
+NTSTATUS WifiCxTestAdapterStart(NETADAPTER netAdapter)
+{
+ TraceEntry();
+
+ ULONG64 maxXmitLinkSpeed = WIFI_MEDIA_MAX_SPEED;
+ ULONG64 maxRcvLinkSpeed = WIFI_MEDIA_MAX_SPEED;
+
+ NET_ADAPTER_LINK_LAYER_CAPABILITIES linkLayerCapabilities;
+ NET_ADAPTER_LINK_LAYER_CAPABILITIES_INIT(&linkLayerCapabilities, maxXmitLinkSpeed, maxRcvLinkSpeed);
+
+ NetAdapterSetLinkLayerCapabilities(netAdapter, &linkLayerCapabilities);
+
+ NetAdapterSetLinkLayerMtuSize(netAdapter, WIFI_MAX_PACKET_SIZE);
+
+ static WDI_MAC_ADDRESS STAAddress = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
+ NET_ADAPTER_LINK_LAYER_ADDRESS permanentLinkLayerAddress;
+ NET_ADAPTER_LINK_LAYER_ADDRESS_INIT(&permanentLinkLayerAddress, sizeof(WDI_MAC_ADDRESS), STAAddress.Address);
+ NetAdapterSetPermanentLinkLayerAddress(netAdapter, &permanentLinkLayerAddress);
+
+ WIFI_ADAPTER_WAKE_CAPABILITIES wakeCap{};
+ WIFI_ADAPTER_WAKE_CAPABILITIES_INIT(&wakeCap);
+ if (WIFI_IS_FIELD_AVAILABLE(WIFI_ADAPTER_WAKE_CAPABILITIES, ClientDriverDiagnostic))
+ {
+ wakeCap.ClientDriverDiagnostic = true;
+ }
+ WifiAdapterSetWakeCapabilities(netAdapter, &wakeCap);
+
+ NTSTATUS status = NetAdapterStart(netAdapter);
+ ASSERT(STATUS_SUCCESS == status);
+
+ TraceExit(status);
+
+ return status;
+}
diff --git a/network/wlan/WIFICX/drivercode/adapter.h b/network/wlan/WIFICX/drivercode/adapter.h
new file mode 100644
index 00000000..33a886f0
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/adapter.h
@@ -0,0 +1,21 @@
+// Copyright (C) Microsoft Corporation. All rights reserved.
+#pragma once
+
+#include "device.h"
+
+// packet and header sizes
+#define WIFI_MAX_PACKET_SIZE (1514)
+
+// maximum link speed for send and recv in bps
+#define WIFI_MEDIA_MAX_SPEED 1'000'000'000
+
+//
+// NetAdapter functions
+//
+
+EVT_NET_ADAPTER_CREATE_TXQUEUE EvtAdapterCreateTxQueue;
+EVT_NET_ADAPTER_CREATE_RXQUEUE EvtAdapterCreateRxQueue;
+
+EVT_WDF_DEVICE_CONTEXT_DESTROY MbbDestroyAdapterContext;
+
+NTSTATUS WifiCxTestAdapterStart(_In_ NETADAPTER netAdapter);
diff --git a/network/wlan/WIFICX/drivercode/device.cpp b/network/wlan/WIFICX/drivercode/device.cpp
new file mode 100644
index 00000000..dbd03566
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/device.cpp
@@ -0,0 +1,125 @@
+//-------------------------------------------------------------------------------
+// Net Adapter source file
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+
+#include "precomp.h"
+
+#include "adapter.h"
+#include "device.h"
+#include "device.tmh"
+
+_Use_decl_annotations_
+NTSTATUS EvtDevicePrepareHardware(WDFDEVICE device, WDFCMRESLIST resourcesRaw, WDFCMRESLIST resourcesTranslated)
+{
+ UNREFERENCED_PARAMETER(resourcesRaw);
+ UNREFERENCED_PARAMETER(resourcesTranslated);
+ UNREFERENCED_PARAMETER(device);
+ NTSTATUS status = STATUS_SUCCESS;
+
+ //status = WifiCxTestSetDeviceCapabilities(device);
+
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("%!FUNC!: WifiCxTestSetDeviceCapabilities failed with %!STATUS!", status);
+ return status;
+ }
+
+ WFCInfo("Device=0x%p", device);
+ return status;
+}
+
+_Use_decl_annotations_
+NTSTATUS EvtDeviceReleaseHardware(WDFDEVICE device, WDFCMRESLIST resourcesTranslated)
+{
+ UNREFERENCED_PARAMETER(device);
+ UNREFERENCED_PARAMETER(resourcesTranslated);
+
+ WFCInfo("Device=0x%p", device);
+
+ return STATUS_SUCCESS;
+}
+
+_Use_decl_annotations_
+void EvtDeviceSurpriseRemoval(WDFDEVICE device)
+{
+ UNREFERENCED_PARAMETER(device);
+ WFCInfo("Device=0x%p is surprise removed", device);
+}
+
+static NTSTATUS WifiInitAdapterContext(_In_ WDFDEVICE Device, _In_ NETADAPTER NetAdapter)
+{
+ PWIFI_DEVICE_CONTEXT deviceContext = WifiGetDeviceContext(Device);
+ PWIFI_NETADAPTER_CONTEXT netAdapterContext = WifiGetNetAdapterContext(NetAdapter);
+ NTSTATUS status = STATUS_SUCCESS;
+
+ deviceContext->LastConnectEntryId = 0; // Disconnected State
+ deviceContext->LastConnectTransactionId = 0;
+ deviceContext->CurrentRadioState = TRUE;
+ if (deviceContext->primaryStaAdapter == WDF_NO_HANDLE)
+ {
+ deviceContext->primaryStaAdapter = NetAdapter;
+ }
+
+ InitializeListHead(&netAdapterContext->ReceiveList);
+ netAdapterContext->WifiDeviceContext = deviceContext;
+ netAdapterContext->NetAdapter = NetAdapter;
+ return status;
+}
+
+_Use_decl_annotations_
+NTSTATUS EvtWifiDeviceCreateAdapter(WDFDEVICE Device, NETADAPTER_INIT* AdapterInit)
+{
+
+ //NET_ADAPTER_DATAPATH_CALLBACKS datapathCallbacks;
+ //NET_ADAPTER_DATAPATH_CALLBACKS_INIT(&datapathCallbacks, EvtAdapterCreateTxQueue, EvtAdapterCreateRxQueue);
+
+ //NetAdapterInitSetDatapathCallbacks(AdapterInit, &datapathCallbacks);
+
+ WDF_OBJECT_ATTRIBUTES adapterAttributes;
+ WDF_OBJECT_ATTRIBUTES_INIT(&adapterAttributes);
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&adapterAttributes, WIFI_NETADAPTER_CONTEXT);
+ adapterAttributes.EvtCleanupCallback = EvtAdapterCleanup;
+
+ NETADAPTER netAdapter;
+ NTSTATUS ntStatus = NetAdapterCreate(AdapterInit, &adapterAttributes, &netAdapter);
+ if (!NT_SUCCESS(ntStatus))
+ {
+ WFCError("%!FUNC!: NetAdapterCreate failed, status=0x%x", ntStatus);
+ return ntStatus;
+ }
+
+ ntStatus = WifiAdapterInitialize(netAdapter);
+ ASSERT(NT_SUCCESS(ntStatus));
+ if (!NT_SUCCESS(ntStatus))
+ {
+ WFCError("%!FUNC!: WifiAdapterInitialize failed with %!STATUS!", ntStatus);
+ return ntStatus;
+ }
+
+ ntStatus = WifiInitAdapterContext(Device, netAdapter);
+ ASSERT(NT_SUCCESS(ntStatus));
+ if (!NT_SUCCESS(ntStatus))
+ {
+ WFCError("%!FUNC!: WifiInitAdapterContext failed with %!STATUS!", ntStatus);
+ return ntStatus;
+ }
+
+ ntStatus = WifiCxTestAdapterStart(netAdapter);
+ ASSERT(NT_SUCCESS(ntStatus));
+ if (!NT_SUCCESS(ntStatus))
+ {
+ WFCError("%!FUNC!: WifiCxTestAdapterStart failed with %!STATUS!", ntStatus);
+ return ntStatus;
+ }
+
+ return ntStatus;
+}
+
+_Use_decl_annotations_
+void EvtAdapterCleanup(_In_ WDFOBJECT NetAdapter)
+{
+ UNREFERENCED_PARAMETER(NetAdapter);
+ TraceEntry();
+ TraceExit(STATUS_SUCCESS);
+} \ No newline at end of file
diff --git a/network/wlan/WIFICX/drivercode/device.h b/network/wlan/WIFICX/drivercode/device.h
new file mode 100644
index 00000000..ba716fe6
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/device.h
@@ -0,0 +1,11 @@
+// Copyright (C) Microsoft Corporation. All rights reserved.
+#pragma once
+
+EVT_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware;
+EVT_WDF_DEVICE_RELEASE_HARDWARE EvtDeviceReleaseHardware;
+EVT_WDF_DEVICE_SURPRISE_REMOVAL EvtDeviceSurpriseRemoval;
+
+EVT_WIFI_DEVICE_CREATE_ADAPTER EvtWifiDeviceCreateAdapter;
+EVT_WIFI_DEVICE_CREATE_WIFIDIRECTDEVICE EvtWifiDeviceCreateWifiDirectDevice;
+EVT_WIFI_DEVICE_SEND_COMMAND EvtWifiDeviceSendCommand;
+EVT_WDF_OBJECT_CONTEXT_CLEANUP EvtAdapterCleanup;
diff --git a/network/wlan/WIFICX/drivercode/driver.cpp b/network/wlan/WIFICX/drivercode/driver.cpp
new file mode 100644
index 00000000..2b0e2658
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/driver.cpp
@@ -0,0 +1,137 @@
+//-------------------------------------------------------------------------------
+// Net Adapter source file
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+
+#include "precomp.h"
+
+#include "device.h"
+#include "driver.tmh"
+
+EXTERN_C __declspec(code_seg("INIT")) DRIVER_INITIALIZE DriverEntry;
+EVT_WDF_DRIVER_UNLOAD EvtDriverUnload;
+EVT_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd;
+
+
+
+#if __cplusplus >= 201703L
+#define MAYBE_UNUSED [[maybe_unused]]
+#else
+#define MAYBE_UNUSED
+#endif
+
+__declspec(code_seg("INIT")) NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT driverObject, _In_ PUNICODE_STRING registryPath)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+
+ WPP_INIT_TRACING(driverObject, registryPath);
+ TraceEntry();
+
+ WDF_DRIVER_CONFIG driverConfig;
+ WDF_DRIVER_CONFIG_INIT(&driverConfig, EvtDriverDeviceAdd);
+ driverConfig.DriverPoolTag = WIFI_DRIVER_DEFAULT_POOL_TAG;
+
+ driverConfig.EvtDriverUnload = EvtDriverUnload;
+
+ WDFDRIVER driver;
+ status = WdfDriverCreate(driverObject, registryPath, WDF_NO_OBJECT_ATTRIBUTES, &driverConfig, &driver);
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("WdfDriverCreate failed 0x%x", status);
+ goto Exit;
+ }
+
+Exit:
+ TraceExit(status);
+
+ if (!NT_SUCCESS(status))
+ {
+ WPP_CLEANUP(driverObject);
+ }
+
+ return status;
+}
+
+NTSTATUS EvtDriverDeviceAdd(_In_ WDFDRIVER driver, _Inout_ PWDFDEVICE_INIT deviceInit)
+{
+ UNREFERENCED_PARAMETER(driver);
+
+ TraceEntry();
+
+ NTSTATUS status = STATUS_SUCCESS;
+
+ status = NetDeviceInitConfig(deviceInit);
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("NetDeviceInitConfig failed, status=0x%x", status);
+ goto Exit;
+ }
+
+ status = WifiDeviceInitConfig(deviceInit);
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("WifiDeviceInitConfig failed, status=0x%x", status);
+ goto Exit;
+ }
+
+ WDF_OBJECT_ATTRIBUTES deviceAttributes;
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&deviceAttributes, WIFI_DEVICE_CONTEXT);
+
+ WDF_PNPPOWER_EVENT_CALLBACKS pnpPowerCallbacks;
+ WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&pnpPowerCallbacks);
+ pnpPowerCallbacks.EvtDevicePrepareHardware = EvtDevicePrepareHardware;
+ pnpPowerCallbacks.EvtDeviceReleaseHardware = EvtDeviceReleaseHardware;
+ pnpPowerCallbacks.EvtDeviceSurpriseRemoval = EvtDeviceSurpriseRemoval;
+
+ WdfDeviceInitSetPnpPowerEventCallbacks(deviceInit, &pnpPowerCallbacks);
+
+ WDFDEVICE wdfDevice;
+ status = WdfDeviceCreate(&deviceInit, &deviceAttributes, &wdfDevice);
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("WdfDeviceCreate failed, status=0x%x", status);
+ goto Exit;
+ }
+
+ status = WdfDeviceCreateDeviceInterface(wdfDevice, &GUID_WIFICX_SAMPLE_CLIENT_INTERFACE, nullptr);
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("WdfDeviceCreateDeviceInterface failed with status=0x%x", status);
+ goto Exit;
+ }
+
+ // Set the device to be not ejectable
+ WDF_DEVICE_PNP_CAPABILITIES pnpCapabilities;
+ WDF_DEVICE_PNP_CAPABILITIES_INIT(&pnpCapabilities);
+ pnpCapabilities.SurpriseRemovalOK = WdfTrue;
+ WdfDeviceSetPnpCapabilities(wdfDevice, &pnpCapabilities);
+
+ WIFI_DEVICE_CONFIG wifiDeviceConfig;
+ WIFI_DEVICE_CONFIG_INIT(
+ &wifiDeviceConfig, WDI_VERSION_LATEST, EvtWifiDeviceSendCommand, EvtWifiDeviceCreateAdapter, nullptr);
+
+ status = WifiDeviceInitialize(wdfDevice, &wifiDeviceConfig);
+ if (!NT_SUCCESS(status))
+ {
+ WFCError("WifiDeviceInitialize failed, status=0x%x", status);
+ goto Exit;
+ }
+
+ PWIFI_DEVICE_CONTEXT deviceContext = WifiGetDeviceContext(wdfDevice);
+ deviceContext->WdfDevice = wdfDevice;
+ deviceContext->WdfTriageInfoPtr = WdfGetTriageInfo();
+
+ deviceContext->TlvContext.AllocationContext = 0;
+ deviceContext->TlvContext.PeerVersion = WifiDeviceGetOsWdiVersion(wdfDevice);
+
+Exit:
+ TraceExit(status);
+ return status;
+}
+
+void EvtDriverUnload(MAYBE_UNUSED _In_ WDFDRIVER driver)
+{
+ TraceEntry();
+ UNREFERENCED_PARAMETER(driver);
+ WPP_CLEANUP(WdfDriverWdmGetDriverObject(driver));
+}
diff --git a/network/wlan/WIFICX/drivercode/memorymanagement.cpp b/network/wlan/WIFICX/drivercode/memorymanagement.cpp
new file mode 100644
index 00000000..8c6d56d0
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/memorymanagement.cpp
@@ -0,0 +1,150 @@
+/*++
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+ Microsoft Confidential
+
+ THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+Module Name:
+
+ new.cpp
+
+Abstract:
+
+ Test only stub WDI driver (C++ portions)
+
+Environment:
+
+ Kernel mode
+
+Author:
+
+
+--*/
+#include "precomp.h"
+
+#ifndef _KERNEL_MODE
+#include <intrin.h> // for _ReturnAddress for user mode
+#endif // UM
+
+void* AllocateWdfMemoryBuffer(size_t Size, _In_ void* CallerForMemoryLeakTracking)
+{
+ size_t totalSize = 0;
+ if (!NT_SUCCESS(Wifi::SizeTAddSafe(Size, sizeof(WIFI_IHV_MEMORY_HEADER), &totalSize)))
+ {
+ NT_ASSERT(FALSE);
+ WFCError("Failed to calculate total size");
+ return nullptr;
+ }
+
+ // allocate the context memory to store the WIFI_IHV_MEMORY_CONTEXT
+ WDF_OBJECT_ATTRIBUTES attributes;
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, WIFI_IHV_MEMORY_CONTEXT);
+ WDFMEMORY wdfMemoryBufferHandle = WDF_NO_HANDLE;
+ void* pWdfMemoryBuffer = nullptr;
+
+ if (!NT_SUCCESS(WdfMemoryCreate(&attributes, NonPagedPoolNx, WIFI_DRIVER_DEFAULT_POOL_TAG, totalSize, &wdfMemoryBufferHandle, &pWdfMemoryBuffer)))
+ {
+ WFCError("Failed to allocate memory buffer");
+ return nullptr;
+ }
+
+ RtlZeroMemory(pWdfMemoryBuffer, totalSize);
+
+ // store the wdf memory handle in the header for FreeWdfMemoryBuffer to find the handle
+ WIFI_IHV_MEMORY_HEADER* pMemoryHeader = static_cast<WIFI_IHV_MEMORY_HEADER*>(pWdfMemoryBuffer);
+ pMemoryHeader->HeaderSize = sizeof(WIFI_IHV_MEMORY_HEADER);
+ pMemoryHeader->WdfMemoryHandle = wdfMemoryBufferHandle;
+
+ // store the caller and caller's caller for tracking memory leaks
+ auto memoryContext = GetWificxIhvMemoryContextFromHandle(wdfMemoryBufferHandle);
+ RtlZeroMemory(memoryContext, sizeof(WIFI_IHV_MEMORY_CONTEXT));
+ memoryContext->ContextSize = sizeof(WIFI_IHV_MEMORY_CONTEXT);
+ memoryContext->pvCaller = CallerForMemoryLeakTracking;
+
+ // hide the wdf memory header to the caller.
+ const ULONG_PTR wdfMemoryWithHeaderBuffer = reinterpret_cast<ULONG_PTR>(pWdfMemoryBuffer);
+ ULONG_PTR wdfMemoryPayloadOnlyBuffer{ 0 };
+ if (!NT_SUCCESS(Wifi::ULongPtrAddSafe(wdfMemoryWithHeaderBuffer, sizeof(WIFI_IHV_MEMORY_HEADER), &wdfMemoryPayloadOnlyBuffer)))
+ {
+ NT_ASSERT(FALSE);
+ WFCError("Failed to calculate payload buffer address");
+ return nullptr;
+ }
+
+ return reinterpret_cast<void*>(wdfMemoryPayloadOnlyBuffer);
+}
+
+void FreeWdfMemoryBuffer(_In_opt_ void* pBuffer)
+{
+ if (pBuffer == nullptr) // existing wdi code not checking for nullptr before delete, so we have to leave it as is
+ {
+ return;
+ }
+ const ULONG_PTR wdfMemoryPayloadOnlyBuffer = reinterpret_cast<ULONG_PTR>(pBuffer);
+ ULONG_PTR wdfMemoryWithHeaderBuffer{ 0 };
+ if (!NT_SUCCESS(Wifi::ULongPtrSubSafe(wdfMemoryPayloadOnlyBuffer, sizeof(WIFI_IHV_MEMORY_HEADER), &wdfMemoryWithHeaderBuffer)))
+ {
+ NT_ASSERT(FALSE);
+ WFCError("Failed to calculate header buffer address");
+ return;
+ }
+
+ const auto wificxMemoryHeader = static_cast<WIFI_IHV_MEMORY_HEADER*>(reinterpret_cast<void*>(wdfMemoryWithHeaderBuffer));
+
+ // This is memory corruption detection logic,
+ // keep it, don't remove it.
+ NT_ASSERT(wificxMemoryHeader->HeaderSize == sizeof(WIFI_IHV_MEMORY_HEADER));
+
+ WdfObjectDelete(wificxMemoryHeader->WdfMemoryHandle);
+}
+
+_Ret_writes_bytes_maybenull_(_Size) void* PlacementNewHelper(size_t _Size, PCPLACEMENT_NEW_ALLOCATION_CONTEXT AllocationContext)
+{
+ if (_Size <= AllocationContext->cbMaxSize)
+ {
+ RtlZeroMemory(AllocationContext->pbBuffer, _Size);
+ return AllocationContext->pbBuffer;
+ }
+ WFCError(
+ "Placement operator new called with insufficient buffer space (desired: %Iu, availible: %Iu)", _Size, AllocationContext->cbMaxSize);
+ return nullptr;
+}
+
+void* __cdecl operator new(size_t Size)
+{
+ return AllocateWdfMemoryBuffer(Size, _ReturnAddress());
+}
+
+__forceinline void* __cdecl operator new(size_t _Size, ULONG_PTR AllocationContext) throw()
+{
+ if (AllocationContext != 0)
+ {
+ return PlacementNewHelper(_Size, (PPLACEMENT_NEW_ALLOCATION_CONTEXT)AllocationContext);
+ }
+ return AllocateWdfMemoryBuffer(_Size, _ReturnAddress());
+}
+
+void __cdecl operator delete(void* pData)
+{
+ FreeWdfMemoryBuffer(pData);
+}
+
+void __cdecl operator delete[](void* pData)
+{
+ FreeWdfMemoryBuffer(pData);
+}
+
+void __cdecl operator delete(void* pData, ULONG_PTR)
+{
+ FreeWdfMemoryBuffer(pData);
+}
+
+void __cdecl operator delete[](void* pData, ULONG_PTR)
+{
+ FreeWdfMemoryBuffer(pData);
+}
diff --git a/network/wlan/WIFICX/drivercode/precomp.h b/network/wlan/WIFICX/drivercode/precomp.h
new file mode 100644
index 00000000..c08123a1
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/precomp.h
@@ -0,0 +1,32 @@
+// Copyright (C) Microsoft Corporation. All rights reserved.
+#pragma once
+
+//#include <initguid.h>
+
+#ifdef _KERNEL_MODE
+ #include <ntddk.h>
+#else
+ #include <windows.h>
+ #include <ntddndis.h>
+#endif
+// WDF Headers
+#include <wdf.h>
+
+// Network Device Headers
+#include <netadaptercx.h>
+#include <netiodef.h>
+
+// WIFI Device Headers
+#include <wificx.h>
+#include "umkmfusion.h"
+#include "dot11wificxintf.h"
+#include "dot11wificxtypes.hpp"
+#include "TLVGeneratorParser.hpp"
+#include "SharedTypes.h"
+// WPP Tracing Headers
+#include "trace.h"
+
+//#include "device.h"
+//#include "adapter.h"
+
+//#include "wifirequest.h"
diff --git a/network/wlan/WIFICX/drivercode/testdata.h b/network/wlan/WIFICX/drivercode/testdata.h
new file mode 100644
index 00000000..f8f83f63
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/testdata.h
@@ -0,0 +1,7439 @@
+/*++
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+ Microsoft Confidential
+
+ THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+Module Name:
+
+ TestData.h
+
+Abstract:
+
+ Test only Network data
+
+Environment:
+
+ Kernel mode
+
+Author:
+
+
+--*/
+
+#pragma once
+
+#define TESTMP_BAND_IHV 0x00000010
+
+typedef struct
+{
+ UINT32 BandId;
+ WDI_MAC_ADDRESS* pMacAddress;
+ PUCHAR pTlvBssEntry;
+ UINT32 TlvBssEntrySize;
+ PUCHAR pTlvAssociationResult;
+ UINT32 TlvAssociationResultSize;
+
+} WdiTestConnectEntry, *PWdiTestConnectEntry;
+
+//
+//===============================================================================
+// Set alternate local addresses based on simulation parameters
+//===============================================================================
+//
+UCHAR s_ArubaSimLocalAddress[] = {0xd4, 0x6a, 0x6a, 0x52, 0x18, 0x07}; // For Wpa3SuiteB - Aruba
+UCHAR g_IntelSimLocalAddress[] = {0x34, 0x13, 0xe8, 0xb3, 0x14, 0x4c}; // For Wpa3SuiteB - Intel
+UCHAR g_SaeSimLocalAddress[] = {0x9c, 0xda, 0x3e, 0xf2, 0x7d, 0xd5}; // For Wpa3Sae
+
+#ifdef WPA3_ARUBA_SIM
+PUCHAR g_AlternateLocalAddress = s_ArubaSimLocalAddress;
+#elif WPA3_INTEL_SIM
+PUCHAR g_AlternateLocalAddress = g_IntelSimLocalAddress;
+#elif WPA3_SAE
+PUCHAR g_AlternateLocalAddress = g_SaeSimLocalAddress;
+#else
+PUCHAR g_AlternateLocalAddress = NULL;
+#endif
+
+// clang-format off
+
+//
+//===============================================================================
+//
+
+UCHAR s_DeviceServiceTestBlob[] =
+{
+ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa
+};
+
+//
+//===============================================================================
+//
+
+UCHAR s_TLV_AssociationParametersRequestedType[] =
+{
+ // WDI_TLV_ASSOCIATION_PARAMETERS_REQUESTED_TYPE
+ 0xBB, 0x00,
+ 0x02, 0x00,
+ 0x9F, 0x00 // PMKID
+};
+
+UCHAR s_TLV_RoamingNeededIndication[] =
+{
+ // WDI_TLV_ROAMING_NEEDED_PARAMETERS
+ 0x55, 0x00,
+ 0x04, 0x00,
+ 0x0a, 0x00, 0x00, 0x00
+};
+
+UCHAR s_TLV_NeighborReport[] =
+{
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0x20, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_ACTION_FRAME_BODY
+ 0xBE, 0x00,
+ 0x14, 0x00,
+ 0x05, // Category = Radio Measurement
+ 0x05, // Action = Neighbor Report Response
+ 0x01, // Dialog Token
+ 0x34, // Element ID = Neighbor Report
+ 0x0F, // Length
+ 0x00, 0x20, 0x30, 0x40, 0x50, 0x60, // BSSID
+ 0x00, 0x00, 0x00, 0x00, // BSSID Information
+ 0x00, // Operating class
+ 0x06, // Channel Number
+ 0x00, // PHY Type
+ 0x00, 0x00, // Optional IEs
+};
+
+//
+//===============================================================================
+//
+
+//
+//===============================================================================
+// BSs entries
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr = {0x00, 0x20, 0x30, 0x40, 0x50, 0x60};
+
+UCHAR s_TLV_BSS_Entry_1 [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x63, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0x20, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME
+ 0x09, 0x00, // Type
+ 0x35, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08,
+ 'W', 'F', 'C', '_', 'O', 'P', 'E', 'N', // SSID
+ 0x01, 0x04, // Supported Rates
+ 0x02, 0x04, 0x0B, 0x16,
+ 0x03, 0x01, // DSSS Parameter
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x07, // Vendor specific - MBO-OCE IE
+ 0x50, 0x6F, 0x9A, // WFA OUI
+ 0x16, // MBO-OCE IE OUI Type
+ 0x01, // Attribute ID - AP capability
+ 0x01, // Attrib length
+ 0x00, // Not cellular data aware
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // Band ID
+};
+
+UCHAR s_TLV_SuccessOpenAssociationResult[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD7, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0x20, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x30, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08,
+ 'W', 'F', 'C', '_', 'O', 'P', 'E', 'N', // SSID
+ 0x01, 0x08, // Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x21, 0x02, // Power Capability
+ 0x07, 0x12,
+ 0x24, 0x02, // Supported Channels
+ 0x01, 0x0B,
+ 0x32, 0x04, // Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x07, // WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, //Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x32, 0x04, //Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x18, //WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x25, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08,
+ 'W', 'F', 'C', '_', 'O', 'P', 'E', 'N', // SSID
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_ETHERTYPE_ENCAP_TABLE (optional)
+ // 0x00, 0x00,
+ // 0x04, 0x00,
+ // 0x00, 0x00, 0x00, 0x00
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x07, 0x00, 0x00, 0x00,
+
+};
+
+
+UCHAR s_TLV_OpenDisassociation[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0xBC, 0x00,
+ 0x0A, 0x00,
+ 0x00, 0x20, 0x30, 0x40, 0x50, 0x60,
+ 0x01, 0x00, 0x00, 0x00,
+
+ // WDI_TLV Need Peer Cleanup Params
+ 0xb4, 0x00,
+ 0x01, 0x00,
+ 0x00
+};
+
+WDI_MAC_ADDRESS s_Connect_Addr_2_Open = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE2};
+
+UCHAR s_TLV_BSS_Entry_2_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x59, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE2,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x26, 0x00,
+ 0x44, 0x55, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N',
+ 0x03, 0x01, // DSSS Parameter
+ 0x01,
+ 0x01, 0x04, // Supported Rates
+ 0x02, 0x04, 0x0B, 0x16,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x02, 0x00, 0x00, 0x00, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x28, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // Band ID
+
+};
+
+UCHAR s_TLV_Success_AssociationResult_2_Open[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD7, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE2,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x30, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N',
+ 0x01, 0x08, // Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x21, 0x02, // Power Capability
+ 0x07, 0x12,
+ 0x24, 0x02, // Supported Channels
+ 0x01, 0x0B,
+ 0x32, 0x04, // Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x07, // WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, // Capability
+ 0x00, 0x00, // Status
+ 0x01, 0xC0, // Association ID
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x32, 0x04, // Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x18, // WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x25, 0x00,
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N',
+ 0x01, 0x04,
+ 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, // DSSS Parameter
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+
+ // WDI_TLV_ETHERTYPE_ENCAP_TABLE (optional)
+ // 0x00, 0x00,
+ // 0x04, 0x00,
+ // 0x00, 0x00, 0x00, 0x00
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+
+};
+
+//
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr_3_WEP = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE3};
+
+UCHAR s_TLV_BSS_Entry_3_WEP [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x52, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE3,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x1f, 0x00,
+ 0x44, 0x55, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x10, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', '_', 'W', 'E', 'P',
+ 0x03, 0x01, 0x01, // DSSS Parameter (Offset: 42)
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x3C, 0x00, 0x00, 0x00, // Link Quality (Offset: 57)
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel (Offset: 64)
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00
+};
+
+
+UCHAR s_TLV_Success_AssociationResult_3_WEP[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD9, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE3,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x00, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x32, 0x00,
+ 0x10, 0x04, // Capability
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', '_', 'W', 'E', 'P',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02, 0x07, 0x12, //Power Capability
+ 0x24, 0x02, 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x07, 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x25, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x10, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', '_', 'W', 'E', 'P',
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_ETHERTYPE_ENCAP_TABLE (optional)
+ // 0x00, 0x00,
+ // 0x04, 0x00,
+ // 0x00, 0x00, 0x00, 0x00
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+
+};
+
+
+//
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr_4_RSNA_CCMP = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE4};
+
+#define WFA_TEST_MIN_RSN_IE 1
+
+UCHAR s_TLV_BSS_Entry_4_RSNA_CCMP [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+#ifdef WFA_TEST_MIN_RSN_IE
+ 0x79, 0x00, //Len
+#else
+ 0x8B, 0x00, //Len
+#endif // WFA_TEST_MIN_RSN_IE
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE4,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+#ifdef WFA_TEST_MIN_RSN_IE
+ 0x46, 0x00,
+#else
+ 0x58, 0x00,
+#endif // WFA_TEST_MIN_RSN_IE
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', 'S', 'E', 'C', 'U', 'R', 'E',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+#ifdef WFA_TEST_MIN_RSN_IE
+ 0x30, 0x02,
+ 0x01, 0x00,
+#else
+ 0x30, 0x14,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher -- CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher -- CCMP
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite -- RSNA_PSK
+ 0x00, 0x00, // RSN Capability
+#endif // WFA_TEST_MIN_RSN_IE
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_4_RSNA_CCMP[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x22, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE4,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x48, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', 'S', 'E', 'C', 'U', 'R', 'E',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02, 0x07, 0x12, //Power Capability
+ 0x24, 0x02, 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08, 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0x30, 0x14, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x04, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x04, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x02, 0x00, 0x00, // RSN
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0x58, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', 'S', 'E', 'C', 'U', 'R', 'E',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x14, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x04, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x04, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x02, 0x00, 0x00, // RSN
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+
+};
+
+
+//
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr_5_IHV = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5};
+
+UCHAR s_TLV_BSS_Entry_5_IHV [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x52, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x1f, 0x00,
+ 0x44, 0x55, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x10, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', '_', 'I', 'H', 'V',
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x3C, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x24, 0x00, 0x00, 0x00, // Channel = 36
+ 0x08, 0x00, 0x00, 0x00, // Band ID = Custom
+// 0x02, 0x00, 0x00, 0x00, // Band ID
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00
+};
+
+
+UCHAR s_TLV_Success_AssociationResult_5_IHV[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD9, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x02, 0x00, 0x00, 0x80, //AuthAlgorithm = Custom
+ 0x01, 0x00, 0x00, 0x80, //UnicastCipherAlgorithm
+ 0x01, 0x00, 0x00, 0x80, //MulticastDataCipherAlgorithm
+ 0x01, 0x00, 0x00, 0x80, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x80, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x32, 0x00,
+ 0x10, 0x04, // Capability
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', '_', 'I', 'H', 'V',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02, 0x07, 0x12, //Power Capability
+ 0x24, 0x02, 0x24, 0x0B, //Supported Channels
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x07, 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x25, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x10, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', '_', 'I', 'H', 'V',
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_ETHERTYPE_ENCAP_TABLE (optional)
+ // 0x00, 0x00,
+ // 0x04, 0x00,
+ // 0x00, 0x00, 0x00, 0x00
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x02, 0x00, 0x00, 0x80, // Phy = IHV Phy 2
+
+};
+
+
+UCHAR s_TLV_IhvRequestComplete[] =
+{
+ // WDI_TLV_IHV_DATA
+ 0xBD, 0x00,
+ 0x0A, 0x00,
+
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0x00, 0x00, 0x01
+};
+
+
+UCHAR s_TLV_IhvIndication[] =
+{
+ // WDI_TLV_IHV_DATA
+ 0xBD, 0x00,
+ 0x30, 0x00,
+
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE5
+};
+
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_6_FT_CCMP = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE6};
+
+UCHAR s_TLV_BSS_Entry_6_FT_CCMP [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xEA, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE6,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xB7, 0x00,
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x07, // SSID
+ 'W', 'D', 'I', '_', '_', 'F', 'T', // WDI__FT
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x03, 0x01, // DSS Parameters
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x07, 0x06, // Country
+ 0x55, 0x53, 0x20, 0x01, 0x0B, 0x1E,
+ 0x0B, 0x05,
+ 0x00, 0x00, 0x53, 0x8D, 0x5B,
+ 0x2A, 0x01,
+ 0x00,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x03, // AKM Suite
+ 0x28, 0x00, // RSN Capability
+ 0x32, 0x01,
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x0B, 0x47, // MDID
+ 0x00, // FT Capability and Policy
+ 0x85, 0x1E,
+ 0x00, 0x00, 0x8F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0x59, 0x00, 0x41, 0x50, 0x30, 0x30, 0x31, 0x34,
+ 0x2E, 0x36, 0x39, 0x34, 0x30, 0x2E, 0x38, 0x35, 0x32, 0x00, 0x00, 0x00, 0x00, 0x27,
+ 0x96, 0x06,
+ 0x00, 0x40, 0x96, 0x00, 0x0B, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x06,
+ 0x00, 0x40, 0x96, 0x01, 0x01, 0x04,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x03, 0x05,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x0B, 0x09,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x14, 0x01,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x4A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_6_FT_CCMP[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x0C, 0x02,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE6,
+
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x06, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x01, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x3E, 0x00,
+ 0x31, 0x04, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x07, // SSID
+ 'W', 'D', 'I', '_', '_', 'F', 'T', // WDI__FT
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher -- CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher -- CCMP
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x03, // AKM Suite -- FT
+ 0x0C, 0x00, // RSN Capability
+ 0x32, 0x01, // Extended Rates
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x0B, 0x47, // MDID
+ 0x00, // FT Capability and Policy
+ 0xDD, 0x07,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0xC5, 0x00,
+ 0x31, 0x04, // Capability
+ 0x00, 0x00, // Status
+ 0x01, 0xC0, // Association ID
+ 0x01, 0x08, // Supported Rates
+ 0x96, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x30, 0x26, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher -- CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher -- CCMP
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x03, // AKM Suite -- FT
+ 0x28, 0x00, // RSN Capability
+ 0x01, 0x00, // PMKID Count -- PMKR1Name
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //PMKID
+ 0x32, 0x01, // Extended Rates
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x0B, 0x47, // MDID
+ 0x00, // FT Capability and Policy
+ 0x37, 0x69, // FTE IE
+ 0x00, 0x00, // MIC Control - 0 => no MIC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //MIC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //ANonce
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //SNonce
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x06, // R1KH-ID
+ 0xB4, 0xC7, 0x99, 0x8A, 0xB6, 0x30,
+ 0x03, 0x0D, // R0KH-ID
+ 'a', 'p', '8', '1', '3', '2', '-', '7', '3', '4', 'E', 'B', '0',
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xB7, 0x00,
+ 0xDD, 0x50, 0x3D, 0xF7, 0xE2, 0x01, 0x00, 0x00, // Supported Rates
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x07, // SSID
+ 'W', 'D', 'I', '_', '_', 'F', 'T', // WDI__FT
+ 0x01, 0x08,
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x03, 0x01, // DSS Parameters
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x07, 0x06, // Country
+ 0x55, 0x53, 0x20, 0x01, 0x0B, 0x1E,
+ 0x0B, 0x05,
+ 0x00, 0x00, 0x6E, 0x8D, 0x5B,
+ 0x2A, 0x01, // ERP
+ 0x00,
+ 0x30, 0x14, // RSN
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise cipher count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise cipher
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x03, // AKM Suite
+ 0x0C, 0x00, // RSN Capability
+ 0x32, 0x01, // Extended Supported Rates
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x0B, 0x47, // MDID
+ 0x00, // FT Capability and Policy
+ 0x85, 0x1E,
+ 0x03, 0x00, 0x8F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0x59, 0x00, 0x41, 0x50, 0x30, 0x30, 0x31, 0x34,
+ 0x2E, 0x36, 0x39, 0x34, 0x30, 0x2E, 0x38, 0x31, 0x65, 0x00, 0x00, 0x00, 0x00, 0x27,
+ 0x96, 0x06,
+ 0x00, 0x40, 0x96, 0x00, 0x0E, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x06,
+ 0x00, 0x40, 0x96, 0x01, 0x01, 0x04,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x03, 0x05,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x0B, 0x09,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x14, 0x01,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x06, 0x00, 0x00, 0x00
+};
+
+
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_7_FT_PSK_CCMP = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE7};
+
+UCHAR s_TLV_BSS_Entry_7_FT_PSK_CCMP [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xED, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE7,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xBA, 0x00,
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', '_', 'F', 'T', 'P', 'S', 'K', // WDI__FTPSK
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x03, 0x01, // DSS Parameters
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x07, 0x06, // Country
+ 0x55, 0x53, 0x20, 0x01, 0x0B, 0x1E,
+ 0x0B, 0x05,
+ 0x00, 0x00, 0x53, 0x8D, 0x5B,
+ 0x2A, 0x01,
+ 0x00,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x04, // AKM Suite
+ 0x28, 0x00, // RSN Capability
+ 0x32, 0x01,
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x12, 0x34, // MDID
+ 0x80, // FT Capability and Policy
+ 0x85, 0x1E,
+ 0x00, 0x00, 0x8F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0x59, 0x00, 0x41, 0x50, 0x30, 0x30, 0x31, 0x34,
+ 0x2E, 0x36, 0x39, 0x34, 0x30, 0x2E, 0x38, 0x35, 0x32, 0x00, 0x00, 0x00, 0x00, 0x27,
+ 0x96, 0x06,
+ 0x00, 0x40, 0x96, 0x00, 0x0B, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x06,
+ 0x00, 0x40, 0x96, 0x01, 0x01, 0x04,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x03, 0x05,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x0B, 0x09,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x14, 0x01,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x4A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_7_FT_PSK_CCMP[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x0C, 0x02,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE7,
+
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x01, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x41, 0x00,
+ 0x31, 0x04, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', '_', 'F', 'T', 'P', 'S', 'K', // WDI__FTPSK
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x04, 0x01, 0x00, 0x00, 0x0F, 0xAC, 0x04, 0x01, 0x00, 0x00, 0x0F,
+ 0xAC, 0x01, 0x00, 0x00,
+ 0x32, 0x01, // Extended Rates
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x12, 0x34, // MDID
+ 0x80, // FT Capability and Policy
+ 0xDD, 0x07,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0xBF, 0x00,
+ 0x31, 0x04, // Capability
+ 0x00, 0x00, // Status
+ 0x01, 0xC0, // Association ID
+ 0x01, 0x08, // Supported Rates
+ 0x96, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x30, 0x26, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher -- CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher -- CCMP
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x04, // AKM Suite -- FT-PSK
+ 0x28, 0x00, // RSN Capability
+ 0x01, 0x00, // PMKID Count -- PMKR1Name
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //PMKID
+ 0x32, 0x01, // Extended Rates
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x12, 0x34, // MDID
+ 0x80, // FT Capability and Policy
+ 0x37, 0x63, // FTE IE
+ 0x00, 0x02, // MIC Control
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //MIC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //ANonce
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //SNonce
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x06, // R1KH-ID
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE7,
+ 0x03, 0x07, // R0KH-ID
+ 'x', '@', 'y', '.', 'c', 'o', 'm',
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xBA, 0x00,
+ 0xDD, 0x50, 0x3D, 0xF7, 0xE2, 0x01, 0x00, 0x00, // Supported Rates
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', '_', 'F', 'T', 'P', 'S', 'K', // WDI__FTPSK
+ 0x01, 0x08,
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+ 0x03, 0x01, // DSS Parameters
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x07, 0x06, // Country
+ 0x55, 0x53, 0x20, 0x01, 0x0B, 0x1E,
+ 0x0B, 0x05,
+ 0x00, 0x00, 0x6E, 0x8D, 0x5B,
+ 0x2A, 0x01, // ERP
+ 0x00,
+ 0x30, 0x14, // RSN
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise cipher count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise cipher
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x04, // AKM Suite
+ 0x28, 0x00, // RSN Capability
+ 0x32, 0x01, // Extended Supported Rates
+ 0x6C,
+ 0x36, 0x03, // MDID IE
+ 0x12, 0x34, // MDID
+ 0x80, // FT Capability and Policy
+ 0x85, 0x1E,
+ 0x03, 0x00, 0x8F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0x59, 0x00, 0x41, 0x50, 0x30, 0x30, 0x31, 0x34,
+ 0x2E, 0x36, 0x39, 0x34, 0x30, 0x2E, 0x38, 0x31, 0x65, 0x00, 0x00, 0x00, 0x00, 0x27,
+ 0x96, 0x06,
+ 0x00, 0x40, 0x96, 0x00, 0x0E, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x06,
+ 0x00, 0x40, 0x96, 0x01, 0x01, 0x04,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x03, 0x05,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x0B, 0x09,
+ 0xDD, 0x05,
+ 0x00, 0x40, 0x96, 0x14, 0x01,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x06, 0x00, 0x00, 0x00
+};
+
+
+//
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr_8_Hidden = {0x00, 0xA0, 0xB0, 0xC0, 0xD0,0xE8};
+
+UCHAR s_TLV_BSS_Entry_Beacon_8_Hidden [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x52, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE8,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x24, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x00, // SSID
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x46, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, // RM Enabled Capabilities
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // Band ID
+};
+
+UCHAR s_TLV_BSS_Entry_ProbeResponse_8_Hidden [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x5a, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE8,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME
+ 0x09, 0x00, // Type
+ 0x2C, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', 'H', 'I', 'D', 'E',
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x46, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, // RM Enabled Capabilities
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // Band ID
+};
+
+
+UCHAR s_TLV_Success_AssociationResult_8_Hidden[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD7, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE8,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x30, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', 'H', 'I', 'D', 'E',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02, 0x07, 0x12, //Power Capability
+ 0x24, 0x02, 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x07, 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x25, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08, // SSID
+ 'W', 'D', 'I', '_', 'H', 'I', 'D', 'E',
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_ETHERTYPE_ENCAP_TABLE (optional)
+ // 0x00, 0x00,
+ // 0x04, 0x00,
+ // 0x00, 0x00, 0x00, 0x00
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+
+};
+
+
+//===============================================================================
+//
+// 11ad
+//
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_9_11ad_PSK = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9};
+
+UCHAR s_TLV_BSS_Entry_9_11ad_Beacon_PSK [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x3F, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9,
+
+ // WDI_TLV_BEACON_FRAME (8.3.3.2, Table 8-33a)
+ 0x0A, 0x00,
+ 0x0C, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x31, 0x04, // Capability
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_9_11ad_Beacon_Dmg_PSK [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x47, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9,
+
+ // WDI_TLV_BEACON_FRAME (8.3.3.2, Table 8-33a)
+ 0x0A, 0x00,
+ 0x14, 0x00, // For WiFi Beacon
+ // DMG Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x00, 0x0c, 0x38, // 3 - Sector Sweep (9.5.1)
+ 0x64, 0x00, // 2 - Beacon Interval (9.4.1.3)
+ 0xc0, 0x7c, 0x18, 0x08, 0x20, 0x18, // 6 - Beacon Interval Control (Fig 9-60)
+ 0x07, // 1 - DMG Parameters (9.4.1.47)
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_9_11ad_ProbeResponse_PSK [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xCB, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME (8.3.3.2, Table 8-33a)
+ 0x09, 0x00,
+ 0x98, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x31, 0x04, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_9_11ad_ProbeResponse_Dmg_PSK [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xCB, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME (8.3.3.2, Table 8-33a)
+ 0x09, 0x00,
+ 0x98, 0x00, // For WiFi Beacon
+ // Dmg
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x17, 0x00, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_9_11ad_PSK [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x96, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x08, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x08, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x01, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x03, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x65, 0x00,
+ 0x31, 0x04, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x94, 11,
+ 0x04, 0xCE, 0x14, 0x0A, 0x3B, 0x61, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x47, 0x00,
+ 0x17, 0x00, // Capabilities
+ 0x00, 0x00, // Status code
+ 0x02, 0x00, // Association ID
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x94, 0x11, // DMG Capabilities
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, // STA address
+ 0x03, // AID
+ 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x98, 0x00,
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x09, 0x00, 0x00, 0x00
+};
+
+
+UCHAR s_TLV_Success_AssociationResult_9_11ad_Dmg_PSK [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x96, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xE9,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x08, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x08, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x01, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x03, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x65, 0x00,
+ 0x05, 0x00, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x94, 11,
+ 0x04, 0xCE, 0x14, 0x0A, 0x3B, 0x61, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x47, 0x00,
+ 0x17, 0x00, // Capabilities
+ 0x00, 0x00, // Status code
+ 0x02, 0x00, // Association ID
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x94, 0x11, // DMG Capabilities
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, // STA address
+ 0x03, // AID
+ 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x98, 0x00,
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x09, 0x00, 0x00, 0x00
+};
+
+
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_10_11ad_1x = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA};
+
+UCHAR s_TLV_BSS_Entry_10_11ad_Beacon_1x [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x3F, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA,
+
+ // WDI_TLV_BEACON_FRAME (8.3.3.2, Table 8-33a)
+ 0x0A, 0x00,
+ 0x0C, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x31, 0x04, // Capability
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_10_11ad_Beacon_Dmg_1x [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x47, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA,
+
+ // WDI_TLV_BEACON_FRAME (8.3.3.2, Table 8-33a)
+ 0x0A, 0x00,
+ 0x14, 0x00, // For WiFi Beacon
+ // DMG Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x00, 0x0c, 0x38, // 3 - Sector Sweep (9.5.1)
+ 0x64, 0x00, // 2 - Beacon Interval (9.4.1.3)
+ 0xc0, 0x7c, 0x18, 0x08, 0x20, 0x18, // 6 - Beacon Interval Control (Fig 9-60)
+ 0x07, // 1 - DMG Parameters (9.4.1.47)
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_10_11ad_ProbeResponse_1x [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xCB, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME (8.3.3.2, Table 8-33a)
+ 0x09, 0x00,
+ 0x98, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x31, 0x04, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', '1', 'x', // WDI_ad_1x
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x01, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_10_11ad_ProbeResponse_Dmg_1x [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xCB, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME (8.3.3.2, Table 8-33a)
+ 0x09, 0x00,
+ 0x98, 0x00, // For WiFi Beacon
+ // Dmg
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x17, 0x00, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', '1', 'x', // WDI_ad_1x
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x01, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_10_11ad_1x [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x96, 0x01,
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x08, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x08, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x01, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x03, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x65, 0x00,
+ 0x31, 0x04, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', '1', 'x', // WDI_ad_1x
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x01, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x94, 11,
+ 0x04, 0xCE, 0x14, 0x0A, 0x3B, 0x61, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x47, 0x00,
+ 0x17, 0x00, // Capabilities
+ 0x00, 0x00, // Status code
+ 0x02, 0x00, // Association ID
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x94, 0x11, // DMG Capabilities
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, // STA address
+ 0x03, // AID
+ 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x98, 0x00,
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x01, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x09, 0x00, 0x00, 0x00
+};
+
+
+UCHAR s_TLV_Success_AssociationResult_10_11ad_Dmg_1x [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x96, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEA,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x08, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x08, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x01, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x03, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x65, 0x00,
+ 0x05, 0x00, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x01, 0x08, // Supported Rates
+ 0x0C, 0x12, 0x96, 0x18, 0x24, 0x30, 0x48, 0x60,
+
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x01, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x94, 11,
+ 0x04, 0xCE, 0x14, 0x0A, 0x3B, 0x61, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x47, 0x00,
+ 0x17, 0x00, // Capabilities
+ 0x00, 0x00, // Status code
+ 0x02, 0x00, // Association ID
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x94, 0x11, // DMG Capabilities
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, // STA address
+ 0x03, // AID
+ 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x98, 0x00,
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', 'P', 'S', 'K', // WDI_adPSK
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x30, 0x14, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x08, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x01, // AKM Suite
+ 0x00, 0x00, // RSN Capability
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0x34, 0x6B, 0x01, 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+ 0xDD, 0x21,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x09, 0x00, 0x00, 0x00
+};
+
+
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_11_11ad_Open = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB};
+
+UCHAR s_TLV_BSS_Entry_11_11ad_Beacon_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x3F, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB,
+
+ // WDI_TLV_BEACON_FRAME (8.3.3.2, Table 8-33a)
+ 0x0A, 0x00,
+ 0x0C, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x05, 0x00, // Capability
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_11_11ad_Beacon_Dmg_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x47, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB,
+
+ // WDI_TLV_BEACON_FRAME (8.3.3.2, Table 8-33a)
+ 0x0A, 0x00,
+ 0x05, 0x00, // For WiFi Beacon
+ // DMG Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x00, 0x0c, 0x38, // 3 - Sector Sweep (9.5.1)
+ 0x64, 0x00, // 2 - Beacon Interval (9.4.1.3)
+ 0xc0, 0x7c, 0x18, 0x08, 0x20, 0x18, // 6 - Beacon Interval Control (Fig 9-60)
+ 0x07, // 1 - DMG Parameters (9.4.1.47)
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_11_11ad_ProbeResponse_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xC9, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME (8.3.3.2, Table 8-33a)
+ 0x09, 0x00,
+ 0x96, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x05, 0x00, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', 'O', 'N', // WDI_ad_ON
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB, // STA address
+ 0x00, // AID
+ 0x01, 0xD2, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x0C, 0x12,
+ 0x00, 0x00, 0x03, 0xA4, 0x28, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x40, 0x00, 0x62, 0x32,
+ 0x10, 0x00,
+ 0x2E, 0x01,
+ 0x28,
+ 0xDD, 0x27,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x10, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00,
+
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_BSS_Entry_11_11ad_ProbeResponse_Dmg_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xC9, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME (8.3.3.2, Table 8-33a)
+ 0x09, 0x00,
+ 0x96, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x05, 0x00, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', 'O', 'N', // WDI_ad_ON
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB, // STA address
+ 0x00, // AID
+ 0x01, 0xD2, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x0C, 0x12,
+ 0x00, 0x00, 0x03, 0xA4, 0x28, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x40, 0x00, 0x62, 0x32,
+ 0x10, 0x00,
+ 0x2E, 0x01,
+ 0x28,
+ 0xDD, 0x27,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x10, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00,
+
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xC1, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x64, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x03, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_11_11ad_Open [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x71, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x03, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x36, 0x00,
+ 0x05, 0x00, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', 'O', 'N', // WDI_ad_ON
+ 0x2E, 0x01,
+ 0x08,
+ 0x94, 11,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB, // STA address
+ 0x00, // AID
+ 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0x49, 0x2D, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x53, 0x00,
+ 0x07, 0x00, // Capabilities
+ 0x00, 0x00, // Status code
+ 0x02, 0x00, // Association ID
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11, // DMG Capabilities
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB, // STA address
+ 0x02, // AID
+ 0x01, 0xD2, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0x0C, 0x12,
+ 0x00, 0x00, 0x03, 0xA4, 0x28, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x40, 0x00, 0x62, 0x32,
+ 0x10, 0x00,
+ 0x2E, 0x01,
+ 0x2C,
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x96, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x05, 0x00, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', 'O', 'N', // WDI_ad_ON
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00, 0x01, 0xD2, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x0C, 0x12,
+ 0x00, 0x00, 0x03, 0xA4, 0x28, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x40, 0x00, 0x62, 0x32,
+ 0x10, 0x00,
+ 0x2E, 0x01,
+ 0x28,
+ 0xDD, 0x27,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x10, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x09, 0x00, 0x00, 0x00
+};
+
+
+UCHAR s_TLV_Success_AssociationResult_11_11ad_Dmg_Open [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x71, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm -- RSNA_PSK
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x03, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x03, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x36, 0x00,
+ 0x05, 0x00, // Capabilities
+ 0x01, 0x00, // Listen Interval
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', 'O', 'N', // WDI_ad_ON
+ 0x2E, 0x01,
+ 0x08,
+ 0x94, 11,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB, // STA address
+ 0x00, // AID
+ 0x11, 0xD1, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0x49, 0x2D, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x53, 0x00,
+ 0x07, 0x00, // Capabilities
+ 0x00, 0x00, // Status code
+ 0x02, 0x00, // Association ID
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11, // DMG Capabilities
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEB, // STA address
+ 0x02, // AID
+ 0x01, 0xD2, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, // DOT11_DMG_STA_CAPABILITY_INFO
+ 0x00, 0x00, // DOT11_DMG_PCP_AP_CAPABILITY_INFO
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0x0C, 0x12,
+ 0x00, 0x00, 0x03, 0xA4, 0x28, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x40, 0x00, 0x62, 0x32,
+ 0x10, 0x00,
+ 0x2E, 0x01,
+ 0x2C,
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00,
+ 0x96, 0x00, // For WiFi Beacon
+ // WiFi Beacon
+ 0x38, 0xE3, 0x3B, 0x64, 0x11, 0x00, 0x00, 0x00, // TimeStamp (9.4.1.10)
+ 0x64, 0x00, // Beacon Interval (8.4.1.3)
+ 0x05, 0x00, // Capability
+
+ 0x00, 0x09, // SSID
+ 'W', 'D', 'I', '_', 'a', 'd', '_', 'O', 'N', // WDI_ad_ON
+ 0x03, 0x01, // DSS Parameters
+ 0x02,
+ 0x7F, 0x04,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x94, 0x11,
+ 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00, 0x01, 0xD2, 0xB7, 0x06, 0x00, 0x00, 0x40, 0x10, 0x00,
+ 0x00,
+ 0x97, 0x0A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xBE, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x0C, 0x12,
+ 0x00, 0x00, 0x03, 0xA4, 0x28, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x40, 0x00, 0x62, 0x32,
+ 0x10, 0x00,
+ 0x2E, 0x01,
+ 0x28,
+ 0xDD, 0x27,
+ 0x04, 0xCE, 0x14, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x10, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0xDD, 0x0F,
+ 0x50, 0x6F, 0x9A, 0x17, 0x01, 0x09, 0x00, 0x07, 0x04, 0xCE, 0x14, 0x07, 0xA3, 0x66, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x09, 0x00, 0x00, 0x00
+};
+
+
+//===============================================================================
+//
+// 11ax
+//
+//===============================================================================
+
+//
+// Open on 2.4 GHz
+//
+WDI_MAC_ADDRESS s_Connect_Addr_12_11ax_24_Open = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEC};
+
+
+UCHAR s_TLV_BSS_Entry_12_11ax_24_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x78, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEC,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME
+ 0x09, 0x00, // Type
+ 0x4A, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x11, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N', '_', '1', '1', 'a', 'x', '.', '2', '.', '4',
+ 0x01, 0x04,
+ 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01,
+ 0x01, // DSSS Parameter
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x46, 0x05,
+ 0x02, 0x00, 0x00, 0x00, 0x00, // RM Enabled Capabilities
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // Band ID
+};
+
+UCHAR s_TLV_Success_AssociationResult_12_11ax_24_Open [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x28, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEC,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x4E, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x11, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N', '_', '1', '1', 'a', 'x', '.', '2', '.', '4',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02,
+ 0x07, 0x12, //Power Capability
+ 0x24, 0x02,
+ 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x45, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x43, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x11, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N', '_', '1', '1', 'a', 'x', '.', '2', '.', '4',
+ 0x01, 0x04,
+ 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01,
+ 0x01, // DSSS Parameter
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+
+//===============================================================================
+
+//
+// Open on 5 GHz
+//
+WDI_MAC_ADDRESS s_Connect_Addr_13_11ax_5_Open = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xED};
+
+
+UCHAR s_TLV_BSS_Entry_13_11ax_5_Open [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x76, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xED,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME
+ 0x09, 0x00, // Type
+ 0x48, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x0F, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N', '_', '1', '1', 'a', 'x', '.', '5',
+ 0x01, 0x04,
+ 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01,
+ 0x01, // DSSS Parameter
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x46, 0x05,
+ 0x02, 0x00, 0x00, 0x00, 0x00, // RM Enabled Capabilities
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x24, 0x00, 0x00, 0x00, // Channel 36
+ 0x02, 0x00, 0x00, 0x00 // Band ID
+};
+
+UCHAR s_TLV_Success_AssociationResult_13_11ax_5_Open [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x0F, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xED,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x02, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x4C, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0xF, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N', '_', '1', '1', 'a', 'x', '.', '5',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02,
+ 0x07, 0x12, //Power Capability
+ 0x24, 0x02,
+ 0x24, 0x30, //Supported Channels
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x45, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+ 0xFF, 0x13, // Extension IE
+ 0x23, // HE Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, // MAC Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // PHY Capabilities
+ 0x00,
+ 0x00, 0x00, 0x00, 0x00, // HE-MCS and NSS
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x2C, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0xF, // SSID
+ 'W', 'D', 'I', '_', 'O', 'P', 'E', 'N', '_', '1', '1', 'a', 'x', '.', '5',
+ 0x01, 0x04,
+ 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01,
+ 0x01, // DSSS Parameter
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//
+//===============================================================================
+//
+
+// #define SAE_MIXED_MODE 1
+
+WDI_MAC_ADDRESS s_Connect_Addr_14_WPA3_SAE_CCMP = { 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32 };
+
+UCHAR s_TLV_BSS_Entry_14_WPA3_SAE_CCMP [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+#ifdef SAE_MIXED_MODE
+ 0x91, 0x00, //Len
+#else
+ 0x8D, 0x00, //Len
+#endif // SAE_MIXED_MODE
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+#ifdef SAE_MIXED_MODE
+ 0x5E, 0x00,
+#else
+ 0x5A, 0x00,
+#endif // SAE_MIXED_MODE
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0C, // SSID
+ 'W', 'D', 'I', '_', 'W', 'P', 'A', '3', '-', 'S', 'A', 'E',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+#ifdef SAE_MIXED_MODE
+ 0x30, 0x18,
+#else
+ 0x30, 0x14,
+#endif // SAE_MIXED_MODE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+#ifdef SAE_MIXED_MODE
+ 0x02, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite - WPA2PSK
+ 0x00, 0x0F, 0xAC, 0x08, // AKM Suite - WPA3SAE
+ 0x80, 0x00, // RSN Capability - no MFPR or MFPC
+#else
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x08, // AKM Suite - WPA3SAE
+ 0xC0, 0x00, // RSN Capability = MFP-Capable
+#endif // SAE_MIXED_MODE
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+
+};
+
+UCHAR s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+#ifdef SAE_MIXED_MODE
+ 0x2A, 0x01,
+#else
+ 0x26, 0x01,
+#endif // SAE_MIXED_MODE
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x4A, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x0C, // SSID
+ 'W', 'D', 'I', '_', 'W', 'P', 'A', '3', '-', 'S', 'A', 'E',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02,
+ 0x07, 0x12, //Power Capability
+ 0x24, 0x02,
+ 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0x30, 0x14,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise cipher count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AMK Suite Count
+ 0x00, 0x0F, 0xAC, 0x08, // AMK Suite - WPA3SAE
+ 0xC0, 0x00, // RSN Capability = MFP-Capable + MFP-Required
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, // Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x32, 0x04, // Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x18, // WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+#ifdef SAE_MIXED_MODE
+ 0x5E, 0x00,
+#else
+ 0x5A, 0x00,
+#endif // SAE_MIXED_MODE
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0C, // SSID
+ 'W', 'D', 'I', '_', 'W', 'P', 'A', '3', '-', 'S', 'A', 'E',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+#ifdef SAE_MIXED_MODE
+ 0x30, 0x18,
+#else
+ 0x30, 0x14,
+#endif // SAE_MIXED_MODE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Multicast Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+#ifdef SAE_MIXED_MODE
+ 0x02, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite - WPA2PSK
+ 0x00, 0x0F, 0xAC, 0x08, // AKM Suite - WPA3SAE
+ 0x80, 0x00, // RSN Cap = MFP-Capable
+#else
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x08, // AKM Suite - WPA3SAE
+ 0xC0, 0x00, // RSN Cap = MFP-Capable + MFP required
+#endif // SAE_MIXED_MODE
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+
+//
+// SAE-Specific definitions :: Start
+//
+DWORD g_dwSaeResendConfirmRequested = 0;
+
+UCHAR pucSAECommitResponse [] =
+ {
+ 0x03, 0x00, // [1] usAlgorithmNumber = DOT11_AUTH_SAE (not-IE, 2 octets)
+ 0x01, 0x00, // [2] usXid: Commit=1, Confirm=2 (not-IE, 2 octets)
+ 0x00, 0x00, // [3] usStatusCode = 0 or 76 (ANTI_CLOGGING_TOKEN_REQUIRED) (not-IE, 2 octets)
+ 0x13, 0x00, // [10] FiniteCyclicGroup (not-IE, 2 octets)
+// 0x00, 0x00, 0x00, 0x00, // [11] AntiCloggingToken (not-IE, variable octets)
+ // [13] AP Scalar
+ 0x93, 0x48, 0x89, 0xab, 0x38, 0x6b, 0x72, 0xd5, 0xff, 0x0d, 0x3c, 0xaa, 0x09, 0x56, 0x50, 0x20,
+ 0x2b, 0xd0, 0x3e, 0x26, 0x96, 0xb5, 0x90, 0x5f, 0x7b, 0x49, 0x5f, 0x3b, 0x7d, 0xc3, 0x5b, 0x48,
+
+ // [14] AP Element
+ 0x58, 0x54, 0x5e, 0x6c, 0xa0, 0xe8, 0x86, 0xef, 0xfb, 0x05, 0x2a, 0xfb, 0x63, 0x2c, 0xa2, 0x19,
+ 0x5b, 0xb0, 0xb0, 0xa8, 0x25, 0xe5, 0x9d, 0xba, 0x6b, 0xaa, 0x0e, 0x93, 0xaf, 0x04, 0x6e, 0xf4,
+ 0xc9, 0x45, 0x5f, 0xec, 0x43, 0xfe, 0x5e, 0xb0, 0x2a, 0x6b, 0x8a, 0xbc, 0x8f, 0xd7, 0x07, 0x87,
+ 0x87, 0x3d, 0xd1, 0xd5, 0xd7, 0xfd, 0xe3, 0x07, 0x3a, 0x4c, 0xf3, 0xc2, 0xc7, 0x6f, 0x59, 0x5c,
+ };
+UCHAR pucSAECommitResponseReflection [] =
+ {
+ 0x03, 0x00, // [1] usAlgorithmNumber = DOT11_AUTH_SAE (not-IE, 2 octets)
+ 0x01, 0x00, // [2] usXid: Commit=1, Confirm=2 (not-IE, 2 octets)
+ 0x00, 0x00, // [3] usStatusCode = 0 or 76 (ANTI_CLOGGING_TOKEN_REQUIRED) (not-IE, 2 octets)
+ 0x13, 0x00, // [10] FiniteCyclicGroup (not-IE, 2 octets)
+// 0x00, 0x00, 0x00, 0x00, // [11] AntiCloggingToken (not-IE, variable octets)
+ // [13] AP Scalar
+
+ 0x49, 0x5c, 0x2c, 0xb4, 0x20, 0xec, 0xc9, 0xe8, 0xe8, 0x03, 0x2d, 0x00, 0x8d, 0xab, 0x4d, 0x91,
+ 0x70, 0x16, 0x06, 0x28, 0x40, 0x83, 0xb9, 0x8d, 0x19, 0xc6, 0x43, 0xcb, 0x63, 0x29, 0x9f, 0x03,
+
+ // [14] AP Element
+ 0x13, 0x2e, 0xfc, 0x90, 0xb9, 0xd7, 0xb5, 0xc1, 0x2a, 0x1d, 0xe9, 0x05, 0x9c, 0xb3, 0xba, 0xc8,
+ 0xa6, 0x93, 0xff, 0xbf, 0x23, 0x02, 0x42, 0x3e, 0x58, 0xc2, 0x0d, 0x00, 0x10, 0xe8, 0x44, 0x60,
+ 0x9d, 0xfc, 0x34, 0x5e, 0x98, 0x8e, 0xf2, 0x12, 0x67, 0x24, 0xd0, 0x80, 0xfb, 0x2f, 0x1e, 0x7a,
+ 0xe6, 0x54, 0x01, 0x00, 0x50, 0xd4, 0xfe, 0x66, 0x47, 0x62, 0xc0, 0x3c, 0x9f, 0x7a, 0x10, 0x27,
+ };
+
+UCHAR pucSAEConfirmResponse [] =
+ {
+ 0x03, 0x00, // [1] usAlgorithmNumber = DOT11_AUTH_SAE (not-IE, 2 octets)
+ 0x02, 0x00, // [2] usXid: Commit=1, Confirm=2 (not-IE, 2 octets)
+ 0x00, 0x00, // [3] usStatusCode = 0 or 76 (DOT11_FRAME_STATUS_ANTI_CLOGGING_TOKEN_REQUIRED) (not-Element, 2 octets)
+ 0x00, 0x00, // [12] SendConfirm (not-IE, 2 octets)
+ // [15] Confirm
+ 0xc7, 0xd1, 0x04, 0x94, 0x29, 0xec, 0xdf, 0x25, 0xda, 0xaa, 0x79, 0x6f, 0xda, 0xe9, 0x91, 0x9f,
+ 0x4b, 0x83, 0xad, 0xa3, 0x08, 0xde, 0x62, 0xca, 0xcd, 0x59, 0xfc, 0xf5, 0xc5, 0x4d, 0xeb, 0xd9,
+ };
+
+UCHAR pucM1SaeFrame[] =
+{
+ // DOT11_MGMT_HEADER - DOT11_DATA_SHORT_HEADER
+ 0x88, 0x02, // Frame Control: Version = 0x0, Type = DOT11_FRAME_TYPE_DATA, Subtype = DOT11_DATA_SUBTYPE_DATA
+ 0x30, 0x00, // Duration
+ 0x9c, 0xda, 0x3e, 0xf2, 0x7d, 0xd5, // Address1: Receiver/Destination/STA address
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Address2: Transmittor/Bssid address
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Address3: Source address
+ 0x00, 0x00, 0x07, 0x00, // Sequence Control
+ // IEEE_8022_LLC_SNAP
+ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, // NWF_802_LLC_SNAP
+ 0x88, 0x8e, // sh_etype = DOT11_ETH_TYPE_EAPOL
+ // NWF_EAPOL_HEADER
+ 0x02, // Version = NWF_EAPOL_PROTOCOL_VERSION_V1 = 1 OR NWF_EAPOL_PROTOCOL_VERSION_V2 = 2
+ 0x03, // Type = EAPOL_Key = 2
+ 0x00, 0x75, // Length
+ // NWF_EAPOL_RSNA_KEY_DESC
+ 0x02, // Type
+ 0x00, 0x8a, // Info
+ 0x00, 0x10, // Length
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // Replay Counter
+ 0x57, 0x63, 0xf3, 0xb6, 0x6e, 0xc8, 0x90, 0xe4, 0xae, 0xfc, 0x2c, 0x50, 0xb0, 0xa9, 0x04, 0x29, // Nonce
+ 0x97, 0xb9, 0x80, 0x26, 0x13, 0x1a, 0xe2, 0xf0, 0x24, 0x30, 0x4b, 0x87, 0x57, 0x15, 0xcf, 0x87,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // IV
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RSC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Reserved
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // MIC
+ 0x00, 0x16, // Key length
+ 0xdd, 0x14, // KeyData -> DOT11_INFO_ELEMENT_ID_VENDOR_SPECIFIC + Len
+ 0x00, 0x0f, 0xac, 0x04, // OUI -> RSN_KEY_DATA_OUI + RSN_KEY_DATA_OUI_TYPE_PMKID -> {0x00,0x0F,0xAC} + {0x04)
+ 0x37, 0xfb, 0x9a, 0x24, 0xc1, 0x57, 0x8c, 0xce, 0xc3, 0x60, 0x6c, 0x6f, 0x39, 0xe0, 0xb7, 0x02, // PMKID
+};
+
+
+UCHAR pucExpectedM2SaeFrame[] =
+{
+ // DOT11_MGMT_HEADER - DOT11_DATA_SHORT_HEADER
+ 0x88, 0x01, // Frame Control
+ 0x2c, 0x00, // Duration
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Receiver/Destination/STA address
+ 0x9c, 0xda, 0x3e, 0xf2, 0x7d, 0xd5, // Transmittor/Bssid address
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Source address
+ 0x00, 0x00, 0x07, 0x00,
+ // IEEE_8022_LLC_SNAP
+ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, // NWF_802_LLC_SNAP
+ 0x88, 0x8e, // sh_etype
+ // NWF_EAPOL_HEADER
+ 0x01, // Version = bProtocolVersion = NWF_EAPOL_PROTOCOL_VERSION_V1 = 1
+ 0x03, // Type = EAPOL_Key = 2
+ 0x00, 0x75, // Length
+ // NWF_EAPOL_RSNA_KEY_DESC
+ 0x02, // Type = bKeyDesc = NWF_EAPOL_KEY_DESC_RSNA = 2
+ 0x01, 0x0a, // Info = usKeyInfo, ResponseKeyInfo.Version = KEY_DESC_VERSION_AES, Type=RSN_KEY_TYPE_PAIRWISE, MIC=1, Secure=0
+ 0x00, 0x00, // Length
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // Replay Counter
+ 0x80, 0xf8, 0x10, 0x83, 0x4f, 0x0f, 0x40, 0xa1, 0xe5, 0x5d, 0x51, 0x92, 0x83, 0x4f, 0x8e, 0x98, // Nonce
+ 0x09, 0xca, 0xd5, 0x14, 0xc6, 0x08, 0x4c, 0xa9, 0xed, 0xc3, 0xa8, 0xff, 0xce, 0xc9, 0x36, 0xb6,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // IV
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RSC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Reserved
+ 0xa1, 0x79, 0x5f, 0x05, 0xa4, 0x12, 0x84, 0xf2, 0xf9, 0x0c, 0x79, 0x88, 0xeb, 0x92, 0x71, 0x62, // MIC
+ 0x00, 0x16, // Key Length
+ 0x30, 0x14, 0x01, 0x00, 0x00, 0x0f, 0xac, 0x04, 0x01, 0x00, 0x00, 0x0f, 0xac, 0x04, 0x01, 0x00, // Key Data = RSN
+ 0x00, 0x0f, 0xac, 0x08, 0x80, 0x00
+
+};
+
+UCHAR pucM3SaeFrame[] =
+{
+ // DOT11_MGMT_HEADER - DOT11_DATA_SHORT_HEADER
+ 0x88, 0x02, // Frame Control
+ 0x30, 0x00, // Duration
+ 0x9c, 0xda, 0x3e, 0xf2, 0x7d, 0xd5, // Receiver/Destination/STA address
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Transmittor/Bssid address
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Source address
+ 0x00, 0x00, 0x07, 0x00, // Sequence Control
+ // IEEE_8022_LLC_SNAP
+ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, // NWF_802_LLC_SNAP
+ 0x88, 0x8e, // sh_etype
+ // NWF_EAPOL_HEADER
+ 0x02, // Version
+ 0x03, // Type
+ 0x00, 0x97, // Length
+ // NWF_EAPOL_RSNA_KEY_DESC
+ 0x02, // Type
+ 0x13, 0xca, // Info
+ 0x00, 0x10, // Length
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // Replay Counter
+ 0x57, 0x63, 0xf3, 0xb6, 0x6e, 0xc8, 0x90, 0xe4, 0xae, 0xfc, 0x2c, 0x50, 0xb0, 0xa9, 0x04, 0x29, // Nonce
+ 0x97, 0xb9, 0x80, 0x26, 0x13, 0x1a, 0xe2, 0xf0, 0x24, 0x30, 0x4b, 0x87, 0x57, 0x15, 0xcf, 0x87,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // IV
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RSC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Reserved
+ 0xa5, 0xea, 0xdc, 0xfd, 0x97, 0xc7, 0x72, 0x76, 0x24, 0xe2, 0x7e, 0x71, 0x45, 0x3a, 0x24, 0xca, // MIC
+ 0x00, 0x38, // Key Length
+ 0x6f, 0x39, 0x30, 0x2c, 0x46, 0xb4, 0x3c, 0xf8, 0x42, 0x07, 0x8e, 0xc9, 0x65, 0x05, 0x2c, 0xd0, // Encrypted Key data
+ 0xe1, 0x7b, 0xdd, 0x2e, 0xbd, 0x69, 0x09, 0x1e, 0x39, 0xcc, 0x1a, 0xb3, 0x6e, 0x55, 0xd1, 0xad,
+ 0x5c, 0x45, 0x52, 0x4b, 0x83, 0x5d, 0x39, 0xe3, 0x1c, 0xb6, 0xed, 0x35, 0x52, 0x76, 0xb1, 0xc6,
+ 0x5a, 0x2c, 0x96, 0x07, 0x77, 0x15, 0x15, 0x5c,
+};
+
+
+UCHAR pucExpectedM4SaeFrame[] =
+{
+ // DOT11_MGMT_HEADER - DOT11_DATA_SHORT_HEADER
+ 0x88, 0x01, // Frame Control
+ 0x2c, 0x00, // Duration
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Receiver/Destination/STA address
+ 0x9c, 0xda, 0x3e, 0xf2, 0x7d, 0xd5, // Transmittor/Bssid address
+ 0x34, 0x13, 0xe8, 0xbc, 0x4d, 0x32, // Source address
+ 0x10, 0x00, 0x07, 0x00, // Sequence Control
+ // IEEE_8022_LLC_SNAP
+ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, // NWF_802_LLC_SNAP
+ 0x88, 0x8e, // sh_etype
+ // NWF_EAPOL_HEADER
+ 0x01, // Version
+ 0x03, // Type
+ 0x00, 0x5f, // Length
+ // NWF_EAPOL_RSNA_KEY_DESC
+ 0x02, // Type
+ 0x03, 0x0a, // Info
+ 0x00, 0x00, // Length
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // Replay Counter
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Nonce
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // IV
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RSC
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Reserved
+ 0x52, 0x97, 0x0f, 0x90, 0x69, 0x7d, 0xcd, 0xeb, 0x98, 0xbf, 0xb1, 0x2a, 0xb2, 0x3e, 0xcc, 0x49, // MIC
+ 0x00, 0x00, // Key Length
+};
+
+//
+// SAE-Specific definitions :: End
+//
+
+//
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr_15_WPA2PSK_SHA256 = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEF};
+
+UCHAR s_TLV_BSS_Entry_15_WPA2PSK_SHA256 [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x91, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEF,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x5e, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', 'S', 'H', 'A', '2', '5', '6',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x1a, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x06, // AKM Suite
+ 0xCC, 0x00, // RSN Capability
+ 0x00, 0x00,
+ 0x00, 0x0F, 0xAC, 0x06, // Group Cipher
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_15_WPA2PSK_SHA256[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x28, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xEF,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x48, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', 'S', 'E', 'C', 'U', 'R', 'E',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02, 0x07, 0x12, //Power Capability
+ 0x24, 0x02, 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08, 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0x30, 0x14,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise cipher count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AMK Suite Count
+ 0x00, 0x0F, 0xAC, 0x06, // AMK Suite - WPA2PSK_SHA256
+ 0xC0, 0x00, // RSN Capability = MFP-Capable + MFP-Required
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0x5e, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0A, // SSID
+ 'W', 'D', 'I', '_', 'S', 'E', 'C', 'U', 'R', 'E',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x1a, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite
+ 0xCC, 0x00, // RSN Capability
+ 0x00, 0x00,
+ 0x00, 0x0F, 0xAC, 0x06, // Group Cipher
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+
+};
+
+
+//
+//===============================================================================
+//
+
+#ifdef WPA3_ARUBA_SIM
+WDI_MAC_ADDRESS s_Connect_Addr_16_WPA3_SUITEB = {0xa8, 0xbd, 0x27, 0xcd, 0xe0, 0xa5}; // For Aruba
+#elif WPA3_INTEL_SIM
+WDI_MAC_ADDRESS s_Connect_Addr_16_WPA3_SUITEB = {0x8c, 0xfd, 0xf0, 0x0f, 0x7f, 0x4a}; // For Intel
+#else
+WDI_MAC_ADDRESS s_Connect_Addr_16_WPA3_SUITEB = {0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xF0};
+#endif
+
+UCHAR s_TLV_BSS_Entry_16_WPA3_SUITEB [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x97, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+#ifdef WPA3_ARUBA_SIM
+ 0xa8, 0xbd, 0x27, 0xcd, 0xe0, 0xa5, // For Aruba
+#elif WPA3_INTEL_SIM
+ 0x8c, 0xfd, 0xf0, 0x0f, 0x7f, 0x4a, // For Intel
+#else
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xF0,
+#endif
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x64, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x10, // SSID
+ 'W', 'D', 'I', '_', 'W', 'P', 'A', '3', '-', 'S', 'U', 'I', 'T', 'E', '_', 'B',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+ 0x30, 0x1A,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x09, // Group Cipher = GCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x0C, // AKM Suite - WPA3-SuiteB
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+
+};
+
+UCHAR s_TLV_Success_AssociationResult_16_WPA3_SUITEB[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x3A, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+#ifdef WPA3_ARUBA_SIM
+ 0xa8, 0xbd, 0x27, 0xcd, 0xe0, 0xa5, // For Aruba
+#elif WPA3_INTEL_SIM
+ 0x8c, 0xfd, 0xf0, 0x0f, 0x7f, 0x4a, // For Intel
+#else
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD0, 0xF0,
+#endif
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, // Association Status
+ 0x00, 0x00, 0x00, 0x00, // Status Code
+ 0x00, // ReAssociationRequest
+ 0x08, 0x00, 0x00, 0x00, // AuthAlgorithm = WDI_AUTH_ALGO_WPA3_ENT_192 = 8
+ 0x09, 0x00, 0x00, 0x00, // UnicastCipherAlgorithm = WDI_CIPHER_ALGO_GCMP_256 = 9
+ 0x09, 0x00, 0x00, 0x00, // MulticastDataCipherAlgorithm = WDI_CIPHER_ALGO_GCMP_256 = 9
+ 0x0C, 0x00, 0x00, 0x00, // MulticastMgmtCipherAlgorithm = WDI_CIPHER_ALGO_BIP_GMAC_256 = C
+ 0x00, // FourAddressSupported
+ 0x00, // Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, // DSInfo
+ 0x00, 0x00, 0x00, 0x00, // AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x54, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x10, // SSID
+ 'W', 'D', 'I', '_', 'W', 'P', 'A', '3', '-', 'S', 'U', 'I', 'T', 'E', '_', 'B',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02, 0x07, 0x12, //Power Capability
+ 0x24, 0x02, 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08, 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0x30, 0x1A,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x09, // Group Cipher = GCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x0C, // AKM Suite - WPA3-SuiteB
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0x64, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x10, // SSID
+ 'W', 'D', 'I', '_', 'W', 'P', 'A', '3', '-', 'S', 'U', 'I', 'T', 'E', '_', 'B',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x1A,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x09, // Group Cipher = GCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x0C, // AKM Suite - WPA3-SuiteB
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+
+};
+
+//===============================================================================
+//
+// 6 GHz
+//
+//===============================================================================
+
+//
+// RNR IE has the following format (only care about TBTT length = 8 or 12):
+// 0xc9, 0x<IELength>
+// 0x<TBTTInformationHeader> -> 2 bytes (contains number and size of each element)
+// 0x<OperatingClass>, 0x<Channel> -> 2 bytes (applies to all element in this list)
+// 0x<TBTTOffset> -> 1 byte
+// 0x<Bssid> -> 6 bytes
+// [0x<SHortSsid>] -> 4 bytes
+// 0x<BssParameters> -> 1 byte
+//
+
+//
+// Mac addresses have the following nomenclature for 6GHz Ssids
+//
+// 1st 3 bytes are 0x00 0xA1, 0xB0
+// 4th byte is for SSID:
+// 01 = 6E__1
+// 02 = 6E__2
+// 03 = SSID3
+// 04 = SSID4
+// 5th Byte is for band:
+// 02 = 2.4 GHz
+// 05 = 5 GHz
+// 06 = 6 GHz
+// 6th byte is instance
+// 01 = 1st instance
+// 02 - 2nd instance
+// :
+//
+
+//===============================================================================
+// SIX_G: 6E__1:
+// (1 * 2.4 GHz) + (1 * 5 GHz) + (2 * 6 GHz)
+// 2.4 GHz:
+// S1_24_1: S1_5_1 (In+Out) + S1_6_1 (Out) + S1_6_2 (Out)
+// 5 GHz:
+// S1_5_1: S1_24_1 (In+Out) + S1_6_1 (Out) + S1_6_2 (Out)
+// 6 GHz:
+// S1_6_1: S1_24_1 (In) + S1_5_1 (In)
+// S1_6_2: S1_24_1 (In) + S1_5_1 (In)
+//===============================================================================
+
+//
+// 6E__1: 1 * 2.4 GHz Bss's
+// 1 RNR IE with 3 entries: Band:Channel = [5:36 + 6:101 + 6:133]
+//
+WDI_MAC_ADDRESS s_Connect_Addr_17_6G_S1_2_4_Ghz = {0x00, 0xA1, 0xB0, 0x01, 0x02, 0x01};
+UCHAR s_TLV_BSS_Entry_17_6G_S1_2_4_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xE9, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x01, 0x02, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xB6, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x01,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xc9, 0x30, // RNR IE
+ 0x04, 0x0c, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x73, 0x24, // Operating Class = 115 (5 GHz), Channel = 36
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x05, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 5 GHz
+ 0x00, 0x0c, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 Ghz
+ 0x0c, 0x0c, // TBTT: 0x0c => B2:3=1(FilteredAP:Reserved),B4-B7=f(TBTT Information Count=3+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131, Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel / Freq = 2412 MHz
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_17_6G_S1_2_4_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x0B, 0x02,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x01, 0x02, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8B, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0xa5, 0x09, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x78, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ 0x53, 0x53, 0x49, 0x44, 0x31,
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x01,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbit/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xb6, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x01,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc9, 0x30, // RNR IE
+ 0x04, 0x0c, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x73, 0x24, // Operating Class = 115 (5 GHz), Channel = 36
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x05, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 5 GHz
+ 0x00, 0x0c, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 Ghz
+ 0x0c, 0x0c, // TBTT: 0x0c => B2:3=1(FilteredAP:Reserved),B4-B7=f(TBTT Information Count=3+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131, Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//
+// 6E__1: 1 * 5 GHz Bss's
+// 1 RNR IE with 3 entries: Band:Channel = [2.4:1 + 6:101 + 6:133]
+//
+WDI_MAC_ADDRESS s_Connect_Addr_18_6G_S1_5_Ghz = {0x00, 0xA1, 0xB0, 0x01, 0x05, 0x01};
+UCHAR s_TLV_BSS_Entry_18_6G_S1_5_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xe9, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x01, 0x05, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xb6, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x24,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc9, 0x30, // RNR IE
+ 0x04, 0x0c, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x01, // Operating Class = 81 (2.4 GHz), Channel = 1
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x02, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 2.4 GHz
+ 0x00, 0x0c, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 Ghz
+ 0x0c, 0x0c, // TBTT: 0x0c => B2:3=1(FilteredAP:Reserved),B4-B7=f(TBTT Information Count=3+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131, Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x24, 0x00, 0x00, 0x00, // Channel / Freq = 36 / 5180 MHz
+ 0x02, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_18_6G_S1_5_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x0B, 0x02,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x01, 0x05, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x02, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8B, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0xa5, 0x09, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x78, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ 0x53, 0x53, 0x49, 0x44, 0x31,
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x24,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbit/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xb6, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x24,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc9, 0x30, // RNR IE
+ 0x04, 0x0c, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x01, // Operating Class = 81 (2.4 GHz), Channel = 1
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x02, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 2.4 GHz
+ 0x00, 0x0c, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 Ghz
+ 0x0c, 0x0c, // TBTT: 0x0c => B2:3=1(FilteredAP:Reserved),B4-B7=f(TBTT Information Count=3+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131, Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02, 0x18, 0x3a, 0x94, 0x4f, 0x40, // 6E__1 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//
+// 6E__1: 1/2 * 6 GHz Bss's
+//
+WDI_MAC_ADDRESS s_Connect_Addr_19_6G_S1a_6_Ghz = {0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01};
+UCHAR s_TLV_BSS_Entry_19_6G_S1a_6_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xC6, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x65, 0x00, 0x00, 0x00, // Channel / Freq = 101 / 6445 MHz
+ 0x05, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_19_6G_S1a_6_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xfD, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x05, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8E, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+ 0xff, 0x1e, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0x01, 0x78, 0x20, 0x0a, 0xc0, 0x8b, 0x0e, 0x30, 0x02, 0x00, 0xfd, 0x09, 0x8c, 0x0e, 0xcf, 0xf2,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x61, 0x1c, 0xc7, 0x71,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0x7d, 0x02,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x8A, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x65,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x65,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//
+// 6E__1: 2/2 * 6 GHz Bss's
+//
+WDI_MAC_ADDRESS s_Connect_Addr_20_6G_S1b_6_Ghz = {0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02};
+UCHAR s_TLV_BSS_Entry_20_6G_S1b_6_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xC6, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x85, 0x00, 0x00, 0x00, // Channel / Freq = 133 / 6605 MHz
+ 0x05, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_20_6G_S1b_6_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xFD, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x01, 0x06, 0x02,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x05, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8E, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+ 0xff, 0x1e, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0x01, 0x78, 0x20, 0x0a, 0xc0, 0x8b, 0x0e, 0x30, 0x02, 0x00, 0xfd, 0x09, 0x8c, 0x0e, 0xcf, 0xf2,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x61, 0x1c, 0xc7, 0x71,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0x7d, 0x02,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x8A, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x85,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '1',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//===============================================================================
+// SIX_G: 6E__2:
+// (1 * 2.4 GHz) + (1 * 5 GHz) + (1 * 6 GHz)
+// 2.4 GHz:
+// S2_24_1: S2_5_1 (In+Out) + [S2_6_2 (Out)]
+// 5 GHz:
+// S2_5_1: S2_24_1 (In+Out) + S2_6_1 (Out) + [S2_6_2 (Out)]
+// 6 GHz:
+// S2_6_1: S2_5_1 (In)
+//===============================================================================
+
+//
+// 6E__2: 1 * 2.4 GHz Bss's
+// 2 RNR IEs with 1 entry each: Band:Channel = [5:44] + [6:101]
+//
+WDI_MAC_ADDRESS s_Connect_Addr_21_6G_S2_2_4_Ghz = {0x00, 0xA1, 0xB0, 0x02, 0x24, 0x01};
+UCHAR s_TLV_BSS_Entry_21_6G_S2_2_4_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xD3, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x02, 0x02, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xA0, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x06,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xc9, 0x0c, // RNR IE
+ 0x04, 0x08, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x08 = TBTT Length
+ 0x73, 0x2e, // Operating Class = 115 (5 GHz), Channel = 44
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01, 0x40, // 6E__2 on 5 GHz
+ 0xc9, 0x0c, // RNR IE
+ 0x00, 0x08, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x08 = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x02, 0x42, // 6E__2 on 6 Ghz (Sabe Ssid)
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x06, 0x00, 0x00, 0x00, // Channel / Freq = 2437 MHz
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_21_6G_S2_2_4_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xF5, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x02, 0x02, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8B, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0xa5, 0x09, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x78, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ 0x53, 0x53, 0x49, 0x44, 0x31,
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x06,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbit/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xa0, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x06,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xc9, 0x0c, // RNR IE
+ 0x04, 0x08, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x08 = TBTT Length
+ 0x73, 0x2e, // Operating Class = 115 (5 GHz), Channel = 44
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01, 0x40, // 6E__2 on 5 GHz
+ 0xc9, 0x0c, // RNR IE
+ 0x00, 0x08, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x08 = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x02, 0x42, // 6E__2 on 6 Ghz (Sabe Ssid)
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//
+// 6E__2: 1 * 5 GHz Bss's
+// 3 RNR IEs with 1 entry each: Band:Channel = [2.4:6] + [6:101] + [6:133]
+//
+WDI_MAC_ADDRESS s_Connect_Addr_22_6G_S2_5_Ghz = {0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01};
+UCHAR s_TLV_BSS_Entry_22_6G_S2_5_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xed, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xba, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x2c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xc9, 0x10, // RNR IE
+ 0x04, 0x0c, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x02, 0x01, 0xa2, 0x6b, 0x9d, 0xd6, 0x40, // 6E__2 on 2.4 GHz
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, (6 GHz) Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x01, 0xa2, 0x6b, 0x9d, 0xd6, 0x42, // 6E__2 on 6 Ghz
+ 0xc9, 0x10, // RNR IE
+ 0x0c, 0x0c, // TBTT: 0x0c => B2:3=1(FilteredAP:Reserved),B4-B7=f(TBTT Information Count=3+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131, (6 GHz) Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x02, 0xa2, 0x6b, 0x9d, 0xd6, 0x00, // 6E__2 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x2c, 0x00, 0x00, 0x00, // Channel / Freq = 44 / 5220 MHz
+ 0x02, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_22_6G_S2_5_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x0F, 0x02,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x02, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8B, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0xa5, 0x09, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x78, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ 0x53, 0x53, 0x49, 0x44, 0x31,
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x2c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbit/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xba, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x2c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc9, 0x10, // RNR IE
+ 0x04, 0x0c, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x02, 0x01, 0xa2, 0x6b, 0x9d, 0xd6, 0x40, // 6E__2 on 2.4 GHz
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00 => B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x65, // Operating Class = 131, (6 GHz) Channel = 101
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x01, 0xa2, 0x6b, 0x9d, 0xd6, 0x42, // 6E__2 on 6 Ghz
+ 0xc9, 0x10, // RNR IE
+ 0x0c, 0x0c, // TBTT: 0x0c => B2:3=1(FilteredAP:Reserved),B4-B7=f(TBTT Information Count=3+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131, (6 GHz) Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x02, 0xa2, 0x6b, 0x9d, 0xd6, 0x00, // 6E__2 on 6 GHz
+
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//
+// 6E__2: 1 * 6 GHz Bss's
+//
+WDI_MAC_ADDRESS s_Connect_Addr_23_6G_S2_6_Ghz = {0x00, 0xA1, 0xB0, 0x02, 0x06, 0x01};
+UCHAR s_TLV_BSS_Entry_23_6G_S2_6_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xC6, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x79, 0x00, 0x00, 0x00, // Channel / Freq = 121 / 6545 MHz
+ 0x05, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_23_6G_S2_6_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xFD, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x05, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8E, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+ 0xff, 0x1e, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0x01, 0x78, 0x20, 0x0a, 0xc0, 0x8b, 0x0e, 0x30, 0x02, 0x00, 0xfd, 0x09, 0x8c, 0x0e, 0xcf, 0xf2,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x61, 0x1c, 0xc7, 0x71,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0x7d, 0x02,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x8A, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x79,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//===============================================================================
+// SIX_G: SSID3:
+// (1 * 2.4 GHz)
+// 2.4 GHz:
+// S3_24_1: *S2_5_1 (Out)*
+//===============================================================================
+
+//
+// SSID3: 1 * 2.4 GHz Bss's
+// 2 RNR IEs with 1 entry each Band:Channel = [5:44 + 6:133]
+//
+WDI_MAC_ADDRESS s_Connect_Addr_24_6G_S3_2_4_Ghz = {0x00, 0xA1, 0xB0, 0x03, 0x02, 0x01};
+UCHAR s_TLV_BSS_Entry_24_6G_S3_2_4_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xDB, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x03, 0x02, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xa8, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '3',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x0a,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00,B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x73, 0x2e, // Operating Class = 115 (5 GHz), Channel = 44
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01, 0xa2, 0x6b, 0x9d, 0xd6, 0x40, // 6E__2 on 5 GHz
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00,B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131 (6 GHz), Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x02, 0xa2, 0x6b, 0x9d, 0xd6, 0x40, // 6E__2 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel / Freq = 2457 MHz
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_24_6G_S3_2_4_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xFD, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x03, 0x02, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8B, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '3',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0xa5, 0x09, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x78, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ 0x53, 0x53, 0x49, 0x44, 0x31,
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0x0a,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbit/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0xa8, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '3',
+ 0x01, 0x08, // Supported Rates
+ 0x82, 0x84, 0x0b, 0x16, 0x8c, 0x12, 0x98, 0xa4,
+ 0x03, 0x01, // DS Parameter Set
+ 0x0a,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0x6c,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0x2d, 0x1a, // HT Capabilities (802.11n D1.10)
+ 0x76, 0x08, 0x17, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x04, // Extended Supported Rates 24, 36, 48, 54 [Mbits/sec]
+ 0x30, 0x48, 0x60, 0x6c,
+ 0x3d, 0x16, // HT Information (802.11n D1.10)
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00,B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x73, 0x2e, // Operating Class = 115 (5 GHz), Channel = 44
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x05, 0x01, 0xa2, 0x6b, 0x9d, 0xd6, 0x40, // 6E__2 on 5 GHz
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00,B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x83, 0x85, // Operating Class = 131 (6 GHz), Channel = 133
+ 0x00, 0x00, 0xA1, 0xB0, 0x02, 0x06, 0x02, 0xa2, 0x6b, 0x9d, 0xd6, 0x40, // 6E__2 on 6 GHz
+
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+
+//===============================================================================
+// SIX_G: SSID4 (non-colocated AP):
+// (1 * 6 GHz)
+// 6 GHz:
+// S4_6_1:
+//===============================================================================
+
+//
+// SSID4: 1 * 6 GHz Bss's
+//
+WDI_MAC_ADDRESS s_Connect_Addr_25_6G_S4_6_Ghz = {0x00, 0xA1, 0xB0, 0x04, 0x06, 0x01};
+UCHAR s_TLV_BSS_Entry_25_6G_S4_6_Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xC6, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA1, 0xB0, 0x04, 0x06, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '4',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0xe5, 0x00, 0x00, 0x00, // Channel / Freq = 229 / 7085 MHz
+ 0x05, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_25_6G_S4_6_Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xFD, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0x04, 0x06, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x07, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x04, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x05, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x8E, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0xfa, 0x00, // Listen Interval
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '4',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x21, 0x02, // Power Capability Min: 0, Max: 15
+ 0x00, 0x0f,
+ 0x24, 0x32, // Supported Channels
+ 0x24, 0x01, 0x28, 0x01, 0x2c, 0x01, 0x30, 0x01, 0x34, 0x01, 0x38, 0x01, 0x3c, 0x01, 0x40, 0x01,
+ 0x64, 0x01, 0x68, 0x01, 0x6c, 0x01, 0x70, 0x01, 0x74, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x80, 0x01,
+ 0x84, 0x01, 0x88, 0x01, 0x8c, 0x01, 0x90, 0x01, 0x95, 0x01, 0x99, 0x01, 0x9d, 0x01, 0xa1, 0x01,
+ 0xa5, 0x01,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0x0a, // Extended Capabilities
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xdd, 0x07, // Vendor Specific: Microsoft Corp.: WMM/WME: Information Element
+ 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00,
+ 0xff, 0x1e, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0x01, 0x78, 0x20, 0x0a, 0xc0, 0x8b, 0x0e, 0x30, 0x02, 0x00, 0xfd, 0x09, 0x8c, 0x0e, 0xcf, 0xf2,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x61, 0x1c, 0xc7, 0x71,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0x7d, 0x02,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x8A, 0x00,
+
+ 0x01, 0x11, // Capabilities
+ 0x00, 0x00, // Status Code: Successful
+ 0x00, 0xc0, // Association ID: 0x0000
+ 0x00, 0x05, // SSID Parameter set
+ '6', 'E', '_', '_', '2',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x03, 0x01, // DS Parameter set: Current Channel: 10
+ 0xe5,
+ 0x0b, 0x05, // QBSS Load Element 802.11e CCA Version
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x93, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Inteval
+ 0x01, 0x00, // Capabilities
+ 0x00, 0x05, // SSID
+ '6', 'E', '_', '_', '4',
+ 0x01, 0x08, // Supported Rates
+ 0x8c, 0x12, 0x98, 0xa4, 0x30, 0x48, 0x60, 0x6c,
+ 0x05, 0x04, // TIM - DTIM 0 of 0
+ 0x00, 0x02, 0x00, 0xa4,
+ 0x0b, 0x05,
+ 0x00, 0x00, 0x00, 0x12, 0x7a,
+ 0x2a, 0x01, // ERP Information
+ 0x00,
+ 0xdd, 0x18, // Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
+ 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00,
+ 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 0x2f, 0x00,
+ 0xff, 0x03, // Ext Tag: HE Extended Capabilities (802.11ax/D3.0)
+ 0x3b,
+ 0xbd, 0x02,
+ 0xff, 0x27, // Ext Tag: HE Capabilities (802.11ax/D3.0)
+ 0x23,
+ 0xf7, 0x70, 0x99, 0x16, 0x64, 0x00, 0x0e, 0x30, 0x0c, 0xb6, 0x02, 0x1b, 0xb4, 0x0c, 0xcf, 0x30,
+ 0x00, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0x7b, 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0x1c, 0xc7, 0x71, 0x1c, 0xc7, 0x71,
+ 0xff, 0x0c, // Ext Tag: HE Operation (802.11ax/D3.0)
+ 0x24,
+ 0xf4, 0x3f, 0x02, 0x00, 0xf0, 0xff, 0x05, 0x03, 0x07, 0x0f, 0x00,
+ 0xff, 0x0e, // Ext Tag: MU EDCA Parameter Set
+ 0x26,
+ 0xc0, 0x07, 0xa4, 0x01, 0x23, 0xa4, 0x01, 0x42, 0x43, 0x01, 0x62, 0x32, 0x01,
+
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0A, 0x00, 0x00, 0x00,
+
+};
+
+//===============================================================================
+// WDI_OWE_RNR
+//===============================================================================
+
+
+/// WDI_OWE_RNR
+///
+/// Description
+/// - Non-Transition mode OWE network
+/// - Advertises Reduced Neighbor Reports (RNRs) for the OWE Transition Mode BSSes WDI_OWE_TM_OWE and WDI_OWE_TM_OPEN
+/// - Note: The OWE TM BSSes do not advertise RNR IEs
+/// - Definitions for these two Transition Mode networks follows this one
+///
+/// Intention
+/// - Test Non-Transition Mode OWE networks
+/// - Test discovery of OWE Transition Mode network via RNR prior to receiving beacon or probe
+/// - Since the networks are indicated in order during scans (i.e. the OWE TM networks will be indicated after this one)
+/// it is expected that RNR for the OWE TM networks will be received before their beacons and probes.
+///
+/// Expectation
+/// - Scan results display WDI_OWE_RNR as an Enhanced Open network to which connections are supported
+/// - The RNR will not effect connections to or display of OWE Transition Mode networks that it contains
+///
+/// Limitations
+/// - Connections to this network will fail because the driver does not OWE DH Handshake
+WDI_MAC_ADDRESS s_ConnectAddr_26_OWE_With_RNR = {00, 0xA0, 0xB0, 0xC0, 0xD1, 0xFF};
+UCHAR s_TLV_BSS_Entry_26_OWE_With_RNR [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xB6, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0xFF,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x83, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0B, // SSID
+ 'W', 'D', 'I', '_', 'O', 'W', 'E', '_', 'R', 'N', 'R',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x1a, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x12, // AKM Suite - OWE
+ 0xC0, 0x00, // RSN Capability - MFP Req + Capable
+ 0x00, 0x00,
+ 0x00, 0x0F, 0xAC, 0x06, // Group Cipher
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00,B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x0B, // Operating Class = 81 (2.4 GHz), Channel = B
+ 0x00, // TBTT Offset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x00, // MAC Address --> OWE Transition Mode OWE (Defined below)
+ 0xFD, 0x1F, 0x3F, 0x49, // Short SSID for WDI_OWE_TM_OWE
+ 0x00, // BssParameters
+
+ 0xc9, 0x10, // RNR IE
+ 0x00, 0x0c, // TBTT: 0x00,B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x0B, // Operating Class = 81 (2.4 GHz), Channel = B
+ 0x00, // TBTT Offset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x01, // MAC Address --> OWE Transition Mode Open (Defined below)
+ 0x21, 0x24, 0x6C, 0x85, // Short SSID for WDI_OWE_TM_OPEN
+ 0x00, // BssParameters
+
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+// Test client hasn't implemented OWE DH handshake, so just indicate assoc failure
+UCHAR s_TLV_Failure_AssociationResult_26_OWE_With_RNR [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x46, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0xC0, 0xD1, 0xFF,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Association Status: WDI_ASSOC_STATUS_FAILURE
+ 0x00, 0x00, 0x00, 0x00, // Status Code
+ 0x00, // ReAssociationRequest
+ 0x00, 0x00, 0x00, 0x00, // AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, // UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, // MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, // MulticastMgmtCipherAlgorithm
+ 0x00, // FourAddressSupported
+ 0x00, // Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, // DSInfo
+ 0x00, 0x00, 0x00, 0x00, // AssociationComebackTime
+ 0x00, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
+
+/// WDI_OWE_TM_OWE
+/// Description
+/// - OWE BSS of OWE Transition Mode network
+/// - Auth Type is OWE
+/// - Partner BSS is the OWE Transition Mode Open BSS "WDI_OWE_TM_OPEN"
+/// - Per the spec, this network is hidden and contains an OWE TM element listing information about the partner BSS
+/// - Listed in RNR of BSS WDI_OWE_RNR
+/// - RNR IEs are not avertised by this BSS
+///
+/// Intention
+/// - Test OWE Transition Mode
+/// - Test discovery of OWE Transition Mode network via RNR prior to receiving a beacon or probe
+/// - Since the networks are indicated in order during scans, the RNR for this network will be received before its beacon.
+///
+/// Expectation
+/// - The OWE spec requires the STA to display the SSID of the Open BSS to the user for interoperability. User initiated connections to the SSID of the Open BSS
+/// will initiate a connection to the OWE BSS and this is reflected in the security type in the UI. This allows STAs to view the same network SSID regardless of their
+/// support for OWE, while also allowing the most secure connection to be made.
+///
+/// - The UI will display:
+/// - SSID: "WDI_OWE_TM_OPEN" (The SSID of the Open BSS)
+/// - A hidden BSS may also be displayed, but only a single entry with an SSID is expected
+/// - Security Description: "Enhanced Open"
+/// - "Secured" or a lock icon should not be displayed
+/// - No password prompt on connect
+/// - "Connect" will initiate a connection to the OWE Transition Mode BSS Entry
+/// - In the entry containing the BSSID of the OWE TM OWE BSS, "netsh wlan show networks mode=bss" displays
+/// - SSID: "WDI_OWE_TM_OPEN"
+/// - Authentication: OWE
+/// - Encryption: CCMP
+/// - MFP Required: 1
+///
+/// Limitations
+/// - Connections to this network will fail because the driver does not OWE DH Handshake
+WDI_MAC_ADDRESS s_ConnectAddr_27_OWE_TM_OWE = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x00};
+UCHAR s_TLV_BSS_Entry_27_OWE_TM_OWE [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xA1, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x00,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x6e, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x1a, // RSN IE
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher
+ 0x01, 0x00, // AKM Suite count
+ 0x00, 0x0F, 0xAC, 0x12, // AKM Suite - OWE
+ 0xC0, 0x00, // RSN Capability - MFP Req + Capable
+ 0x00, 0x00,
+ 0x00, 0x0F, 0xAC, 0x06, // Group Cipher
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ 0xDD, 0x1A, // Vendor specific - OWE Transition Mode
+ 0x50, 0x6F, 0x9A, 0x1C, // WFA OUI + OWE TM OUI (0x1C)
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x01, // Partner BSS BSSID
+ 0x0F, // Partner BSS SSID Length
+ 'W', 'D', 'I', '_', 'O', 'W', 'E', '_', 'T', 'M', '_', 'O', 'P', 'E', 'N', // Partner BSS SSID
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+// Test client hasn't implemented simulated OWE DH handshake, so just indicate assoc failure
+UCHAR s_TLV_Failure_AssociationResult_27_OWE_TM_OWE [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x46, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA1, 0xB0, 0xC0, 0xD1, 0x00,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x00, 0x00, 0x00, //Association Status: WDI_ASSOC_STATUS_FAILURE
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x00, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x00, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
+
+/// WDI_OWE_TM_OPEN
+/// Description
+/// - Open BSS of OWE Transition Mode network
+/// - Open network
+/// - Partner BSS is the OWE Transition Mode OWE BSS "WDI_OWE_TM_OWE"
+/// - Per the spec, this network is hidden and contains an OWE TM element listing information about the partner BSS
+/// - Listed in RNR of BSS WDI_OWE_RNR
+/// - RNR IEs are not avertised by this BSS
+///
+/// Intention
+/// - Test OWE Transition Mode
+/// - Test discovery of OWE Transition Mode network via RNR prior to receiving a beacon or probe
+/// - Since the networks are indicated in order during scans, the RNR for this network will be received before its beacon.
+///
+/// Expectation
+/// - The OWE spec requires the STA to display the SSID of the Open BSS to the user for interoperability. User initiated connections to the SSID of the Open BSS
+/// will initiate a connection to the OWE BSS and this is reflected in the security type in the UI. This allows STAs to view the same network SSID regardless of their
+/// support for OWE, while also allowing the most secure connection to be made.
+///
+/// - The UI will display:
+/// - SSID: "WDI_OWE_TM_OPEN" (The SSID of the Open BSS)
+/// - A hidden BSS may also be displayed, but only a single entry with an SSID is expected
+/// - Security Description: "Enhanced Open"
+/// - "Secured" or a lock icon should not be displayed
+/// - No password prompt on connect
+/// - "Connect" will initiate a connection to the OWE Transition Mode BSS Entry
+/// - In the entry containing the BSSID of this BSS, "netsh wlan show networks mode=bss" displays
+/// - SSID: (Hidden)
+/// - Authentication: Open
+/// - Encryption: None
+///
+/// Limitations
+/// - Connections to this network will fail because the driver does not OWE DH Handshake
+WDI_MAC_ADDRESS s_ConnectAddr_28_OWE_TM_Open = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x01};
+UCHAR s_TLV_BSS_Entry_28_OWE_TM_Open_Beacon [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x95, 0x00, // Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x01,
+
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x62, 0x00, // Length
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x0F, // SSID
+ 'W', 'D', 'I', '_', 'O', 'W', 'E', '_', 'T', 'M', '_', 'O', 'P', 'E', 'N',
+ 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x32, 0x04, 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ 0xDD, 0x19, // Vendor specific - OWE Transition Mode
+ 0x50, 0x6F, 0x9A, 0x1C, // WFA OUI + OWE TM OUI (0x1C)
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x00, // Partner BSS BSSID
+ 0x0E, // Partner BSS SSID Length
+ 'W', 'D', 'I', '_', 'O', 'W', 'E', '_', 'T', 'M', '_', 'O', 'W', 'E', // Partner BSS SSID
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x0B, 0x00, 0x00, 0x00, // Channel
+ 0x01, 0x00, 0x00, 0x00 // BandId
+};
+
+// Test client hasn't implemented OWE DH handshake, so just indicate assoc failure
+UCHAR s_TLV_Failure_AssociationResult_28_OWE_TM_Open [] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0x46, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x01,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x00, 0x00, 0x00, //Association Status: WDI_ASSOC_STATUS_FAILURE
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x00, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x00, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, // DisableDataPathOffloadsScenario
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
+
+//===============================================================================
+//
+// Wi-Fi 7
+//
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_29_WiFi7_Mixed_MLD = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x02};
+WDI_MAC_ADDRESS s_Connect_Addr_30_WiFi7_Mixed_Link_1 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x03};
+WDI_MAC_ADDRESS s_Connect_Addr_31_WiFi7_Mixed_Link_2 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x04};
+WDI_MAC_ADDRESS s_Connect_Addr_32_WiFi7_Mixed_Link_3 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x05};
+
+UCHAR s_TLV_BSS_Entry_30_WiFi7_Mixed_Link_1 [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xfa, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x03, // Link 1 MAC address
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0xc7, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0f, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'M', 'i', 'x', 'e', 'd',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+ 0x32, 0x01, // DOT11_INFO_ELEMENT_ID_EXTD_SUPPORTED_RATES
+ 0xFB, // BSS_MEMBERSHIP_SELECTOR_SAE_H2E_ONLY
+ 0x30, 0x2a,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher = CCMP
+ 0x03, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher = CCMP-128
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher = GCMP-128
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP-256
+ 0x03, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite - PSK
+ 0x00, 0x0F, 0xAC, 0x08, // AKM Suite - SAE-256
+ 0x00, 0x0F, 0xAC, 0x18, // AKM Suite - SAE-384 (Wi-Fi 7)
+ 0xCC, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ // [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ // [EML=0 + Medium=0 + BSS=1 + LinkID=1] [Reserved=0 + Basic=0] [Reserved=0000] [Reserved=000 MLD=0]
+ 0x20, 0x00, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x02, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x33, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x04, // STA Info : AP Link 1 MAC address
+ // Remaining STA Profile for Link 2
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x33, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x05, // STA Info : AP Link 2 MAC address
+ // Remaining STA Profile for Link 3
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x04, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x12, 0x03, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x05, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x12, 0x07, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x24, 0x00, 0x00, 0x00, // Channel
+ 0x02, 0x00, 0x00, 0x00 // BandId
+
+};
+
+UCHAR s_TLV_Success_AssociationResult_30_WiFi7_Mixed_Link_1[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xc0, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x03, // AP Link 1 Mac Address
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, // Association Status
+ 0x00, 0x00, 0x00, 0x00, // Status Code
+ 0x00, // ReAssociationRequest
+ 0x08, 0x00, 0x00, 0x00, // AuthAlgorithm = WDI_AUTH_ALGO_WPA3_SAE = 9
+ 0x09, 0x00, 0x00, 0x00, // UnicastCipherAlgorithm = WDI_CIPHER_ALGO_GCMP_256 = 9
+ 0x09, 0x00, 0x00, 0x00, // MulticastDataCipherAlgorithm = WDI_CIPHER_ALGO_GCMP_256 = 9
+ 0x0C, 0x00, 0x00, 0x00, // MulticastMgmtCipherAlgorithm = WDI_CIPHER_ALGO_BIP_GMAC_256 = C
+ 0x00, // FourAddressSupported
+ 0x00, // Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, // DSInfo
+ 0x00, 0x00, 0x00, 0x00, // AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x7e, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x0f, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'M', 'i', 'x', 'e', 'd',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02,
+ 0x07, 0x12, //Power Capability
+ 0x24, 0x02,
+ 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0x30, 0x1A,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher = CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP-256
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x18, // AKM Suite - SAE-384 (Wi-Fi 7)
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, // Sta MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x11, 0x01, 0x02, 0x03, 0x04, 0x21, // STA Info : STA Link 1 MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x11, 0x01, 0x02, 0x03, 0x04, 0x22, // STA Info : Sta Link 2 MAC address
+ // STA Profile
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x55, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00,
+ 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x02, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x04, // STA Info : AP Link 1 MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x05, // STA Info : AP Link 2 MAC address
+ // STA Profile
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0x9b, 0x00,
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0f, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'M', 'i', 'x', 'e', 'd',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x32, 0x01,
+ 0xFB, // H2E Only
+ 0x30, 0x2a,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x09, // Group Cipher = GCMP
+ 0x03, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x04, // Pairwise Cipher = CCMP-128
+ 0x00, 0x0F, 0xAC, 0x08, // Pairwise Cipher = GCMP-128
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP-256
+ 0x03, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x02, // AKM Suite - PSK
+ 0x00, 0x0F, 0xAC, 0x08, // AKM Suite - SAE-256
+ 0x00, 0x0F, 0xAC, 0x18, // AKM Suite - SAE-384 (Wi-Fi 7)
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x02, // MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x04, // STA Info : MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x05, // STA Info : MAC address
+ // STA Profile
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0b, 0x00, 0x00, 0x00, // dot11_phy_type_eht
+
+};
+
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_33_WiFi7_Open_MLD = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x06};
+WDI_MAC_ADDRESS s_Connect_Addr_34_WiFi7_Open_Link_1 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x07};
+WDI_MAC_ADDRESS s_Connect_Addr_35_WiFi7_Open_Link_2 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x08};
+WDI_MAC_ADDRESS s_Connect_Addr_36_WiFi7_Open_Link_3 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x09};
+
+UCHAR s_TLV_BSS_Entry_34_WiFi7_Open_Link_1 [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xca, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x07, // AP Link 1 address
+ // WDI_TLV_BEACON_FRAME
+ 0x0a, 0x00,
+ 0x97, 0x00,
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x01, 0x00, // Capability
+ 0x00, 0x0e, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'O', 'p', 'e', 'n',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ // [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ // [EML=0 + Medium=0 + BSS=1 + LinkID=1] [Reserved=0 + Basic=0] [Reserved=0000] [Reserved=000 MLD=0]
+ 0x20, 0x00, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x06, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x33, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x08, // STA Info : AP Link2 MAC address
+ // Remaining STA Profile for Link 2
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x37, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x09, // STA Info : AP Link 3 MAC address
+ // Remaining STA Profile for Link 3
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x08, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x12, 0x03, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x09, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x12, 0x07, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x9d, 0x00, 0x00, 0x00, // Channel
+ 0x02, 0x00, 0x00, 0x00 // BandId
+
+};
+
+UCHAR s_TLV_Success_AssociationResult_34_WiFi7_Open_Link_1[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xb3, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x07, // AP Link 1 Mac Address
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, // Association Status
+ 0x00, 0x00, 0x00, 0x00, // Status Code
+ 0x00, // ReAssociationRequest
+ 0x00, 0x00, 0x00, 0x00, // AuthAlgorithm = WDI_CIPHER_ALGO_NONE = 0
+ 0x00, 0x00, 0x00, 0x00, // UnicastCipherAlgorithm = WDI_AUTH_ALGO_80211_OPEN = 0
+ 0x00, 0x00, 0x00, 0x00, // MulticastDataCipherAlgorithm = WDI_AUTH_ALGO_80211_OPEN = 0
+ 0x00, 0x00, 0x00, 0x00, // MulticastMgmtCipherAlgorithm = WDI_AUTH_ALGO_80211_OPEN = 0
+ 0x00, // FourAddressSupported
+ 0x00, // Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, // DSInfo
+ 0x00, 0x00, 0x00, 0x00, // AssociationComebackTime
+ 0x02, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x75, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x0e, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'O', 'p', 'e', 'n',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02,
+ 0x07, 0x12, //Power Capability
+ 0x24, 0x02,
+ 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0xff, 0x3d, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ // Multi-Link Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x80, 0x01, // [EML=1 + Medium=0 + BSS=0 + LinkID=0] [Reserved=0 + Basic=0] [Reserved=0000] [Reserved=000 MLD=1]
+ 0x0b, // Common Info length
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, // Local STA MLD Mac address (required for Basic)
+ // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ 0x81, 0x00, 0x00, // [ EML Capabilities (3 octets) ]
+ 0x02, 0x00, // [ MLD Capabilities (2 octets) - (2 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x15, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x32, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0010] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // Length
+ 0x11, 0x01, 0x02, 0x03, 0x04, 0x21, // STA Info : Local Link 1 MAC address
+ // STA Profile
+ // Remaining STA Profile for Link 2
+ 0x11, 0x15, 0x21, 0x02, 0x00, 0x0e, 0xff, 0x03, 0x38, 0x01, 0x30, 0x00,
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x15, // Length = 21
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x33, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // Length
+ 0x11, 0x01, 0x02, 0x03, 0x04, 0x22, // STA Info : Local Sta Link 2 MAC address
+ // STA Profile
+ // Remaining STA Profile for Link 3
+ 0x11, 0x15, 0x21, 0x02, 0x00, 0x0e, 0xff, 0x03, 0x38, 0x01, 0x30, 0x00,
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x55, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00, 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x06, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x07, // STA Info : AP Link 1 MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x08, // STA Info : AP Link 2 MAC address
+ // STA Profile
+
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0x97, 0x00,
+
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x01, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x0e, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'O', 'p', 'e', 'n',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x06, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x08, // STA Info : AP Link 1 MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x09, // STA Info : AP Link 2 MAC address
+ // STA Profile
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x08, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x12, 0x03, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x09, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x12, 0x07, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, // Extended Supported Rates
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0b, 0x00, 0x00, 0x00, // dot11_phy_type_eht
+
+};
+
+//===============================================================================
+
+WDI_MAC_ADDRESS s_Connect_Addr_37_WiFi7_Only_MLD = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0a};
+WDI_MAC_ADDRESS s_Connect_Addr_38_WiFi7_Only_Link_1 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0b};
+WDI_MAC_ADDRESS s_Connect_Addr_39_WiFi7_Only_Link_2 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0c};
+WDI_MAC_ADDRESS s_Connect_Addr_40_WiFi7_Only_Link_3 = {0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0d};
+
+UCHAR s_TLV_BSS_Entry_38_WiFi7_Only_Link_1 [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0xe8, 0x00, //Len
+
+ // WDI_TLV_BSSID = 10 = 0xa
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0b, // Link 1 MAC address
+
+ // WDI_TLV_BEACON_FRAME = 143 = 0x8f
+ 0x0a, 0x00,
+ 0xb5, 0x00,
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x10, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'a', 'k', 'm', ':', '2', '4',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01,
+ 0x06, // DSS Parameters
+ 0x05, 0x04,
+ 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01,
+ 0x00, // ERP
+ 0x2F, 0x01,
+ 0x00, // Reserved
+ 0x30, 0x1a,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher = CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP-256
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x18, // AKM Suite - SAE-384 (Wi-Fi 7)
+ 0xCC, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ // [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ // [EML=0 + Medium=0 + BSS=1 + LinkID=1] [Reserved=0 + Basic=0] [Reserved=0000] [Reserved=000 MLD=0]
+ 0x20, 0x00, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0a, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x33, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0c, // STA Info : AP Link 1 MAC address
+ // Remaining STA Profile for Link 2
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ // STA Control = [B7-B4] [B3-B0] [B15-B12] [b11-B8]
+ 0x33, 0x00, // [DTIM=0 + BeaconInt=0 + MAC=1 + Complete=1] [LinkID=0011] [Reserved=0000] [Reserved=0 + BSS=0 + NTSRBit=0 + NTSRPres=0]
+ 0x06, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0d, // STA Info : AP Link 2 MAC address
+ // Remaining STA Profile for Link 3
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0c, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x32, 0x01, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+ 0xc9, 0x14, // RNR IE
+ 0x04, 0x10, // TBTT: 0x04 => B2=1(FilteredAP),B4-B7=0(TBTT Information Count=0+1) :: 0x0c = TBTT Length
+ 0x51, 0x06, // Operating Class = 81 (2.4 GHz), Channel = 6
+ 0x00, // TBTTOffset
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0d, // Bssid
+ 0x1d, 0xc5, 0x3b, 0x12, // ShortSsid
+ 0x40, // BssParameters
+ 0x00, // 20 MHz
+ 0x32, 0x03, 0x56, // Mld Parameters: MLD ID(8 bits) : LinkID (4 bits) + ...
+
+ 0x32, 0x04, // Extended Supported Rates: DOT11_INFO_ELEMENT_ID_EXTD_SUPPORTED_RATES
+ 0x0C, 0x12, 0x18, 0xFB, // 0xFB = BSS_MEMBERSHIP_SELECTOR_SAE_H2E_ONLY
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x09, 0x00,
+ 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x00,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_PHY_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x01, 0x00, 0x00, 0x00, // Channel
+ 0x05, 0x00, 0x00, 0x00 // BandId
+};
+
+UCHAR s_TLV_Success_AssociationResult_38_WiFi7_Only_Link_1[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xaf, 0x01,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0b, // AP Link 1 Mac Address
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, // Association Status
+ 0x00, 0x00, 0x00, 0x00, // Status Code
+ 0x00, // ReAssociationRequest
+ 0x08, 0x00, 0x00, 0x00, // AuthAlgorithm = WDI_AUTH_ALGO_WPA3_SAE = 9
+ 0x09, 0x00, 0x00, 0x00, // UnicastCipherAlgorithm = WDI_CIPHER_ALGO_GCMP_256 = 9
+ 0x09, 0x00, 0x00, 0x00, // MulticastDataCipherAlgorithm = WDI_CIPHER_ALGO_GCMP_256 = 9
+ 0x0C, 0x00, 0x00, 0x00, // MulticastMgmtCipherAlgorithm = WDI_CIPHER_ALGO_BIP_GMAC_256 = C
+ 0x00, // FourAddressSupported
+ 0x00, // Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, // DSInfo
+ 0x00, 0x00, 0x00, 0x00, // AssociationComebackTime
+ 0x01, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x7f, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x10, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'a', 'k', 'm', ':', '2', '4',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Rates
+ 0x21, 0x02,
+ 0x07, 0x12, //Power Capability
+ 0x24, 0x02,
+ 0x01, 0x0B, //Supported Channels
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x08,
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03, // WMM settings
+ 0x30, 0x1A,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x04, // Group Cipher = CCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x18, // AKM Suite - SAE-384 (Wi-Fi 7)
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, // Sta MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x11, 0x01, 0x02, 0x03, 0x04, 0x21, // STA Info : STA Link 1 MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x11, 0x01, 0x02, 0x03, 0x04, 0x22, // STA Info : Sta Link 2 MAC address
+ // STA Profile
+
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x55, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, //Rates
+ 0x32, 0x04,
+ 0x0C, 0x12, 0x18, 0x60, //Extended Rates
+ 0xDD, 0x18,
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00,
+ 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00, //WMM settings
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0a, // AP MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0c, // STA Info : AP Link 1 MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0d, // STA Info : AP Link 2 MAC address
+ // STA Profile
+
+ // WDI_TLV_BEACON_FRAME
+ 0x30, 0x00,
+ 0x89, 0x00,
+ 0x22, 0x02, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x31, 0x04, // Capability
+ 0x00, 0x10, // SSID
+ 'W', 'i', '-', 'F', 'i', ' ', '7', ' ', '-', ' ', 'a', 'k', 'm', ':', '2', '4',
+ 0x01, 0x08,
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, // Supported Rates
+ 0x03, 0x01, 0x06, // DSS Parameters
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+ 0x2A, 0x01, 0x00, // ERP
+ 0x2F, 0x01, 0x00, // Reserved
+ 0x30, 0x1a,
+ 0x01, 0x00, // Version
+ 0x00, 0x0F, 0xAC, 0x09, // Group Cipher = GCMP
+ 0x01, 0x00, // Pairwise Cipher Count
+ 0x00, 0x0F, 0xAC, 0x09, // Pairwise Cipher = GCMP
+ 0x01, 0x00, // AKM Suite Count
+ 0x00, 0x0F, 0xAC, 0x18, // AKM Suite - SAE-384 (Wi-Fi 7)
+ 0xC0, 0x00, // RSN Capability = MFPC + MFPR + ...
+ 0x00, 0x00, // PMKID Count
+ 0x00, 0x0F, 0xAC, 0x0C, // Group Mgmt Cipher = GMAC
+ 0xff, 0x23, // Multilink Extension Element
+ 0x6B, // Multilink Extension ID
+ 0x01, 0x10, // MultiLink Control ([Reserved=0000000 + MLDCapabilities=1 + 000 + LinkID=1 + Reserved=0 + Basic=000] = 0000000 1 000 1 0 000 = 0x0110)
+ 0x09, // Common Info length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0a, // MLD Mac address (required for Basic)
+ 0x01, // [ Link ID (1 octet) - in Beacon/ProbeResp/(Re)AssocResp frames ]
+ // [ BSS Parameters Change Count (1 octet) - from AP only ]
+ // [ Medium Synchronization delay (2 octets) - from AP only]
+ // [ EML Capabilities (2 octets) ]
+ 0x00, 0x03, // [ MLD Capabilities (2 octets) - (3 links max) in Beacon/ProbeResp/(Re)AssocReq/(Re)AssocResp frames ]
+ // Per-Sta profile - 1/2 (Link 2)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x22, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0c, // STA Info : MAC address
+ // STA Profile
+ // Per-Sta profile - 2/2 (Link 3)
+ 0x00, // Subelement ID = 0 for Per-Sta Profile Element
+ 0x09, // Length
+ 0x00, 0x23, // STA Control = (Reserved=00000+BSSParam=0+NTSRBS=0+NTSRLP=0+DTIM=0+BeaconInt=0+MAC=1+CompleteP=0+LinkID=0001) = 0x0021
+ 0x00, // STA Info : Length
+ 0x00, 0xA0, 0xB0, 0xC0, 0xD1, 0x0d, // STA Info : MAC address
+ // STA Profile
+ 0x32, 0x04, // Extended Supported Rates: DOT11_INFO_ELEMENT_ID_EXTD_SUPPORTED_RATES
+ 0x0C, 0x12, 0x18, 0xFB, // 0xFB = BSS_MEMBERSHIP_SELECTOR_SAE_H2E_ONLY
+ 0xDD, 0x09,
+ 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Vendor Specific
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x0b, 0x00, 0x00, 0x00, // dot11_phy_type_eht
+
+};
+
+//===============================================================================
+// DualSta networks
+//===============================================================================
+//
+
+WDI_MAC_ADDRESS s_Connect_Addr_41_DualSta_5Ghz = {0x00, 0x51, 0x30, 0x40, 0x50, 0x60};
+UCHAR s_TLV_BSS_Entry_41_DualSta_5Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x63, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0x51, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME
+ 0x09, 0x00, // Type
+ 0x35, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08,
+ 'D', 'u', 'a', 'l', '-', 'S', 't', 'a', // SSID
+ 0x01, 0x04, // Supported Rates
+ 0x02, 0x04, 0x0B, 0x16,
+ 0x03, 0x01, // DSSS Parameter
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x07, // Vendor specific - MBO-OCE IE
+ 0x50, 0x6F, 0x9A, // WFA OUI
+ 0x16, // MBO-OCE IE OUI Type
+ 0x01, // Attribute ID - AP capability
+ 0x01, // Attrib length
+ 0x00, // Not cellular data aware
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x24, 0x00, 0x00, 0x00, // Channel
+ 0x02, 0x00, 0x00, 0x00 // Band ID
+};
+
+UCHAR s_TLV_SuccessOpenAssociationResult_41_DualSta_5Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD7, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0x51, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x02, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x30, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08,
+ 'D', 'u', 'a', 'l', '-', 'S', 't', 'a', // SSID
+ 0x01, 0x08, // Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x21, 0x02, // Power Capability
+ 0x07, 0x12,
+ 0x24, 0x02, // Supported Channels
+ 0x01, 0x0B,
+ 0x32, 0x04, // Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x07, // WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, //Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x32, 0x04, //Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x18, //WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x25, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08,
+ 'D', 'u', 'a', 'l', '-', 'S', 't', 'a', // SSID
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x07, 0x00, 0x00, 0x00,
+
+};
+
+// -----
+
+WDI_MAC_ADDRESS s_Connect_Addr_42_DualSta_6Ghz = {0x00, 0x52, 0x30, 0x40, 0x50, 0x60};
+UCHAR s_TLV_BSS_Entry_42_DualSta_6Ghz [] =
+{
+ // WDI_TLV_BSS_ENTRY
+ 0x08, 0x00, //Type
+ 0x63, 0x00, //Len
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00, // Type
+ 0x06, 0x00, // Length
+ 0x00, 0x52, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_PROBE_RESPONSE_FRAME
+ 0x09, 0x00, // Type
+ 0x35, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08,
+ 'D', 'u', 'a', 'l', '-', 'S', 't', 'a', // SSID
+ 0x01, 0x04, // Supported Rates
+ 0x02, 0x04, 0x0B, 0x16,
+ 0x03, 0x01, // DSSS Parameter
+ 0x01,
+ 0x05, 0x04, // TIM
+ 0x00, 0x01, 0x00, 0x00,
+ 0x46, 0x05, // RM Enabled Capabilities
+ 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0xDD, 0x07, // Vendor specific - MBO-OCE IE
+ 0x50, 0x6F, 0x9A, // WFA OUI
+ 0x16, // MBO-OCE IE OUI Type
+ 0x01, // Attribute ID - AP capability
+ 0x01, // Attrib length
+ 0x00, // Not cellular data aware
+
+ // WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT
+ 0x0d, 0x00,
+ 0x04, 0x00,
+ 0x04, 0x05, 0x06, 0x07,
+
+ // WDI_TLV_BSS_ENTRY_SIGNAL_INFO
+ 0x0b, 0x00,
+ 0x08, 0x00,
+ 0xCE, 0xFF, 0xFF, 0xFF, // RSSI
+ 0x5A, 0x00, 0x00, 0x00, // Link Quality
+
+ // WDI_TLV_BSS_ENTRY_CHANNEL_INFO
+ 0x3a, 0x00,
+ 0x08, 0x00,
+ 0x09, 0x00, 0x00, 0x00, // Channel
+ 0x05, 0x00, 0x00, 0x00 // Band ID
+};
+
+UCHAR s_TLV_SuccessOpenAssociationResult_42_DualSta_6Ghz[] =
+{
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0x35, 0x00,
+ 0xD7, 0x00,
+
+ // WDI_TLV_BSSID
+ 0x02, 0x00,
+ 0x06, 0x00,
+ 0x00, 0x52, 0x30, 0x40, 0x50, 0x60,
+
+ // WDI_TLV_ASSOCIATION_RESULT_PARAMETERS
+ 0x2D, 0x00,
+ 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, //Association Status
+ 0x00, 0x00, 0x00, 0x00, //Status Code
+ 0x00, //ReAssociationRequest
+ 0x01, 0x00, 0x00, 0x00, //AuthAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //UnicastCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastDataCipherAlgorithm
+ 0x00, 0x00, 0x00, 0x00, //MulticastMgmtCipherAlgorithm
+ 0x00, //FourAddressSupported
+ 0x00, //Port Authorized
+ 0x00, // WMM QoS Enabled
+ 0x00, 0x00, 0x00, 0x00, //DSInfo
+ 0x00, 0x00, 0x00, 0x00, //AssociationComebackTime
+ 0x05, 0x00, 0x00, 0x00, // Band ID
+ 0x00, 0x00, 0x00, 0x00, // IHV Association Status
+ 0x00, 0x00, 0x00, 0x00, //DisableDataPathOffloadsScenario
+
+ // WDI_TLV_ASSOCIATION_REQUEST_FRAME
+ 0x2E, 0x00,
+ 0x30, 0x00,
+ 0x21, 0x04, // Capabilities
+ 0x0A, 0x00, // Listen Interval
+ 0x00, 0x08,
+ 'D', 'u', 'a', 'l', '-', 'S', 't', 'a', // SSID
+ 0x01, 0x08, // Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x21, 0x02, // Power Capability
+ 0x07, 0x12,
+ 0x24, 0x02, // Supported Channels
+ 0x01, 0x0B,
+ 0x32, 0x04, // Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x07, // WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x00, 0x01, 0x00, 0x03,
+
+ // WDI_TLV_ASSOCIATION_RESPONSE_FRAME
+ 0x2F, 0x00,
+ 0x30, 0x00,
+ 0x01, 0x04, //Capability
+ 0x00, 0x00, //Status
+ 0x01, 0xC0, //Association ID
+ 0x01, 0x08, //Rates
+ 0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C,
+ 0x32, 0x04, //Extended Rates
+ 0x0C, 0x12, 0x18, 0x60,
+ 0xDD, 0x18, //WMM settings
+ 0x00, 0x50, 0xF2, 0x02, 0x01, 0x01, 0x80, 0x00, 0x03, 0xA4, 0x00, 0x00, 0x27, 0xA4, 0x00, 0x00,
+ 0x42, 0x43, 0x5E, 0x00, 0x62, 0x32, 0x2F, 0x00,
+
+ // WDI_TLV_BEACON_PROBE_RESPONSE
+ 0x30, 0x00, // Type
+ 0x25, 0x00, // Length
+ 0x00, 0x11, 0x22, 0x33, 0x00, 0x00, 0x00, 0x00, // Timestamp
+ 0x64, 0x00, // Beacon Interval
+ 0x00, 0x04, // Capability
+ 0x00, 0x08,
+ 'D', 'u', 'a', 'l', '-', 'S', 't', 'a', // SSID
+ 0x01, 0x04, 0x02, 0x04, 0x0B, 0x16, // Supported Rates
+ 0x03, 0x01, 0x01, // DSSS Parameter
+ 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, // TIM
+
+ // WDI_TLV_PHY_TYPE_LIST
+ 0x19, 0x00,
+ 0x04, 0x00,
+ 0x07, 0x00, 0x00, 0x00,
+
+};
+
+//===============================================================================
+//===============================================================================
+
+// clang-format on
diff --git a/network/wlan/WIFICX/drivercode/trace.h b/network/wlan/WIFICX/drivercode/trace.h
new file mode 100644
index 00000000..7bbda1fa
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/trace.h
@@ -0,0 +1,247 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#pragma once
+#ifndef TRACE_H
+#define TRACE_H
+
+//extern "C"
+//{
+//#include <WppRecorder.h>
+//}
+#define WPP_USE_TRACE_LEVELS
+
+// 21BA7B61-05F8-41F1-9048-C09493DCFE38
+#define WPP_CONTROL_GUIDS \
+ WPP_DEFINE_CONTROL_GUID(WdiLibraryCtlGuid, (21BA7B61, 05F8, 41F1, 9048, C09493DCFE38), WPP_DEFINE_BIT(DUMMY))
+
+#define WPP_RECORDER_LEVEL_FLAGS_ARGS(lvl, flags) WPP_CONTROL(WPP_BIT_##flags).AutoLogContext, lvl, WPP_BIT_##flags
+#define WPP_RECORDER_LEVEL_FLAGS_FILTER(lvl, flags) \
+ (WPP_LEVEL_ENABLED(lvl) || lvl < TRACE_LEVEL_VERBOSE || WPP_CONTROL(WPP_BIT_##flags).AutoLogVerboseEnabled)
+
+#define WPP_RECORDER_LEVEL_ARGS(LEVEL) WPP_RECORDER_LEVEL_FLAGS_ARGS(LEVEL, DUMMY)
+#define WPP_RECORDER_LEVEL_FILTER(LEVEL) WPP_RECORDER_LEVEL_FLAGS_FILTER(LEVEL, DUMMY)
+
+#define WPP_RECORDER_LEVEL_EXP_FILTER(LEVEL, EXP) WPP_RECORDER_LEVEL_FILTER(LEVEL)
+#define WPP_RECORDER_LEVEL_EXP_ARGS(LEVEL, EXP) WPP_RECORDER_LEVEL_ARGS(LEVEL)
+
+// Suppress warnings about constants in logical expressions because the
+// level is often a constant
+#define WPP_LEVEL_PRE(LEVEL) __pragma(warning(suppress : 25039 25040))
+#define WPP_LEVEL_EXP_PRE(LEVEL, EXP) __pragma(warning(suppress : 25039 25040))
+
+#define TraceEntry(...)
+#define TraceExit(Status)
+#define WFCTrace(Format, ...)
+#define WFCError(Format, ...)
+#define WFCInfo(Format, ...)
+
+
+// begin_wpp config
+// USEPREFIX (TraceEntry, "%!STDPREFIX!");
+// FUNC TraceEntry{LEVEL=TRACE_LEVEL_VERBOSE}(...);
+// USESUFFIX (TraceEntry, "--> %!FUNC!");
+// end_wpp
+
+// begin_wpp config
+// USEPREFIX (TraceExit, "%!STDPREFIX!");
+// FUNC TraceExit{LEVEL=TRACE_LEVEL_VERBOSE}(EXP);
+// USESUFFIX (TraceExit, "<-- %!FUNC!: 0x%x", EXP);
+// end_wpp
+
+//
+// Flat-C trace commands
+//
+// begin_wpp config
+//
+// USEPREFIX (WFCError, "%!STDPREFIX! %!FUNC!: [ERROR]");
+// FUNC WFCError{LEVEL=TRACE_LEVEL_ERROR}(MSG, ...);
+//
+// USEPREFIX (WFCInfo, "%!STDPREFIX! %!FUNC!: [INFO]");
+// FUNC WFCInfo{LEVEL=TRACE_LEVEL_INFORMATION}(MSG, ...);
+//
+// USEPREFIX (WFCTrace, "%!STDPREFIX! %!FUNC!: [TRACE]");
+// FUNC WFCTrace{LEVEL=TRACE_LEVEL_VERBOSE}(MSG, ...);
+//
+// end_wpp
+//
+
+//
+// C++ with Activity ID function entry/exit commands
+//
+// begin_wpp config
+//
+// USEPREFIX (TraceActEntry, "%!STDPREFIX! [O:%p][A:%x]", this, this->get_ActivityId());
+// FUNC TraceActEntry{LEVEL=TRACE_LEVEL_VERBOSE}(...);
+// USESUFFIX (TraceActEntry, "--> %!FUNC!");
+//
+// USEPREFIX (TraceActExit, "%!STDPREFIX! [O:%p][A:%x]", this, this->get_ActivityId());
+// FUNC TraceActExit{LEVEL=TRACE_LEVEL_VERBOSE}(EXP);
+// USESUFFIX (TraceActExit, "<-- %!FUNC!: 0x%x", EXP);
+//
+// end_wpp
+//
+
+//
+// C++ with Activity ID trace commands
+//
+// begin_wpp config
+//
+// USEPREFIX (WFCActError, "%!STDPREFIX! [O:%p][A:%x][ERROR]", this, this->get_ActivityId());
+// FUNC WFCActError{LEVEL=TRACE_LEVEL_ERROR}(MSG, ...);
+//
+// USEPREFIX (WFCActErrorStatus, "%!STDPREFIX! [O:%p][A:%x][ERROR=%x]", this, this->get_ActivityId(), status);
+// FUNC WFCActErrorStatus{LEVEL=TRACE_LEVEL_ERROR}(MSG, ...);
+//
+// USEPREFIX (WFCActInfo, "%!STDPREFIX! [O:%p][A:%x][INFO]", this, this->get_ActivityId());
+// FUNC WFCActInfo{LEVEL=TRACE_LEVEL_INFORMATION}(MSG, ...);
+//
+// USEPREFIX (WFCActTrace, "%!STDPREFIX! [O:%p][A:%x][TRACE]", this, this->get_ActivityId());
+// FUNC WFCActTrace{LEVEL=TRACE_LEVEL_VERBOSE}(MSG, ...);
+//
+// end_wpp
+//
+
+//
+// C++ with Port ID trace commands
+//
+// begin_wpp config
+//
+// USEPREFIX (WFCPortError, "%!STDPREFIX! [O:%p][P:%x][ERROR]", this, this->GetPortId());
+// FUNC WFCPortError{LEVEL=TRACE_LEVEL_ERROR}(MSG, ...);
+//
+// USEPREFIX (WFCPortErrorStatus, "%!STDPREFIX! [O:%p][P:%x][ERROR=%x]", this, this->GetPortId(), status);
+// FUNC WFCPortErrorStatus{LEVEL=TRACE_LEVEL_ERROR}(MSG, ...);
+//
+// USEPREFIX (WFCPortInfo, "%!STDPREFIX! [O:%p][P:%x][INFO]", this, this->GetPortId());
+// FUNC WFCPortInfo{LEVEL=TRACE_LEVEL_INFORMATION}(MSG, ...);
+//
+// USEPREFIX (WFCPortTrace, "%!STDPREFIX! [O:%p][P:%x][TRACE]", this, this->GetPortId());
+// FUNC WFCPortTrace{LEVEL=TRACE_LEVEL_VERBOSE}(MSG, ...);
+//
+// end_wpp
+//
+
+#define MACRO_START \
+ do \
+ {
+#define MACRO_END \
+ } \
+ while (0)
+
+//
+// WPP Macros: WX_RETURN_IF_NOT_NT_SUCCESS_MSG
+//
+// begin_wpp config
+// FUNC WX_RETURN_IF_NOT_NT_SUCCESS_MSG{COMPNAME=DUMMY,LEVEL=TRACE_LEVEL_ERROR}(NTEXPR,MSG,...);
+// USEPREFIX (WX_RETURN_IF_NOT_NT_SUCCESS_MSG, "%!STDPREFIX! !! WifiCx - %!FUNC!: ");
+// USESUFFIX (WX_RETURN_IF_NOT_NT_SUCCESS_MSG, " [status=%!STATUS!]", nt__wpp);
+// end_wpp
+
+#define WPP_COMPNAME_LEVEL_NTEXPR_PRE(comp, level, ntexpr) \
+ MACRO_START NTSTATUS nt__wpp = (ntexpr); \
+ if (!NT_SUCCESS(nt__wpp)) \
+ {
+#define WPP_COMPNAME_LEVEL_NTEXPR_POST(comp, level, ntexpr) \
+ ; \
+ return nt__wpp; \
+ } \
+ MACRO_END
+#define WPP_RECORDER_COMPNAME_LEVEL_NTEXPR_FILTER(comp, level, ntexpr) WPP_RECORDER_LEVEL_FLAGS_FILTER(level, comp)
+#define WPP_RECORDER_COMPNAME_LEVEL_NTEXPR_ARGS(comp, level, ntexpr) WPP_RECORDER_LEVEL_FLAGS_ARGS(level, comp)
+
+//
+// WPP Macros: WX_RETURN_INSUFFICIENT_RESOURCES_IF_NULL_MSG
+//
+// begin_wpp config
+// FUNC WX_RETURN_INSUFFICIENT_RESOURCES_IF_NULL_MSG{COMPNAME=DUMMY,LEVEL=TRACE_LEVEL_ERROR}(PTR2,MSG,...);
+// USEPREFIX (WX_RETURN_INSUFFICIENT_RESOURCES_IF_NULL_MSG, "%!STDPREFIX! !! WifiCx - %!FUNC!: ");
+// USESUFFIX (WX_RETURN_INSUFFICIENT_RESOURCES_IF_NULL_MSG, "%!s! is null", #PTR2);
+// end_wpp
+
+#define WPP_COMPNAME_LEVEL_PTR2_PRE(comp, level, ptr) \
+ MACRO_START if ((ptr == nullptr)) \
+ {
+#define WPP_COMPNAME_LEVEL_PTR2_POST(comp, level, ptr) \
+ ; \
+ return STATUS_INSUFFICIENT_RESOURCES; \
+ } \
+ MACRO_END
+#define WPP_RECORDER_COMPNAME_LEVEL_PTR2_FILTER(comp, level, ptr) WPP_RECORDER_LEVEL_FLAGS_FILTER(level, comp)
+#define WPP_RECORDER_COMPNAME_LEVEL_PTR2_ARGS(comp, level, ptr) WPP_RECORDER_LEVEL_FLAGS_ARGS(level, comp)
+
+//
+// WPP Macros: WX_RETURN_IF_NULL_MSG
+//
+// begin_wpp config
+// FUNC WX_RETURN_IF_NULL_MSG{COMPNAME=DUMMY,LEVEL=TRACE_LEVEL_ERROR}(PTR3,MSG,...);
+// USEPREFIX (WX_RETURN_IF_NULL_MSG, "%!STDPREFIX! !! WifiCx - %!FUNC!: ");
+// USESUFFIX (WX_RETURN_IF_NULL_MSG, "%!s! is null", #PTR3);
+// end_wpp
+
+#define WPP_COMPNAME_LEVEL_PTR3_PRE(comp, level, ptr) \
+ MACRO_START if ((ptr == nullptr)) \
+ {
+#define WPP_COMPNAME_LEVEL_PTR3_POST(comp, level, ptr) \
+ ; \
+ return; \
+ } \
+ MACRO_END
+#define WPP_RECORDER_COMPNAME_LEVEL_PTR3_FILTER(comp, level, ptr) WPP_RECORDER_LEVEL_FLAGS_FILTER(level, comp)
+#define WPP_RECORDER_COMPNAME_LEVEL_PTR3_ARGS(comp, level, ptr) WPP_RECORDER_LEVEL_FLAGS_ARGS(level, comp)
+
+typedef struct _ByteArray
+{
+ USHORT usLength;
+ const void* pvBuffer;
+} ByteArray;
+
+__inline ByteArray log_lenstr(ULONG len, const void* buf)
+{
+ ByteArray xs = {0};
+ xs.usLength = (USHORT)len;
+ xs.pvBuffer = buf;
+ return xs;
+}
+
+#define WPP_LOGHEXDUMP(x) \
+ WPP_LOGPAIR(2, &((x).usLength)) \
+ WPP_LOGPAIR((x).usLength, (x).pvBuffer)
+
+#define WPP_LOGANSISTRING(x) \
+ WPP_LOGPAIR(2, &((x).usLength)) \
+ WPP_LOGPAIR((x).usLength, (x).pvBuffer)
+
+#define WPP_LOGMACADDR(x) WPP_LOGPAIR(6, x)
+
+#define WPP_LOGDOT11SSID(x) \
+ WPP_LOGPAIR(2, &((*(x)).uSSIDLength)) \
+ WPP_LOGPAIR((*(x)).uSSIDLength, ((const char*)(*(x)).ucSSID))
+
+//
+// Custom types
+//
+// begin_wpp config
+//
+// DEFINE_CPLX_TYPE(HEXDUMP, WPP_LOGHEXDUMP, ByteArray, ItemHEXDump,"s", _HEX_, 0,2);
+// WPP_FLAGS(-DLOG_HEXDUMP(len,str)=log_lenstr(len,str));
+//
+// DEFINE_CPLX_TYPE(ANSISTRING, WPP_LOGANSISTRING, ByteArray, ItemPString,"s", _SSID_, 0,2);
+// WPP_FLAGS(-DLOG_ANSISTRING(len,str)=log_lenstr(len,str));
+//
+// DEFINE_CPLX_TYPE(DOT11SSID, WPP_LOGDOT11SSID, DOT11_SSID*, ItemPString,"s", _SSID_, 0,2);
+//
+// DEFINE_CPLX_TYPE(MACADDR, WPP_LOGMACADDR, DOT11_MAC_ADDRESS, ItemMACAddr,"s", _MAC_, 0);
+//
+// CUSTOM_TYPE(WFC_RX_PEER_STATE, ItemEnum(_WFC_RX_PEER_STATE));
+//
+// CUSTOM_TYPE(MESSAGE_ID, ItemEnum(WDI_TLV::ENUMS::MESSAGE_ID));
+// CUSTOM_TYPE(WFC_PORT_PROPERTY_NAME, ItemEnum(WFC_PORT_PROPERTY_NAME));
+// CUSTOM_TYPE(DisconnectInDxReason, ItemEnum(CSetPowerJob::DisconnectInDxReason));
+// CUSTOM_TYPE(WFC_JOB_TYPE, ItemEnum(_WFC_JOB_TYPE));
+// CUSTOM_TYPE(ConfigurableActionFrameWakePatterns, ItemEnum(ConfigurableActionFrameWakePatterns));
+// CUSTOM_TYPE(WFC_PORT_TYPE, ItemEnum(_WFC_PORT_TYPE));
+// end_wpp
+//
+
+#endif
diff --git a/network/wlan/WIFICX/drivercode/umkmfusion.h b/network/wlan/WIFICX/drivercode/umkmfusion.h
new file mode 100644
index 00000000..cc74cd83
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/umkmfusion.h
@@ -0,0 +1,89 @@
+// Copyright (C) Microsoft Corporation. All rights reserved.
+#pragma once
+#include "precomp.h"
+
+#include "winerror.h"
+
+#ifdef _KERNEL_MODE
+#include "ntintsafe.h"
+#else
+#include "intsafe.h"
+#endif
+
+namespace Wifi
+{
+ _inline
+ NTSTATUS ConvertHRESULTToNTSTATUS(HRESULT hr) {
+ if ((hr & FACILITY_NT_BIT) == FACILITY_NT_BIT) {
+ return static_cast<NTSTATUS>(hr & ~FACILITY_NT_BIT); // Strip NT bit safely
+ }
+
+ // Trace the HRESULT value for diagnostics
+
+
+ return SUCCEEDED(hr) ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL;
+ }
+
+ _Must_inspect_result_
+ _inline
+ NTSTATUS SizeTAddSafe(_In_ size_t Augend, _In_ size_t Addend, _Out_ _Deref_out_range_(== , Augend + Addend) size_t* pResult)
+ {
+#ifdef _KERNEL_MODE
+ return RtlSizeTAdd(Augend, Addend, pResult);
+#else
+ return ConvertHRESULTToNTSTATUS(SizeTAdd(Augend, Addend, pResult));
+#endif
+ }
+
+ _Must_inspect_result_
+ __inline
+ NTSTATUS ULongPtrAddSafe(
+ _In_ ULONGLONG ullAugend,
+ _In_ ULONGLONG ullAddend,
+ _Out_ _Deref_out_range_(== , ullAugend + ullAddend) ULONGLONG* pullResult)
+ {
+#ifdef _KERNEL_MODE
+ return RtlULongPtrAdd(ullAugend, ullAddend, pullResult);
+#else
+ return ConvertHRESULTToNTSTATUS(ULongPtrAdd(ullAugend, ullAddend, pullResult));
+#endif
+ }
+
+ _Must_inspect_result_
+ __inline
+ NTSTATUS ULongPtrSubSafe(
+ _In_ ULONGLONG ullMinuend,
+ _In_ ULONGLONG ullSubtrahend,
+ _Out_ _Deref_out_range_(== , ullMinuend - ullSubtrahend) ULONGLONG* pullResult)
+ {
+#ifdef _KERNEL_MODE
+ return RtlULongPtrSub(ullMinuend, ullSubtrahend, pullResult);
+#else
+ return ConvertHRESULTToNTSTATUS(ULongPtrSub(ullMinuend, ullSubtrahend, pullResult));
+#endif
+ }
+}
+
+#ifndef _KERNEL_MODE
+// TODO: Cleanup when EWDK contains the payload of https://microsoft.visualstudio.com/OS/_workitems/edit/58447986
+typedef enum _NDIS_FRAME_HEADER
+{
+ NdisFrameHeaderUndefined,
+ NdisFrameHeaderMac,
+ NdisFrameHeaderArp,
+ NdisFrameHeaderIPv4,
+ NdisFrameHeaderIPv6,
+ NdisFrameHeaderUdp,
+ NdisFrameHeaderMaximum
+}NDIS_FRAME_HEADER, * PNDIS_FRAME_HEADER;
+
+typedef enum _NDIS_RECEIVE_FILTER_TEST
+{
+ NdisReceiveFilterTestUndefined,
+ NdisReceiveFilterTestEqual,
+ NdisReceiveFilterTestMaskEqual,
+ NdisReceiveFilterTestNotEqual,
+ NdisReceiveFilterTestMaximum
+}NDIS_RECEIVE_FILTER_TEST, * PNDIS_RECEIVE_FILTER_TEST;
+// End of TODO
+#endif // !_KERNEL_MODE \ No newline at end of file
diff --git a/network/wlan/WIFICX/drivercode/wifirequest.cpp b/network/wlan/WIFICX/drivercode/wifirequest.cpp
new file mode 100644
index 00000000..06703795
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/wifirequest.cpp
@@ -0,0 +1,1521 @@
+//-------------------------------------------------------------------------------
+// Net Adapter source file
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+
+#include "precomp.h"
+#include "testdata.h"
+#include <ndis\status.h>
+#include "wifirequest.h"
+#include "wifirequest.tmh"
+
+// clang-format off
+
+
+WdiTestConnectEntry g_ConnectEntries[] =
+{
+ // 0
+ { // 0th Entry is disconnected state
+ 0,
+ nullptr,
+ nullptr, 0,
+ nullptr, 0,
+ },
+
+ // 1 - WFC_OPEN
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr,
+ s_TLV_BSS_Entry_1, sizeof(s_TLV_BSS_Entry_1),
+ s_TLV_SuccessOpenAssociationResult, sizeof(s_TLV_SuccessOpenAssociationResult),
+ },
+
+ // 2 - WFC_OPEN
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_2_Open,
+ s_TLV_BSS_Entry_2_Open, sizeof(s_TLV_BSS_Entry_2_Open),
+ s_TLV_Success_AssociationResult_2_Open, sizeof(s_TLV_Success_AssociationResult_2_Open),
+ },
+
+ // 3 - WDI__WEP
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_3_WEP,
+ s_TLV_BSS_Entry_3_WEP, sizeof(s_TLV_BSS_Entry_3_WEP),
+ s_TLV_Success_AssociationResult_3_WEP, sizeof(s_TLV_Success_AssociationResult_3_WEP),
+ },
+
+ // 4 - WDI_SECURE
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_4_RSNA_CCMP,
+ s_TLV_BSS_Entry_4_RSNA_CCMP, sizeof(s_TLV_BSS_Entry_4_RSNA_CCMP),
+ s_TLV_Success_AssociationResult_4_RSNA_CCMP, sizeof(s_TLV_Success_AssociationResult_4_RSNA_CCMP),
+ },
+
+ // 5 - WDI__IHV
+ {
+ TESTMP_BAND_IHV,
+ &s_Connect_Addr_5_IHV,
+ s_TLV_BSS_Entry_5_IHV, sizeof(s_TLV_BSS_Entry_5_IHV),
+ s_TLV_Success_AssociationResult_5_IHV, sizeof(s_TLV_Success_AssociationResult_5_IHV),
+ },
+
+ // 6 - WDI__FT
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_6_FT_CCMP,
+ s_TLV_BSS_Entry_6_FT_CCMP, sizeof(s_TLV_BSS_Entry_6_FT_CCMP),
+ s_TLV_Success_AssociationResult_6_FT_CCMP, sizeof(s_TLV_Success_AssociationResult_6_FT_CCMP),
+ },
+
+ // 7 - WDI__FTPSK
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_7_FT_PSK_CCMP,
+ s_TLV_BSS_Entry_7_FT_PSK_CCMP, sizeof(s_TLV_BSS_Entry_7_FT_PSK_CCMP),
+ s_TLV_Success_AssociationResult_7_FT_PSK_CCMP, sizeof(s_TLV_Success_AssociationResult_7_FT_PSK_CCMP),
+ },
+
+ // 8 -
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_8_Hidden,
+ s_TLV_BSS_Entry_Beacon_8_Hidden, sizeof(s_TLV_BSS_Entry_Beacon_8_Hidden),
+ s_TLV_Success_AssociationResult_8_Hidden, sizeof(s_TLV_Success_AssociationResult_8_Hidden),
+ },
+
+ // 9 - WDI_adPSK
+ {
+ WDI_BAND_ID_60000,
+ &s_Connect_Addr_9_11ad_PSK,
+#ifdef DMG_CAPABILITIES
+ s_TLV_BSS_Entry_9_11ad_ProbeResponse_Dmg_PSK, sizeof(s_TLV_BSS_Entry_9_11ad_ProbeResponse_Dmg_PSK),
+ s_TLV_Success_AssociationResult_9_11ad_Dmg_PSK, sizeof(s_TLV_Success_AssociationResult_9_11ad_Dmg_PSK),
+#else
+ s_TLV_BSS_Entry_9_11ad_ProbeResponse_PSK, sizeof(s_TLV_BSS_Entry_9_11ad_ProbeResponse_PSK),
+ s_TLV_Success_AssociationResult_9_11ad_PSK, sizeof(s_TLV_Success_AssociationResult_9_11ad_PSK),
+#endif // DMG_CAPABILITIES
+ },
+
+ // 10 - WDI_ad_1x
+ {
+ WDI_BAND_ID_60000,
+ &s_Connect_Addr_10_11ad_1x,
+#ifdef DMG_CAPABILITIES
+ s_TLV_BSS_Entry_10_11ad_ProbeResponse_Dmg_1x, sizeof(s_TLV_BSS_Entry_10_11ad_ProbeResponse_Dmg_1x),
+ s_TLV_Success_AssociationResult_10_11ad_Dmg_1x, sizeof(s_TLV_Success_AssociationResult_10_11ad_Dmg_1x),
+#else
+ s_TLV_BSS_Entry_10_11ad_ProbeResponse_1x, sizeof(s_TLV_BSS_Entry_10_11ad_ProbeResponse_1x),
+ s_TLV_Success_AssociationResult_10_11ad_1x, sizeof(s_TLV_Success_AssociationResult_10_11ad_1x),
+#endif // DMG_CAPABILITIES
+ },
+
+ // 11 - WDI_ad_ON
+ {
+ WDI_BAND_ID_60000,
+ &s_Connect_Addr_11_11ad_Open,
+#ifdef DMG_CAPABILITIES
+ s_TLV_BSS_Entry_11_11ad_ProbeResponse_Dmg_Open, sizeof(s_TLV_BSS_Entry_11_11ad_ProbeResponse_Dmg_Open),
+ s_TLV_Success_AssociationResult_11_11ad_Dmg_Open, sizeof(s_TLV_Success_AssociationResult_11_11ad_Dmg_Open),
+#else
+ s_TLV_BSS_Entry_11_11ad_ProbeResponse_Open, sizeof(s_TLV_BSS_Entry_11_11ad_ProbeResponse_Open),
+ s_TLV_Success_AssociationResult_11_11ad_Open, sizeof(s_TLV_Success_AssociationResult_11_11ad_Open),
+#endif // DMG_CAPABILITIES
+ },
+
+ // 12 - WDI_OPEN_11ax.2.4
+ {
+ WDI_BAND_ID_60000,
+ &s_Connect_Addr_12_11ax_24_Open,
+ s_TLV_BSS_Entry_12_11ax_24_Open, sizeof(s_TLV_BSS_Entry_12_11ax_24_Open),
+ s_TLV_Success_AssociationResult_12_11ax_24_Open, sizeof(s_TLV_Success_AssociationResult_12_11ax_24_Open),
+ },
+
+ // 13 - WDI_OPEN_11ax.5
+ {
+ WDI_BAND_ID_5000,
+ &s_Connect_Addr_13_11ax_5_Open,
+ s_TLV_BSS_Entry_13_11ax_5_Open, sizeof(s_TLV_BSS_Entry_13_11ax_5_Open),
+ s_TLV_Success_AssociationResult_13_11ax_5_Open, sizeof(s_TLV_Success_AssociationResult_13_11ax_5_Open),
+ },
+
+ // 14 - WDI_WPA3-SAE
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_14_WPA3_SAE_CCMP,
+ s_TLV_BSS_Entry_14_WPA3_SAE_CCMP, sizeof(s_TLV_BSS_Entry_14_WPA3_SAE_CCMP),
+ s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP, sizeof(s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP),
+ },
+
+ // 15 - WDI_SHA256
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_15_WPA2PSK_SHA256,
+ s_TLV_BSS_Entry_15_WPA2PSK_SHA256, sizeof(s_TLV_BSS_Entry_15_WPA2PSK_SHA256),
+ s_TLV_Success_AssociationResult_15_WPA2PSK_SHA256, sizeof(s_TLV_Success_AssociationResult_15_WPA2PSK_SHA256),
+ },
+
+ // 16 - WDI_WPA3-SUITE_B
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_16_WPA3_SUITEB,
+ s_TLV_BSS_Entry_16_WPA3_SUITEB, sizeof(s_TLV_BSS_Entry_16_WPA3_SUITEB),
+ s_TLV_Success_AssociationResult_16_WPA3_SUITEB, sizeof(s_TLV_Success_AssociationResult_16_WPA3_SUITEB),
+ },
+
+ // 17 - 6E__1
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_17_6G_S1_2_4_Ghz,
+ s_TLV_BSS_Entry_17_6G_S1_2_4_Ghz, sizeof(s_TLV_BSS_Entry_17_6G_S1_2_4_Ghz),
+ s_TLV_Success_AssociationResult_17_6G_S1_2_4_Ghz, sizeof(s_TLV_Success_AssociationResult_17_6G_S1_2_4_Ghz),
+ },
+
+ // 18 - 6E__1
+ {
+ WDI_BAND_ID_5000,
+ &s_Connect_Addr_18_6G_S1_5_Ghz,
+ s_TLV_BSS_Entry_18_6G_S1_5_Ghz, sizeof(s_TLV_BSS_Entry_18_6G_S1_5_Ghz),
+ s_TLV_Success_AssociationResult_18_6G_S1_5_Ghz, sizeof(s_TLV_Success_AssociationResult_18_6G_S1_5_Ghz),
+ },
+
+ // 19 - 6E__1
+ {
+ WDI_BAND_ID_6000,
+ &s_Connect_Addr_19_6G_S1a_6_Ghz,
+ s_TLV_BSS_Entry_19_6G_S1a_6_Ghz, sizeof(s_TLV_BSS_Entry_19_6G_S1a_6_Ghz),
+ s_TLV_Success_AssociationResult_19_6G_S1a_6_Ghz, sizeof(s_TLV_Success_AssociationResult_19_6G_S1a_6_Ghz),
+ },
+
+ // 20 - 6E__1
+ {
+ WDI_BAND_ID_6000,
+ &s_Connect_Addr_20_6G_S1b_6_Ghz,
+ s_TLV_BSS_Entry_20_6G_S1b_6_Ghz, sizeof(s_TLV_BSS_Entry_20_6G_S1b_6_Ghz),
+ s_TLV_Success_AssociationResult_20_6G_S1b_6_Ghz, sizeof(s_TLV_Success_AssociationResult_20_6G_S1b_6_Ghz),
+ },
+
+ // 21 - 6E__2
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_21_6G_S2_2_4_Ghz,
+ s_TLV_BSS_Entry_21_6G_S2_2_4_Ghz, sizeof(s_TLV_BSS_Entry_21_6G_S2_2_4_Ghz),
+ s_TLV_Success_AssociationResult_21_6G_S2_2_4_Ghz, sizeof(s_TLV_Success_AssociationResult_21_6G_S2_2_4_Ghz),
+ },
+
+ // 22 - 6E__2
+ {
+ WDI_BAND_ID_5000,
+ &s_Connect_Addr_22_6G_S2_5_Ghz,
+ s_TLV_BSS_Entry_22_6G_S2_5_Ghz, sizeof(s_TLV_BSS_Entry_22_6G_S2_5_Ghz),
+ s_TLV_Success_AssociationResult_22_6G_S2_5_Ghz, sizeof(s_TLV_Success_AssociationResult_22_6G_S2_5_Ghz),
+ },
+
+ // 23 - 6E__2
+ {
+ WDI_BAND_ID_6000,
+ &s_Connect_Addr_23_6G_S2_6_Ghz,
+ s_TLV_BSS_Entry_23_6G_S2_6_Ghz, sizeof(s_TLV_BSS_Entry_23_6G_S2_6_Ghz),
+ s_TLV_Success_AssociationResult_23_6G_S2_6_Ghz, sizeof(s_TLV_Success_AssociationResult_23_6G_S2_6_Ghz),
+ },
+
+ // 24 - 6E__3
+ {
+ WDI_BAND_ID_2400,
+ &s_Connect_Addr_24_6G_S3_2_4_Ghz,
+ s_TLV_BSS_Entry_24_6G_S3_2_4_Ghz, sizeof(s_TLV_BSS_Entry_24_6G_S3_2_4_Ghz),
+ s_TLV_Success_AssociationResult_24_6G_S3_2_4_Ghz, sizeof(s_TLV_Success_AssociationResult_24_6G_S3_2_4_Ghz),
+ },
+
+ // 25 - 6E__4
+ {
+ WDI_BAND_ID_6000,
+ &s_Connect_Addr_25_6G_S4_6_Ghz,
+ s_TLV_BSS_Entry_25_6G_S4_6_Ghz, sizeof(s_TLV_BSS_Entry_25_6G_S4_6_Ghz),
+ s_TLV_Success_AssociationResult_25_6G_S4_6_Ghz, sizeof(s_TLV_Success_AssociationResult_25_6G_S4_6_Ghz),
+ },
+
+ // 26 - WDI_OWE_RNR
+ {
+ WDI_BAND_ID_2400,
+ &s_ConnectAddr_26_OWE_With_RNR,
+ s_TLV_BSS_Entry_26_OWE_With_RNR, sizeof(s_TLV_BSS_Entry_26_OWE_With_RNR),
+ s_TLV_Failure_AssociationResult_26_OWE_With_RNR, sizeof(s_TLV_Failure_AssociationResult_26_OWE_With_RNR)
+ },
+ // 27 - <WDI_OWE_TM_OPEN>
+ {
+ WDI_BAND_ID_2400,
+ &s_ConnectAddr_27_OWE_TM_OWE,
+ s_TLV_BSS_Entry_27_OWE_TM_OWE, sizeof(s_TLV_BSS_Entry_27_OWE_TM_OWE),
+ s_TLV_Failure_AssociationResult_27_OWE_TM_OWE, sizeof(s_TLV_Failure_AssociationResult_27_OWE_TM_OWE)
+ },
+ // 28 - WDI_OWE_TM_OPEN
+ {
+ WDI_BAND_ID_2400,
+ &s_ConnectAddr_28_OWE_TM_Open,
+ s_TLV_BSS_Entry_28_OWE_TM_Open_Beacon, sizeof(s_TLV_BSS_Entry_28_OWE_TM_Open_Beacon),
+ s_TLV_Failure_AssociationResult_28_OWE_TM_Open, sizeof(s_TLV_Failure_AssociationResult_28_OWE_TM_Open)
+ },
+
+ // 29 is only MLD address for Wi-Fi 7
+ // 30 - Wi-Fi 7 - Mixed
+ {
+ WDI_BAND_ID_5000,
+ &s_Connect_Addr_30_WiFi7_Mixed_Link_1,
+ s_TLV_BSS_Entry_30_WiFi7_Mixed_Link_1, sizeof(s_TLV_BSS_Entry_30_WiFi7_Mixed_Link_1),
+ s_TLV_Success_AssociationResult_30_WiFi7_Mixed_Link_1, sizeof(s_TLV_Success_AssociationResult_30_WiFi7_Mixed_Link_1),
+ },
+ // 34 - Wi-Fi 7 - Open
+ {
+ WDI_BAND_ID_5000,
+ &s_Connect_Addr_34_WiFi7_Open_Link_1,
+ s_TLV_BSS_Entry_34_WiFi7_Open_Link_1, sizeof(s_TLV_BSS_Entry_34_WiFi7_Open_Link_1),
+ s_TLV_Success_AssociationResult_34_WiFi7_Open_Link_1, sizeof(s_TLV_Success_AssociationResult_34_WiFi7_Open_Link_1),
+ },
+ // 38 - Wi-Fi 7 - Only
+ {
+ WDI_BAND_ID_6000,
+ &s_Connect_Addr_38_WiFi7_Only_Link_1,
+ s_TLV_BSS_Entry_38_WiFi7_Only_Link_1, sizeof(s_TLV_BSS_Entry_38_WiFi7_Only_Link_1),
+ s_TLV_Success_AssociationResult_38_WiFi7_Only_Link_1, sizeof(s_TLV_Success_AssociationResult_38_WiFi7_Only_Link_1),
+ },
+
+ // 41 - Dual-Sta
+ {
+ WDI_BAND_ID_5000,
+ &s_Connect_Addr_41_DualSta_5Ghz,
+ s_TLV_BSS_Entry_41_DualSta_5Ghz, sizeof(s_TLV_BSS_Entry_41_DualSta_5Ghz),
+ s_TLV_SuccessOpenAssociationResult_41_DualSta_5Ghz, sizeof(s_TLV_SuccessOpenAssociationResult_41_DualSta_5Ghz),
+ },
+
+ // 42 - Dual-Sta
+ {
+ WDI_BAND_ID_6000,
+ &s_Connect_Addr_42_DualSta_6Ghz,
+ s_TLV_BSS_Entry_42_DualSta_6Ghz, sizeof(s_TLV_BSS_Entry_42_DualSta_6Ghz),
+ s_TLV_SuccessOpenAssociationResult_42_DualSta_6Ghz, sizeof(s_TLV_SuccessOpenAssociationResult_42_DualSta_6Ghz),
+ },
+};
+
+// clang-format on
+
+#define ConnectEntryId_MAX ARRAYSIZE(g_ConnectEntries)
+
+_Use_decl_annotations_
+void EvtWifiDeviceSendCommand(WDFDEVICE Device, WIFIREQUEST SendRequest)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ UINT InBufferLen = 0;
+ UINT OutBufferLen = 0;
+ UINT BytesWritten = 0;
+ void* Buffer = WifiRequestGetInOutBuffer(SendRequest, &InBufferLen, &OutBufferLen);
+ UINT16 MessageId = WifiRequestGetMessageId(SendRequest);
+
+ Status = ProcessWifiRequest(Device, MessageId, Buffer, InBufferLen, OutBufferLen, &BytesWritten);
+
+ if (Status != STATUS_PENDING)
+ {
+ WifiRequestComplete(SendRequest, Status, BytesWritten);
+ }
+ return;
+}
+
+_Use_decl_annotations_
+void WifiCxTestSendIndication(WDFDEVICE Device, PWDI_MESSAGE_HEADER pWdiHeader, UINT16 MessageId, UINT32 TransactionId, PUCHAR pTlvData, UINT32 TlvDataSize)
+{
+ NTSTATUS ntStatus;
+ WDFMEMORY data;
+ PUCHAR pIndicationBuffer = nullptr;
+ PWDI_MESSAGE_HEADER pIndicationHeader = nullptr;
+ SIZE_T indicationSize = sizeof(WDI_MESSAGE_HEADER) + TlvDataSize;
+ WDF_OBJECT_ATTRIBUTES objectAttribs;
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&objectAttribs);
+ objectAttribs.ParentObject = Device;
+
+ ntStatus = WdfMemoryCreate(&objectAttribs, NonPagedPoolNx, 0, indicationSize, &data, reinterpret_cast<void**>(&pIndicationBuffer));
+
+ if (!NT_SUCCESS(ntStatus))
+ {
+ WFCError("%!FUNC!: Failed to initialize indication buffer %!STATUS!", ntStatus);
+ return;
+ }
+
+ RtlZeroMemory(pIndicationBuffer, indicationSize);
+ pIndicationHeader = reinterpret_cast<PWDI_MESSAGE_HEADER>(pIndicationBuffer);
+
+ RtlCopyMemory(pIndicationHeader, pWdiHeader, sizeof(WDI_MESSAGE_HEADER));
+ pIndicationHeader->TransactionId = TransactionId;
+
+ if (TlvDataSize > 0)
+ {
+ RtlCopyMemory(pIndicationBuffer + sizeof(WDI_MESSAGE_HEADER), pTlvData, TlvDataSize);
+ }
+
+ // Send the indication up to WifiCx
+ WifiDeviceReceiveIndication(Device, MessageId, data);
+
+ // Don't need to keep this around
+ WdfObjectDelete(data);
+}
+
+_Use_decl_annotations_
+UINT WifiCxTestSetOutput(PWIFI_DEVICE_CONTEXT pDeviceContext, void* ReqBuffer, SIZE_T ReqBufferSize, PUCHAR pTlvData, UINT32 TlvDataSize)
+{
+ UNREFERENCED_PARAMETER(pDeviceContext);
+ PWDI_MESSAGE_HEADER pWdiHeader = static_cast<PWDI_MESSAGE_HEADER>(ReqBuffer);
+ UINT BytesWritten = 0;
+ pWdiHeader->Status = NDIS_STATUS_SUCCESS; // TODO Need to set it to actual output
+
+ if (ReqBufferSize >= (TlvDataSize + sizeof(WDI_MESSAGE_HEADER)))
+ {
+ if (TlvDataSize > 0)
+ {
+ RtlCopyMemory((static_cast<UCHAR*>(ReqBuffer)) + sizeof(WDI_MESSAGE_HEADER), pTlvData, TlvDataSize);
+ }
+ BytesWritten = static_cast<UINT16>(TlvDataSize);
+ }
+ else
+ {
+ pWdiHeader->Status = NDIS_STATUS_BUFFER_OVERFLOW;
+ }
+ return BytesWritten;
+}
+
+_Use_decl_annotations_
+NDIS_STATUS WifiCxTestGetAdapterCapabilities(PWIFI_DEVICE_CONTEXT pDeviceContext, void* ReqBuffer, SIZE_T ReqBufferSize)
+{
+ NDIS_STATUS ndisStatus = NDIS_STATUS_SUCCESS;
+ PUCHAR pOutput = nullptr;
+ ULONG length = 0;
+
+ // Generate TLV
+ ndisStatus =
+ GenerateWdiGetAdapterCapabilities(&pDeviceContext->AdapterCapabilities, 0, &pDeviceContext->TlvContext, &length, &pOutput);
+
+ if (ndisStatus == NDIS_STATUS_SUCCESS)
+ {
+ // Set the information in the wifirequest
+ WifiCxTestSetOutput(pDeviceContext, ReqBuffer, ReqBufferSize, pOutput, length);
+ }
+
+ FreeGenerated(pOutput);
+
+ return ndisStatus;
+}
+
+_Use_decl_annotations_
+NDIS_STATUS WifiCxTestSetAdapterConfiguration(PWIFI_DEVICE_CONTEXT pDeviceContext, void* ReqBuffer, SIZE_T ReqBufferSize)
+{
+ NDIS_STATUS ndisStatus = NDIS_STATUS_SUCCESS;
+ WDI_SET_FIRMWARE_CONFIGURATION_PARAMETERS fwConfig = {};
+
+ ULONG TLVStreamLength = static_cast<ULONG>(ReqBufferSize - sizeof(WDI_MESSAGE_HEADER));
+ auto TLVByteStream = static_cast<UCHAR*>(ReqBuffer) + sizeof(WDI_MESSAGE_HEADER);
+
+ DumpMessageTlvByteStream(
+ WDI_SET_ADAPTER_CONFIGURATION, TRUE, pDeviceContext->TlvContext.PeerVersion, TLVStreamLength, TLVByteStream, 0, nullptr);
+ ndisStatus = ParseWdiSetAdapterConfiguration(TLVStreamLength, TLVByteStream, &pDeviceContext->TlvContext, &fwConfig);
+
+ if (ndisStatus == NDIS_STATUS_SUCCESS)
+ {
+ if (fwConfig.Optional.MacAddress_IsPresent)
+ {
+ pDeviceContext->AdapterCapabilities.InterfaceAttributes.InterfaceCapabilities.Address = fwConfig.MacAddress;
+ }
+ }
+
+ CleanupParsedWdiSetAdapterConfiguration(&fwConfig);
+
+ return ndisStatus;
+}
+
+
+extern WDI_MAC_ADDRESS STAAddress;
+
+WDI_MAC_ADDRESS LocalLinkAddresses[] = {
+ {0x11, 0x01, 0x02, 0x03, 0x04, 0x21},
+ {0x11, 0x01, 0x02, 0x03, 0x04, 0x22},
+};
+
+static NTSTATUS WifiCxTestSendLinkStateIndication(_In_ WDFDEVICE Device, _In_ PWDI_MESSAGE_HEADER pWdiHeader, ULONG numLinks)
+{
+ // Report link quality
+ NTSTATUS ntStatus = STATUS_SUCCESS;
+ PWIFI_DEVICE_CONTEXT pDeviceContext = WifiGetDeviceContext(Device);
+ WDI_INDICATION_LINK_STATE_CHANGE_PARAMETERS linkStateChangeParameters = {};
+ WDI_LINK_INFO_CONTAINER pLinkInfo[2] = {};
+ UINT8* pOutput = nullptr;
+ ULONG cbOutput = 0;
+
+ RtlCopyMemory(
+ &linkStateChangeParameters.LinkStateChangeParameters.PeerMACAddress, &pDeviceContext->ConnectedPeer, sizeof(DOT11_MAC_ADDRESS));
+ linkStateChangeParameters.LinkStateChangeParameters.TxLinkSpeed = 30000;
+ linkStateChangeParameters.LinkStateChangeParameters.RxLinkSpeed = 30000;
+ linkStateChangeParameters.LinkStateChangeParameters.LinkQuality = 56;
+
+ pLinkInfo[0].LinkID = 1;
+ RtlCopyMemory(&pLinkInfo[0].LocalLinkMACAddress, &LocalLinkAddresses[0], sizeof(DOT11_MAC_ADDRESS));
+ RtlCopyMemory(&pLinkInfo[0].PeerLinkMACAddress, &pDeviceContext->ConnectedPeer, sizeof(DOT11_MAC_ADDRESS));
+ pLinkInfo[0].ChannelNumber = 6;
+ pLinkInfo[0].BandId = WDI_BAND_ID_2400;
+ pLinkInfo[0].RSSI = -50;
+ pLinkInfo[0].Bandwidth = 40;
+ pLinkInfo[0].TxMCS = 3;
+ pLinkInfo[0].RxMCS = 4;
+
+ if (numLinks > 1)
+ {
+ pLinkInfo[1].LinkID = 2;
+ RtlCopyMemory(&pLinkInfo[1].LocalLinkMACAddress, &LocalLinkAddresses[1], sizeof(DOT11_MAC_ADDRESS));
+ RtlCopyMemory(&pLinkInfo[1].PeerLinkMACAddress, &pDeviceContext->ConnectedPeer, sizeof(DOT11_MAC_ADDRESS));
+ pLinkInfo[1].ChannelNumber = 36;
+ pLinkInfo[1].BandId = WDI_BAND_ID_5000;
+ pLinkInfo[1].RSSI = -30;
+ pLinkInfo[1].Bandwidth = 160;
+ pLinkInfo[1].TxMCS = 8;
+ pLinkInfo[1].RxMCS = 9;
+ }
+
+ linkStateChangeParameters.LinkInfo.pElements = pLinkInfo;
+ linkStateChangeParameters.LinkInfo.ElementCount = numLinks > 1 ? 2 : 1;
+
+ ntStatus =
+ GenerateWdiIndicationLinkStateChangeFromIhv(&linkStateChangeParameters, 0, &pDeviceContext->TlvContext, &cbOutput, &pOutput);
+ if (STATUS_SUCCESS == ntStatus)
+ {
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_LINK_STATE_CHANGE, 0, pOutput, cbOutput);
+ FreeGenerated(pOutput);
+ }
+ else
+ {
+ WFCError("Failed to generate WDI_INDICATION_LINK_STATE_CHANGE - 0x%08x\n", ntStatus);
+ }
+
+ return ntStatus;
+}
+
+#define TEST_RSN_EAPOL_SHA384_KCK_LENGTH (192 / 8) // 24 bytes
+#define TEST_RSN_EAPOL_SHA384_KEK_LENGTH (256 / 8) // 32 bytes
+#define TEST_RSN_CCMP_KEY_LENGTH 16
+#define TEST_RSN_BIP_GMAC_256_KEY_LENGTH 32
+
+#define TEST_NUM_LINKS 3
+#define TEST_NUM_CIPHER_KEY_TYPES 3
+
+
+static NTSTATUS WifiCxTestPerformAssociation(
+ _In_ WDFDEVICE Device,
+ _In_ struct ArrayOfElements<WDI_CONNECT_BSS_ENTRY_CONTAINER>* pPreferredBSSEntryList,
+ _In_ struct ArrayOfElements<WDI_AUTH_ALGORITHM>* pAuthenticationAlgorithms,
+ _In_ PWDI_MESSAGE_HEADER pWdiHeader)
+{
+
+ ULONG bssIndex = 0;
+ ULONG connectEntry = ConnectEntryId_MAX;
+ NTSTATUS ntStatus = STATUS_SUCCESS;
+ UINT32 NewConnectEntryId = 0; // Disconnected State
+ WDI_AUTH_ALGORITHM NewAuthAlgo = pAuthenticationAlgorithms->pElements[0];
+ UCHAR pucData[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10};
+ PWIFI_DEVICE_CONTEXT pDeviceContext = WifiGetDeviceContext(Device);
+ ULONG assocStatus = WDI_ASSOC_STATUS_SUCCESS;
+
+ do
+ {
+ // We search for the BSSID pattern to figure out what AP we are trying to connect to
+ for (bssIndex = 0; bssIndex < pPreferredBSSEntryList->ElementCount; bssIndex++)
+ {
+ for (connectEntry = 1; connectEntry < ConnectEntryId_MAX; connectEntry++)
+ {
+ if (RtlCompareMemory(
+ pPreferredBSSEntryList->pElements[bssIndex].BSSID.Address,
+ g_ConnectEntries[connectEntry].pMacAddress,
+ sizeof(DOT11_MAC_ADDRESS)) == sizeof(DOT11_MAC_ADDRESS))
+ {
+ PUCHAR pAssociationResult = g_ConnectEntries[connectEntry].pTlvAssociationResult;
+
+ NewConnectEntryId = connectEntry;
+ pDeviceContext->LastConnectTransactionId = pWdiHeader->TransactionId;
+
+ // TODO NetAdapter: datapath not yet implemented
+#ifdef WIFICX_TEST_DATAPATH
+ // add peer on datapath
+ AddDatapathPeer(0x33, *g_ConnectEntries[connectEntry].pMacAddress);
+
+ // example inject frame
+ InjectDatapathFrame(0x33);
+
+ // Pretend to recieve M1 on datapath before, the association complete has made it up the control path.
+ RecieveDatapathFrame(0x33, sizeof(pucData), pucData);
+
+#endif
+ if ((&s_Connect_Addr_14_WPA3_SAE_CCMP == g_ConnectEntries[connectEntry].pMacAddress) ||
+ (&s_Connect_Addr_30_WiFi7_Mixed_Link_1 == g_ConnectEntries[connectEntry].pMacAddress) ||
+ (&s_Connect_Addr_38_WiFi7_Only_Link_1 == g_ConnectEntries[connectEntry].pMacAddress))
+ {
+ WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED_PARAMETERS SAEAuthParamsNeeded;
+ UINT8* pOutput = nullptr;
+ ULONG cbOutput = 0;
+ NDIS_STATUS ndisStatus = NDIS_STATUS_SUCCESS;
+
+ //
+ // Handle special case for WPA3-SAE
+ // Send the Indication to request additonal SAE params
+ //
+ g_dwSaeResendConfirmRequested = 0;
+ SAEAuthParamsNeeded.SAEIndicationType = WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDED;
+ RtlCopyMemory(
+ SAEAuthParamsNeeded.BssId.Address, g_ConnectEntries[connectEntry].pMacAddress, sizeof(DOT11_MAC_ADDRESS));
+
+ ndisStatus = GenerateWdiIndicationSaeAuthParamsNeeded(
+ &SAEAuthParamsNeeded, 0, &pDeviceContext->TlvContext, &cbOutput, &pOutput);
+ if (ndisStatus == NDIS_STATUS_SUCCESS)
+ {
+ WFCInfo("[SAE] Indicating request for COMMIT_REQUEST_PARAMS_NEEDED ...");
+
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED, 0, pOutput, cbOutput);
+
+ FreeGenerated(pOutput);
+
+ break;
+ }
+ }
+
+ // Get the assoc status
+ RtlCopyMemory(&assocStatus, &pAssociationResult[18], sizeof(ULONG));
+
+ // Send the association indication
+ WifiCxTestSendIndication(
+ Device,
+ pWdiHeader,
+ WDI_INDICATION_ASSOCIATION_RESULT,
+ 0,
+ g_ConnectEntries[connectEntry].pTlvAssociationResult,
+ g_ConnectEntries[connectEntry].TlvAssociationResultSize);
+
+ break;
+ }
+ }
+
+ //
+ // If we found a matching BSSID entry, we are done
+ //
+ if (connectEntry < ConnectEntryId_MAX)
+ {
+ break;
+ }
+ }
+
+ } while (FALSE);
+
+ if (WDI_ASSOC_STATUS_SUCCESS != assocStatus || 0 == NewConnectEntryId || bssIndex >= pPreferredBSSEntryList->ElementCount)
+ {
+ NewConnectEntryId = 0; // Disconnected State
+ NewAuthAlgo = WDI_AUTH_ALGO_80211_OPEN;
+ ntStatus = STATUS_UNSUCCESSFUL;
+ }
+ else
+ {
+ RtlCopyMemory(&pDeviceContext->ConnectedPeer, pPreferredBSSEntryList->pElements[bssIndex].BSSID.Address, sizeof(DOT11_MAC_ADDRESS));
+ }
+
+ pDeviceContext->LastConnectEntryId = NewConnectEntryId;
+ pDeviceContext->LastAuthAlgo = NewAuthAlgo;
+
+ if (STATUS_SUCCESS == ntStatus && (WDI_AUTH_ALGO_WPA3_SAE != pDeviceContext->LastAuthAlgo))
+ {
+ // Report link quality
+ ntStatus = WifiCxTestSendLinkStateIndication(Device, pWdiHeader, 2);
+ }
+
+ return ntStatus;
+}
+
+static void WifiCxTestPerformDisassociation(_In_ WDFDEVICE Device, _In_ PWDI_MESSAGE_HEADER pWdiHeader, _In_ WDI_ASSOC_STATUS DisassocStatus)
+{
+ // clang-format off
+ UCHAR s_TLV_Disassociation[] =
+ {
+ // WDI_TLV_ASSOCIATION_RESULT
+ 0xBC, 0x00,
+ 0x0A, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+
+ // WDI_TLV Need Peer Cleanup Params
+ 0xb4, 0x00,
+ 0x01, 0x00,
+
+ 0x00
+ };
+ // clang-format on
+
+ PWIFI_DEVICE_CONTEXT pDeviceContext = WifiGetDeviceContext(Device);
+
+ // TODO NetAdapter: datapath not yet implemented
+#ifdef WIFICX_TEST_DATAPATH
+ // example inject frame
+ InjectDatapathFrame(0x33);
+#endif
+
+ RtlCopyMemory(&s_TLV_Disassociation[4], &pDeviceContext->ConnectedPeer, sizeof(DOT11_MAC_ADDRESS));
+ RtlCopyMemory(&s_TLV_Disassociation[10], &DisassocStatus, sizeof(ULONG));
+
+ // Send the disassociation indication
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_DISASSOCIATION, 0, s_TLV_Disassociation, sizeof(s_TLV_Disassociation));
+
+ pDeviceContext->LastConnectEntryId = 0; // Disconnected State
+}
+
+_Use_decl_annotations_
+static NTSTATUS ProcessWifiRequest(WDFDEVICE Device, UINT16 MessageId, void* Buffer, UINT InBufferLen, UINT OutBufferLen, UINT* pBytesWritten)
+{
+ NTSTATUS ntStatus = STATUS_SUCCESS;
+ NDIS_STATUS ndisStatus = NDIS_STATUS_SUCCESS;
+ PWIFI_DEVICE_CONTEXT deviceContext = WifiGetDeviceContext(Device);
+ PWDI_MESSAGE_HEADER pWdiHeader = static_cast<PWDI_MESSAGE_HEADER>(Buffer);
+ UINT BytesWritten = sizeof(WDI_MESSAGE_HEADER);
+
+ if (InBufferLen < sizeof(WDI_MESSAGE_HEADER))
+ {
+ return STATUS_INVALID_PARAMETER;
+ }
+
+ if (OutBufferLen < sizeof(WDI_MESSAGE_HEADER))
+ {
+ return STATUS_INVALID_PARAMETER;
+ }
+
+ auto const buffer = static_cast<UCHAR*>(Buffer);
+
+ // Check for integer overflow
+ if (!(buffer + InBufferLen > buffer))
+ {
+ return STATUS_INVALID_PARAMETER;
+ }
+
+ switch (MessageId)
+ {
+ case WDI_TASK_SET_RADIO_STATE:
+ {
+ WDI_SET_RADIO_STATE_PARAMETERS RadioStateParams = {};
+ ULONG TLVStreamLength = static_cast<ULONG>(InBufferLen - sizeof(WDI_MESSAGE_HEADER));
+ auto TLVByteStream = buffer + sizeof(WDI_MESSAGE_HEADER);
+
+ DumpMessageTlvByteStream(
+ WDI_TASK_SET_RADIO_STATE, TRUE, deviceContext->TlvContext.PeerVersion, TLVStreamLength, TLVByteStream, 0, nullptr);
+ ParseWdiTaskSetRadioState(TLVStreamLength, TLVByteStream, &deviceContext->TlvContext, &RadioStateParams);
+
+ if (RadioStateParams.SoftwareRadioState != deviceContext->CurrentRadioState)
+ {
+ // Change the radio state
+ deviceContext->CurrentRadioState = RadioStateParams.SoftwareRadioState;
+
+ // Send the radio state indication
+ WDI_INDICATION_RADIO_STATUS_PARAMETERS RadioStatusParams = {};
+ UINT8* pOutput = nullptr;
+ ULONG cbOutput = 0;
+
+ RadioStatusParams.RadioState.HardwareState = TRUE;
+ RadioStatusParams.RadioState.SoftwareState = deviceContext->CurrentRadioState;
+ GenerateWdiIndicationRadioStatus(&RadioStatusParams, 0, &deviceContext->TlvContext, &cbOutput, &pOutput);
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_RADIO_STATUS, 0, pOutput, cbOutput);
+
+ FreeGenerated(pOutput);
+ }
+
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_SET_RADIO_STATE_COMPLETE, pWdiHeader->TransactionId, nullptr, 0);
+
+ CleanupParsedWdiTaskSetRadioState(&RadioStateParams);
+ }
+ break;
+
+ case WDI_SET_ADAPTER_CONFIGURATION:
+ {
+ ndisStatus = WifiCxTestSetAdapterConfiguration(deviceContext, Buffer, InBufferLen);
+ }
+ break;
+
+ case WDI_TASK_SCAN:
+ {
+ ULONG scanDataLength = static_cast<ULONG>(InBufferLen - sizeof(WDI_MESSAGE_HEADER));
+ auto pScanData = buffer + sizeof(WDI_MESSAGE_HEADER);
+
+ WDI_SCAN_PARAMETERS scanParams = {};
+
+ ndisStatus = ParseWdiTaskScan(scanDataLength, pScanData, &deviceContext->TlvContext, &scanParams);
+
+ if (NDIS_STATUS_SUCCESS != ndisStatus)
+ {
+ WFCTrace("Scan parameters parsing failed: %d\n", ndisStatus);
+ // ntStatus = NdisConvertNdisStatusToNtStatus(parseStatus);
+ break;
+ }
+
+ for (UINT8 connectEntry = 1; connectEntry < ConnectEntryId_MAX; connectEntry++)
+ {
+ if (g_SupportedBands & g_ConnectEntries[connectEntry].BandId)
+ {
+
+ PUCHAR pBssEntry = g_ConnectEntries[connectEntry].pTlvBssEntry;
+
+ //
+ // If currently connected, see if the connected entry should be skipped
+ //
+ if ((deviceContext->LastConnectEntryId != 0) &&
+ (RtlCompareMemory(&deviceContext->ConnectedPeer, &pBssEntry[8], sizeof(DOT11_MAC_ADDRESS)) == sizeof(DOT11_MAC_ADDRESS)))
+ {
+ // Already connected, don't report this entry
+ continue;
+ }
+
+ // TODO: Skip the IHV band as it is not being reported in capabilities
+ if (g_ConnectEntries[connectEntry].BandId == TESTMP_BAND_IHV)
+ {
+ continue;
+ }
+
+ // Send the BSS entry indication
+ WifiCxTestSendIndication(
+ Device,
+ pWdiHeader,
+ WDI_INDICATION_BSS_ENTRY_LIST,
+ 0,
+ g_ConnectEntries[connectEntry].pTlvBssEntry,
+ g_ConnectEntries[connectEntry].TlvBssEntrySize);
+ }
+ }
+
+ //
+ // See if the hidden network needs to be indicated
+ //
+ if ((scanParams.SSIDList.ElementCount > 0) && (scanParams.SSIDList.pElements[0].ElementCount == 8) &&
+ (scanParams.SSIDList.pElements[0].pElements[4] == 'H') && (scanParams.SSIDList.pElements[0].pElements[5] == 'I') &&
+ (scanParams.SSIDList.pElements[0].pElements[6] == 'D') && (scanParams.SSIDList.pElements[0].pElements[7] == 'E'))
+ {
+ WifiCxTestSendIndication(
+ Device, pWdiHeader, WDI_INDICATION_BSS_ENTRY_LIST, 0, s_TLV_BSS_Entry_ProbeResponse_8_Hidden, sizeof(s_TLV_BSS_Entry_ProbeResponse_8_Hidden));
+ }
+
+ CleanupParsedWdiTaskScan(&scanParams);
+
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_SCAN_COMPLETE, pWdiHeader->TransactionId, nullptr, 0);
+ }
+ break;
+
+ case WDI_TASK_DOT11_RESET:
+ {
+ WDI_TASK_DOT11_RESET_PARAMETERS resetParameters;
+
+ ULONG resetDataLength = static_cast<ULONG>(InBufferLen - sizeof(WDI_MESSAGE_HEADER));
+ auto pResetData = buffer + sizeof(WDI_MESSAGE_HEADER);
+
+ ndisStatus = ParseWdiTaskDot11Reset(resetDataLength, pResetData, &deviceContext->TlvContext, &resetParameters);
+
+ if (NDIS_STATUS_SUCCESS != ndisStatus)
+ {
+ WFCTrace("DOT11 Reset parameters parsing failed: %d\n", ndisStatus);
+ }
+ else if (0 == resetParameters.Optional.ResetMACAddress_IsPresent)
+ {
+ WFCTrace("DOT11 Reset, set default MIB = %d, no MAC Address specified\n", resetParameters.Dot11ResetParameters.SetDefaultMIB);
+ }
+ else
+ {
+ WFCTrace(
+ "DOT11 Reset, set default MIB = %d, MAC Address = %2x:%2x:%2x:%2x:%2x:%2x\n",
+ resetParameters.Dot11ResetParameters.SetDefaultMIB,
+ resetParameters.ResetMACAddress.Address[0],
+ resetParameters.ResetMACAddress.Address[1],
+ resetParameters.ResetMACAddress.Address[2],
+ resetParameters.ResetMACAddress.Address[3],
+ resetParameters.ResetMACAddress.Address[4],
+ resetParameters.ResetMACAddress.Address[5]);
+ }
+
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_DOT11_RESET_COMPLETE, pWdiHeader->TransactionId, nullptr, 0);
+
+ CleanupParsedWdiTaskDot11Reset(&resetParameters);
+ }
+ break;
+
+ case WDI_TASK_CONNECT:
+ {
+ ULONG connectDataLength = static_cast<ULONG>(InBufferLen - sizeof(WDI_MESSAGE_HEADER));
+ auto pConnectData = buffer + sizeof(WDI_MESSAGE_HEADER);
+
+ DumpMessageTlvByteStream(WDI_TASK_CONNECT, TRUE, deviceContext->TlvContext.PeerVersion, connectDataLength, pConnectData, 0, nullptr);
+
+ WDI_TASK_CONNECT_PARAMETERS connectParams;
+
+ if (deviceContext->LastConnectEntryId != 0) // Not Disconnected State
+ {
+ ASSERT(FALSE);
+ // TODO NetAdapter: datapath not yet implemented
+#ifdef WIFICX_TEST_DATAPATH
+ DeleteDatapathPeer(0x33);
+#endif
+ }
+
+ // We search for the BSSID pattern to figure out what AP we are trying to connect to
+ ndisStatus = ParseWdiTaskConnect(connectDataLength, pConnectData, &deviceContext->TlvContext, &connectParams);
+ if (NDIS_STATUS_SUCCESS != ndisStatus)
+ {
+ // ntStatus = NdisConvertNdisStatusToNtStatus(parseStatus);
+ WFCTrace("ParseWdiTaskConnect FAIled %d\n", ndisStatus);
+ break;
+ }
+
+ // Call the helper
+ ndisStatus = WifiCxTestPerformAssociation(
+ Device, &connectParams.PreferredBSSEntryList, &connectParams.ConnectParameters.AuthenticationAlgorithms, pWdiHeader);
+ CleanupParsedWdiTaskConnect(&connectParams);
+
+ //
+ // WPA3-SAE requires the SAE Exchange, so do not complete the Connection request until the SAE exchange is complete
+ //
+ if (WDI_AUTH_ALGO_WPA3_SAE != deviceContext->LastAuthAlgo)
+ {
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_CONNECT_COMPLETE, pWdiHeader->TransactionId, nullptr, 0);
+ }
+ }
+ break;
+
+ case WDI_TASK_DISCONNECT:
+ {
+ WifiCxTestPerformDisassociation(Device, pWdiHeader, WDI_ASSOC_STATUS_DISASSOCIATED_BY_HOST);
+
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_DISCONNECT_COMPLETE, pWdiHeader->TransactionId, nullptr, 0);
+
+#ifdef WIFICX_TEST_DATAPATH
+ // TODO NetAdapter: datapath not yet implemented
+ DeleteDatapathPeer(0x33);
+#endif
+ }
+ break;
+
+ case WDI_SET_PRIVACY_EXEMPTION_LIST:
+ case WDI_SET_DEFAULT_KEY_ID:
+ case WDI_SET_ADD_CIPHER_KEYS:
+ case WDI_SET_DELETE_CIPHER_KEYS:
+ case WDI_SET_RECEIVE_PACKET_FILTER:
+ case WDI_SET_CONNECTION_QUALITY:
+ // Doing Nothing special
+ break;
+
+ case WDI_SET_SAE_AUTH_PARAMS:
+ {
+ WDI_SET_SAE_AUTH_PARAMS_COMMAND setSAEAuthParams;
+ WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED_PARAMETERS SAEAuthParamsNeeded;
+ UINT8* pOutput = nullptr;
+ ULONG cbOutput = 0;
+
+ // Commit frame when Status = 0: FiniteCyclicGroup + Scalar + Element
+ // Commit frame when Status = 76: FiniteCyclicGroup + AntiCloggingToken
+ WFCInfo("WDI_SET_SAE_AUTH_PARAMS called!!!\n");
+
+ ndisStatus = ParseWdiSetSaeAuthParams(
+ InBufferLen - sizeof(WDI_MESSAGE_HEADER), (PUINT8)buffer + sizeof(WDI_MESSAGE_HEADER), &deviceContext->TlvContext, &setSAEAuthParams);
+ if (ndisStatus == NDIS_STATUS_SUCCESS)
+ {
+ if (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS == setSAEAuthParams.SAERequestType)
+ {
+ WFCInfo("[SAE] WDI_SET_SAE_AUTH_PARAMS has Commit request for Tx, Setting CommitResponse for Rx\n");
+
+ SAEAuthParamsNeeded.SAEIndicationType = WDI_SAE_INDICATION_TYPE_COMMIT_FRAME;
+ SAEAuthParamsNeeded.Optional.SAECommitFrame_IsPresent = 1;
+
+ //
+ // Send reflection attack first
+ //
+ SAEAuthParamsNeeded.SAECommitFrame.ElementCount = sizeof(pucSAECommitResponseReflection);
+ SAEAuthParamsNeeded.SAECommitFrame.pElements = pucSAECommitResponseReflection;
+ }
+ else if (
+ (WDI_SAE_REQUEST_TYPE_FAILURE == setSAEAuthParams.SAERequestType) &&
+ (WDI_SAE_STATUS_COMMIT_MESSAGE_REFLECTION_ATTACK_DETECTED == setSAEAuthParams.SAEStatus))
+ {
+ WFCInfo("[SAE] WDI_SET_SAE_AUTH_PARAMS returned Reflection error -- Inidicate proper CommitResponse for Rx\n");
+
+ SAEAuthParamsNeeded.SAEIndicationType = WDI_SAE_INDICATION_TYPE_CONFIRM_FRAME;
+ SAEAuthParamsNeeded.Optional.SAECommitFrame_IsPresent = 1;
+ SAEAuthParamsNeeded.SAECommitFrame.ElementCount = sizeof(pucSAECommitResponse);
+ SAEAuthParamsNeeded.SAECommitFrame.pElements = pucSAECommitResponse;
+ }
+ else if (WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMS == setSAEAuthParams.SAERequestType)
+ {
+ WFCInfo("[SAE] WDI_SET_SAE_AUTH_PARAMS has Confirm request for Tx, Setting ConfirmResponse for Rx\n");
+
+ if (g_dwSaeResendConfirmRequested)
+ {
+ SAEAuthParamsNeeded.SAEIndicationType = WDI_SAE_INDICATION_TYPE_CONFIRM_FRAME;
+ SAEAuthParamsNeeded.Optional.SAECommitFrame_IsPresent = 1;
+ SAEAuthParamsNeeded.SAECommitFrame.ElementCount = sizeof(pucSAEConfirmResponse);
+ SAEAuthParamsNeeded.SAECommitFrame.pElements = pucSAEConfirmResponse;
+ }
+ else
+ {
+ g_dwSaeResendConfirmRequested = 1;
+
+ SAEAuthParamsNeeded.SAEIndicationType = WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST;
+ }
+ }
+ else
+ {
+ if (WDI_SAE_REQUEST_TYPE_FAILURE == setSAEAuthParams.SAERequestType)
+ {
+ WFCInfo("[SAE] OID_WDI_SET_SAE_AUTH_PARAMS has indicated error - %d\n", setSAEAuthParams.SAEStatus);
+ }
+ else if (WDI_SAE_REQUEST_TYPE_SUCCESS == setSAEAuthParams.SAERequestType)
+ {
+ WFCInfo("[SAE] OID_WDI_SET_SAE_AUTH_PARAMS has indicated SAE success - %d\n", setSAEAuthParams.SAEStatus);
+ }
+ else
+ {
+ WFCInfo("[SAE] OID_WDI_SET_SAE_AUTH_PARAMS has set INVALID Request type = %d\n", setSAEAuthParams.SAERequestType);
+ }
+#ifdef WIFICX_TEST_DATAPATH
+ // example inject frame
+ InjectDatapathFrame(0x33);
+#endif
+ // Send the association indication
+ if (WDI_AUTH_ALGO_WPA3_SAE == deviceContext->LastAuthAlgo)
+ {
+ s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP[27] = (UCHAR)WDI_AUTH_ALGO_WPA3_SAE;
+ }
+ else
+ {
+ s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP[27] = (UCHAR)WDI_AUTH_ALGO_RSNA_PSK;
+ }
+
+ WifiCxTestSendIndication(
+ Device,
+ pWdiHeader,
+ WDI_INDICATION_ASSOCIATION_RESULT,
+ 0,
+ s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP,
+ sizeof(s_TLV_Success_AssociationResult_14_WPA3_SAE_CCMP));
+ RtlCopyMemory(&deviceContext->ConnectedPeer, &s_Connect_Addr_14_WPA3_SAE_CCMP, sizeof(DOT11_MAC_ADDRESS));
+
+ // Report link quality
+ ntStatus = WifiCxTestSendLinkStateIndication(Device, pWdiHeader, 1);
+
+ WifiCxTestSendIndication(
+ Device, pWdiHeader, WDI_INDICATION_CONNECT_COMPLETE, deviceContext->LastConnectTransactionId, nullptr, 0);
+
+#ifdef WIFICX_TEST_DATAPATH
+ //
+ // Receive M1 frame of 4-way handshake
+ //
+ RecieveDatapathFrame(0x33, sizeof(pucM1SaeFrame), pucM1SaeFrame);
+
+ //
+ // Receive M3 frame of 4-way handshake
+ //
+ RecieveDatapathFrame(0x33, sizeof(pucM3SaeFrame), pucM3SaeFrame);
+#endif
+ break;
+ }
+
+ RtlCopyMemory(SAEAuthParamsNeeded.BssId.Address, &s_Connect_Addr_14_WPA3_SAE_CCMP, sizeof(DOT11_MAC_ADDRESS));
+
+ ndisStatus =
+ GenerateWdiIndicationSaeAuthParamsNeeded(&SAEAuthParamsNeeded, 0, &deviceContext->TlvContext, &cbOutput, &pOutput);
+ if (ndisStatus == NDIS_STATUS_SUCCESS)
+ {
+ WifiCxTestSendIndication(Device, pWdiHeader, WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED, 0, pOutput, cbOutput);
+
+ FreeGenerated(pOutput);
+ }
+ else
+ {
+ WFCError("Failed to generate WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED - 0x%08x\n", ndisStatus);
+ }
+ }
+ else
+ {
+ WFCError("[SAE] Failed to parse WDI_SET_SAE_AUTH_PARAMS data - 0x%08x\n", ndisStatus);
+ }
+ CleanupParsedWdiSetSaeAuthParamsToIhv(&setSAEAuthParams);
+ }
+ break;
+
+ case WDI_SET_LOCATION_PRIVACY:
+ {
+ WDI_SET_LOCATION_PRIVACY_PARAMETERS privacyParams;
+
+ ndisStatus = ParseWdiSetLocationPrivacyToIhv(
+ InBufferLen - sizeof(WDI_MESSAGE_HEADER), (PUINT8)buffer + sizeof(WDI_MESSAGE_HEADER), &deviceContext->TlvContext, &privacyParams);
+ if (NDIS_STATUS_SUCCESS == ndisStatus)
+ {
+ WFCInfo("[WDI_SET_LOCATION_PRIVACY]: Got privacy setting = %x *****\n", privacyParams.LocationAllowed);
+ CleanupParsedWdiSetLocationPrivacy(&privacyParams);
+ }
+ else
+ {
+ WFCError("[WDI_SET_LOCATION_PRIVACY]: ParseWdiSetLocationPrivacyToIhv FAIled %x0x *****\n", ndisStatus);
+ }
+ }
+ break;
+
+ default:
+ ntStatus = STATUS_NOT_SUPPORTED;
+ break;
+ }
+
+ // Set the ndis Status in the WDI header
+ pWdiHeader->Status = ndisStatus;
+
+ // Set the output length
+ if (pBytesWritten)
+ {
+ *pBytesWritten = BytesWritten;
+ }
+ return ntStatus;
+}
+
+_Use_decl_annotations_
+NTSTATUS WifiCxTestSetDeviceCapabilities(WDFDEVICE Device)
+{
+ WIFI_DEVICE_CAPABILITIES deviceCaps = {};
+ WIFI_DEVICE_CAPABILITIES_INIT(&deviceCaps);
+
+ deviceCaps.HardwareRadioState = TRUE;
+ deviceCaps.SoftwareRadioState = TRUE;
+ deviceCaps.FirmwareVersion[MAX_FIRMWARE_VERSION_LENGTH];
+ deviceCaps.ActionFramesSupported = TRUE;
+ deviceCaps.NumRxStreams = 1;
+ deviceCaps.NumTxStreams = 1;
+ deviceCaps.Support_eCSA = FALSE;
+ deviceCaps.MACAddressRandomization = FALSE;
+ deviceCaps.MACAddressRandomizationMask.Address[0] = 0;
+ deviceCaps.MACAddressRandomizationMask.Address[1] = 0;
+ deviceCaps.MACAddressRandomizationMask.Address[2] = 0;
+ deviceCaps.MACAddressRandomizationMask.Address[3] = 0xFF;
+ deviceCaps.MACAddressRandomizationMask.Address[4] = 0;
+ deviceCaps.MACAddressRandomizationMask.Address[5] = 0;
+ deviceCaps.BluetoothCoexistenceSupport = WDI_BLUETOOTH_COEXISTENCE_PERFORMANCE_MAINTAINED;
+ deviceCaps.SupportsNonWdiOidRequests = FALSE;
+ deviceCaps.FastTransitionSupported = TRUE;
+ deviceCaps.MU_MIMOSupported = FALSE;
+ deviceCaps.SAEAuthenticationSupported = TRUE;
+ deviceCaps.BSSTransitionSupported = TRUE;
+ deviceCaps.MBOSupported = FALSE;
+ deviceCaps.BeaconReportsImplemented = FALSE;
+
+ WifiDeviceSetDeviceCapabilities(Device, &deviceCaps);
+
+ WIFI_STATION_CAPABILITIES StationCaps = {};
+ WIFI_STATION_CAPABILITIES_INIT(&StationCaps);
+
+ StationCaps.ScanSSIDListSize = 4;
+ StationCaps.DesiredSSIDListSize = 1;
+ StationCaps.PrivacyExemptionListSize = 1;
+ StationCaps.KeyMappingTableSize = 32;
+ StationCaps.DefaultKeyTableSize = 4;
+ StationCaps.WEPKeyValueMaxLength = 0x20;
+ StationCaps.MaxNumPerSTA = 4;
+ StationCaps.SupportedQOSFlags = 0;
+ StationCaps.HostFIPSModeImplemented = FALSE;
+ StationCaps.MFPCapable = TRUE;
+ StationCaps.AutoPowerSaveMode = FALSE;
+ StationCaps.BSSListCachemanagement = FALSE;
+ StationCaps.ConnectBSSSelectionOverride = FALSE;
+ StationCaps.MaxNetworkOffloadListSize = 0;
+ StationCaps.HESSIDConnectionSupported = FALSE;
+ StationCaps.FTMAsInitiatorSupport = FALSE;
+ StationCaps.FTMNumberOfSupportedTargets = 0;
+
+ const DOT11_AUTH_CIPHER_PAIR UnicastAlgos[] = {
+ {DOT11_AUTH_ALGO_80211_OPEN, DOT11_CIPHER_ALGO_NONE},
+ {DOT11_AUTH_ALGO_80211_OPEN, DOT11_CIPHER_ALGO_WEP},
+ {DOT11_AUTH_ALGO_WPA_PSK, DOT11_CIPHER_ALGO_CCMP},
+ {DOT11_AUTH_ALGO_RSNA, DOT11_CIPHER_ALGO_CCMP},
+ {DOT11_AUTH_ALGO_RSNA_PSK, DOT11_CIPHER_ALGO_TKIP},
+ {DOT11_AUTH_ALGO_RSNA_PSK, DOT11_CIPHER_ALGO_CCMP},
+ {DOT11_AUTH_ALGO_WPA3_ENT_192, DOT11_CIPHER_ALGO_GCMP_256},
+ {DOT11_AUTH_ALGO_WPA3_ENT, DOT11_CIPHER_ALGO_CCMP},
+ {DOT11_AUTH_ALGO_WPA3_SAE, DOT11_CIPHER_ALGO_GCMP_256},
+ {DOT11_AUTH_ALGO_WPA3_SAE, DOT11_CIPHER_ALGO_CCMP},
+ {DOT11_AUTH_ALGO_OWE, DOT11_CIPHER_ALGO_GCMP_256},
+ {DOT11_AUTH_ALGO_OWE, DOT11_CIPHER_ALGO_CCMP},
+ };
+
+ const DOT11_AUTH_CIPHER_PAIR McastMgmtAlgos[] = {
+ {DOT11_AUTH_ALGO_80211_OPEN, DOT11_CIPHER_ALGO_NONE},
+ {DOT11_AUTH_ALGO_RSNA, DOT11_CIPHER_ALGO_BIP},
+ {DOT11_AUTH_ALGO_RSNA_PSK, DOT11_CIPHER_ALGO_BIP},
+ {DOT11_AUTH_ALGO_WPA3_SAE, DOT11_CIPHER_ALGO_BIP},
+ {DOT11_AUTH_ALGO_WPA3_ENT, DOT11_CIPHER_ALGO_BIP},
+ {DOT11_AUTH_ALGO_WPA3_ENT_192, DOT11_CIPHER_ALGO_BIP_GMAC_256},
+ };
+
+ StationCaps.NumSupportedUnicastAlgorithms = ARRAYSIZE(UnicastAlgos);
+ StationCaps.UnicastAlgorithmsList = const_cast<PDOT11_AUTH_CIPHER_PAIR>(UnicastAlgos);
+ StationCaps.NumSupportedMulticastDataAlgorithms = ARRAYSIZE(UnicastAlgos);
+ StationCaps.MulticastDataAlgorithmsList = const_cast<PDOT11_AUTH_CIPHER_PAIR>(UnicastAlgos);
+ StationCaps.NumSupportedMulticastMgmtAlgorithms = ARRAYSIZE(McastMgmtAlgos);
+ StationCaps.MulticastMgmtAlgorithmsList = const_cast<PDOT11_AUTH_CIPHER_PAIR>(McastMgmtAlgos);
+
+ WIFI_STA_BANDS_COMBINATION SecondaryStaBandsCombinations[] = {
+ {2, {WDI_BAND_ID_2400, WDI_BAND_ID_5000, WDI_BAND_ID_UNKNOWN, WDI_BAND_ID_UNKNOWN}},
+ {2, {WDI_BAND_ID_2400, WDI_BAND_ID_6000, WDI_BAND_ID_UNKNOWN, WDI_BAND_ID_UNKNOWN}},
+ {2, {WDI_BAND_ID_5000, WDI_BAND_ID_6000, WDI_BAND_ID_UNKNOWN, WDI_BAND_ID_UNKNOWN}},
+ {3, {WDI_BAND_ID_2400, WDI_BAND_ID_5000, WDI_BAND_ID_6000, WDI_BAND_ID_UNKNOWN}},
+ };
+
+ StationCaps.NumSecondaryStaBandCombinations = ARRAYSIZE(SecondaryStaBandsCombinations);
+ StationCaps.SecondaryStaBandsCombinations = SecondaryStaBandsCombinations;
+
+ WDI_MAC_ADDRESS MLOAddresses[] = {
+ {0x11, 0x01, 0x02, 0x03, 0x04, 0x21},
+ {0x11, 0x01, 0x02, 0x03, 0x04, 0x22},
+ };
+ StationCaps.MaxMLOLinksSupported = ARRAYSIZE(MLOAddresses);
+ StationCaps.MLOAddressesList = MLOAddresses;
+
+ RSNA_AKM_SUITE AkmsList[] = {
+ rsna_akm_1x,
+ rsna_akm_psk,
+ rsna_akm_ft_1x_sha256,
+ rsna_akm_ft_psk_sha256,
+ rsna_akm_1x_sha256,
+ rsna_akm_psk_sha256,
+ rsna_akm_sae_pmk256,
+ rsna_akm_1x_suite_b_sha384,
+ rsna_akm_owe,
+ rsna_akm_1x_sha384,
+ rsna_akm_sae_pmk384,
+ };
+ StationCaps.NumAkmsSupported = ARRAYSIZE(AkmsList);
+ StationCaps.AkmsList = AkmsList;
+
+ if (WIFI_IS_FIELD_AVAILABLE(WIFI_STATION_CAPABILITIES, MSCSSupported))
+ {
+ StationCaps.MSCSSupported = true;
+ }
+ if (WIFI_IS_FIELD_AVAILABLE(WIFI_STATION_CAPABILITIES, DSCPToUPMappingSupported))
+ {
+ StationCaps.DSCPToUPMappingSupported = true;
+ }
+#ifdef _KERNEL_MODE
+ if (!KdRefreshDebuggerNotPresent())
+ {
+ DbgPrintEx(
+ DPFLTR_DEFAULT_ID,
+ DPFLTR_ERROR_LEVEL,
+ "WIFI_IS_FIELD_AVAILABLE:WIFI_STATION_CAPABILITIES::MSCSSupported %u\n",
+ WIFI_IS_FIELD_AVAILABLE(WIFI_STATION_CAPABILITIES, MSCSSupported));
+ DbgPrintEx(
+ DPFLTR_DEFAULT_ID,
+ DPFLTR_ERROR_LEVEL,
+ "WIFI_IS_FIELD_AVAILABLE:WIFI_STATION_CAPABILITIES::DSCPToUPMappingSupported %u\n",
+ WIFI_IS_FIELD_AVAILABLE(WIFI_STATION_CAPABILITIES, DSCPToUPMappingSupported));
+ DbgPrintEx(
+ DPFLTR_DEFAULT_ID,
+ DPFLTR_ERROR_LEVEL,
+ "WIFI_IS_FIELD_AVAILABLE:WIFI_STATION_CAPABILITIES::MaxNumConfigurableActionFrameWakePatterns %u\n",
+ WIFI_IS_FIELD_AVAILABLE(WIFI_STATION_CAPABILITIES, MaxNumConfigurableActionFrameWakePatterns));
+ DbgPrintEx(
+ DPFLTR_DEFAULT_ID,
+ DPFLTR_ERROR_LEVEL,
+ "WIFI_IS_FUNCTION_AVAILABLE:WifiPowerOffloadGetActionFrameWakePatternParameters %u\n",
+ WIFI_IS_FUNCTION_AVAILABLE(WifiPowerOffloadGetActionFrameWakePatternParameters));
+ }
+#endif
+ WifiDeviceSetStationCapabilities(Device, &StationCaps);
+
+ WIFI_BAND_CAPABILITIES BandCaps = {};
+ WIFI_BAND_CAPABILITIES_INIT(&BandCaps);
+
+ const WDI_PHY_TYPE Phy24GHz[] = { WDI_PHY_TYPE_ERP, WDI_PHY_TYPE_HE }; // g, ax
+ const WDI_PHY_TYPE Phy5GHz[] = { WDI_PHY_TYPE_OFDM, WDI_PHY_TYPE_HE, WDI_PHY_TYPE_EHT }; // a, ax, be
+ const WDI_PHY_TYPE Phy6GHz[] = { WDI_PHY_TYPE_HE, WDI_PHY_TYPE_EHT }; // ax, be
+ const WDI_PHY_TYPE pPhy60GHz[] = { WDI_PHY_TYPE_DMG }; // ad
+ const WDI_PHY_TYPE phyIHV[2] = { WDI_PHY_TYPE_OFDM, static_cast<WDI_PHY_TYPE>(WDI_PHY_TYPE_IHV_START + 1) };
+
+ // clang-format off
+
+ const WDI_CHANNEL_MAPPING_ENTRY ChannelMap24[] = {
+ {1, 2412},
+ {2, 2417},
+ {3, 2422},
+ {4, 2427},
+ {5, 2432},
+ {6, 2437},
+ {7, 2442},
+ {8, 2447},
+ {9, 2452},
+ {10, 2457},
+ {11, 2462},
+ {12, 2467}, // Not used in US
+ {13, 2472}, // Not used in US
+ {14, 2484}, // Allowed in Japan only
+ };
+
+ const WDI_CHANNEL_MAPPING_ENTRY ChannelMap5[] = {
+ {7, 5035}, // Not used in US
+ {8, 5040}, // Not used in US
+ {9, 5045}, // Not used in US
+ {11, 5055}, // Not used in US
+ {12, 5060}, // Not used in US
+ {16, 5080}, // Not used in US
+ {32, 5160}, // Unknown status
+ {34, 5170}, // Not used in US
+ {36, 5180},
+ {38, 5190},
+ {40, 5200},
+ {42, 5210},
+ {44, 5220},
+ {46, 5230},
+ {48, 5240},
+ {50, 5250}, // DFS
+ {52, 5260}, // DFS
+ {54, 5270}, // DFS
+ {56, 5280}, // DFS
+ {58, 5290}, // DFS
+ {60, 5300}, // DFS
+ {62, 5310}, // DFS
+ {64, 5320}, // DFS
+ {68, 5340}, // Unknown status
+ {96, 5480}, // Unknown status
+ {100, 5500}, // DFS
+ {102, 5510}, // DFS
+ {104, 5520}, // DFS
+ {106, 5530}, // DFS
+ {108, 5540}, // DFS
+ {110, 5550}, // DFS
+ {112, 5560}, // DFS
+ {114, 5570}, // DFS
+ {116, 5580}, // DFS
+ {118, 5590}, // DFS
+ {120, 5600}, // DFS
+ {122, 5610}, // DFS
+ {124, 5620}, // DFS
+ {126, 5630}, // DFS
+ {128, 5640}, // DFS
+ {132, 5660}, // DFS
+ {134, 5670}, // DFS
+ {136, 5680}, // DFS
+ {138, 5690}, // DFS
+ {140, 5700}, // DFS
+ {142, 5710}, // DFS
+ {142, 5720}, // DFS
+ {144, 5730}, // DFS
+ {149, 5745},
+ {151, 5755},
+ {153, 5765},
+ {155, 5785},
+ {157, 5785},
+ {159, 5795},
+ {161, 5805},
+ {165, 5825},
+ {169, 5845}, // Not used in US
+ {173, 5865}, // Not used in US
+ {183, 4915}, // Not used in US
+ {184, 4920}, // Not used in US
+ {185, 4925}, // Not used in US
+ {187, 4935}, // Not used in US
+ {188, 4940}, // Not used in US
+ {189, 4945}, // Not used in US
+ {192, 4960}, // Not used in US
+ {196, 4980}, // Not used in US
+ };
+
+ const WDI_CHANNEL_MAPPING_ENTRY channelMap6[] = {
+ {1, 5955},
+ {5, 5975}, // PSC Channel (1)
+ {9, 5995},
+
+ {13, 6015},
+ {17, 6035},
+ {21, 6055}, // PSC Channel (2)
+ {25, 6075},
+ {29, 6095},
+
+ {33, 6115},
+ {37, 6135}, // PSC Channel (3)
+ {41, 6155},
+ {45, 6175},
+ {49, 6195},
+
+ {53, 6215}, // PSC Channel (4)
+ {57, 6235},
+ {61, 6255},
+ {65, 6275},
+ {69, 6295}, // PSC Channel (5)
+
+ {73, 6315},
+ {77, 6335},
+ {81, 6355},
+ {85, 6375}, // PSC Channel (6)
+ {89, 6395},
+
+ {93, 6415},
+ {97, 6435},
+ {101, 6455}, // PSC Channel (7)
+ {105, 6475},
+ {109, 6495},
+
+ {113, 6515},
+ {117, 6535}, // PSC Channel (8)
+ {121, 6555},
+ {125, 6575},
+ {129, 6595},
+
+ {133, 6615}, // PSC Channel (9)
+ {137, 6635},
+ {141, 6655},
+ {145, 6675},
+ {149, 6695}, // PSC Channel (10)
+
+ {153, 6715},
+ {157, 6735},
+ {161, 6755},
+ {165, 6775}, // PSC Channel (11)
+ {169, 6795},
+
+ {173, 6815},
+ {177, 6835},
+ {181, 6855}, // PSC Channel (12)
+ {185, 6875},
+ {189, 6895},
+
+ {193, 6915},
+ {197, 6935}, // PSC Channel (13)
+ {201, 6955},
+ {205, 6975},
+ {209, 6995},
+
+ {213, 7015}, // PSC Channel (14)
+ {217, 7035},
+ {221, 7055},
+ {225, 7075},
+ {229, 7095}, // PSC Channel (15)
+
+ {233, 7115},
+ {237, 7135},
+ {241, 7155},
+ {245, 7175},
+ {249, 7195},
+
+ {253, 7215},
+ };
+
+ const WDI_CHANNEL_MAPPING_ENTRY channelMap60[] = {
+ {1, 58320},
+ {2, 60480},
+ {3, 62640},
+ {4, 64800},
+ {5, 66960},
+ {6, 69120},
+ };
+
+ // clang-format on
+
+ UINT32 ChannelWidth10Mhz = 10;
+ UINT32 ChannelWidth20Mhz = 20;
+ UINT32 channelWidth2160Mhz = 2160;
+ UINT32 pChannelWidth6Ghz[] = { 20, 40, 80, 160, 320 };
+
+ WIFI_BAND_INFO BandInfo[4] = {}; // Upto 4 bands
+ UINT32 bandInfoCount = 0;
+
+ if (g_SupportedBands & WDI_BAND_ID_2400)
+ {
+ BandInfo[bandInfoCount].BandID = WDI_BAND_ID_2400;
+ BandInfo[bandInfoCount].BandState = TRUE;
+ BandInfo[bandInfoCount].NumValidPhyTypes = ARRAYSIZE(Phy24GHz);
+ BandInfo[bandInfoCount].ValidPhyTypeList = const_cast<WDI_PHY_TYPE*>(Phy24GHz);
+ BandInfo[bandInfoCount].NumValidChannelTypes = ARRAYSIZE(ChannelMap24);
+ BandInfo[bandInfoCount].ValidChannelTypes = const_cast<WDI_CHANNEL_MAPPING_ENTRY*>(ChannelMap24);
+ BandInfo[bandInfoCount].NumChannelWidths = 1;
+ BandInfo[bandInfoCount].ChannelWidthList = &ChannelWidth10Mhz;
+ bandInfoCount++;
+ }
+ NT_ASSERT(bandInfoCount <= 1);
+
+ if (g_SupportedBands & WDI_BAND_ID_5000)
+ {
+ BandInfo[bandInfoCount].BandID = WDI_BAND_ID_5000;
+ BandInfo[bandInfoCount].BandState = TRUE;
+ BandInfo[bandInfoCount].NumValidPhyTypes = ARRAYSIZE(Phy5GHz);
+ BandInfo[bandInfoCount].ValidPhyTypeList = const_cast<WDI_PHY_TYPE*>(Phy5GHz);
+ BandInfo[bandInfoCount].NumValidChannelTypes = ARRAYSIZE(ChannelMap5);
+ BandInfo[bandInfoCount].ValidChannelTypes = const_cast<WDI_CHANNEL_MAPPING_ENTRY*>(ChannelMap5);
+ BandInfo[bandInfoCount].NumChannelWidths = 1;
+ BandInfo[bandInfoCount].ChannelWidthList = &ChannelWidth20Mhz;
+ bandInfoCount++;
+ }
+ NT_ASSERT(bandInfoCount <= 2);
+
+ if (g_SupportedBands & WDI_BAND_ID_6000)
+ {
+ BandInfo[bandInfoCount].BandID = WDI_BAND_ID_6000; // 6
+ BandInfo[bandInfoCount].BandState = TRUE;
+ BandInfo[bandInfoCount].NumValidPhyTypes = ARRAYSIZE(Phy6GHz);
+ BandInfo[bandInfoCount].ValidPhyTypeList = const_cast<WDI_PHY_TYPE*>(Phy6GHz);
+ BandInfo[bandInfoCount].NumValidChannelTypes = ARRAYSIZE(channelMap6);
+ BandInfo[bandInfoCount].ValidChannelTypes = const_cast<WDI_CHANNEL_MAPPING_ENTRY*>(channelMap6);
+ BandInfo[bandInfoCount].NumChannelWidths = ARRAYSIZE(pChannelWidth6Ghz);
+ BandInfo[bandInfoCount].ChannelWidthList = pChannelWidth6Ghz;
+ bandInfoCount++;
+ }
+
+ NT_ASSERT(bandInfoCount <= 3);
+ if (g_SupportedBands & WDI_BAND_ID_60000)
+ {
+ BandInfo[bandInfoCount].BandID = WDI_BAND_ID_60000; // 60
+ BandInfo[bandInfoCount].BandState = TRUE;
+ BandInfo[bandInfoCount].NumValidPhyTypes = ARRAYSIZE(pPhy60GHz);
+ BandInfo[bandInfoCount].ValidPhyTypeList = const_cast<WDI_PHY_TYPE*>(pPhy60GHz);
+ BandInfo[bandInfoCount].NumValidChannelTypes = ARRAYSIZE(channelMap60);
+ BandInfo[bandInfoCount].ValidChannelTypes = const_cast<WDI_CHANNEL_MAPPING_ENTRY*>(channelMap60);
+ BandInfo[bandInfoCount].NumChannelWidths = 1;
+ BandInfo[bandInfoCount].ChannelWidthList = &channelWidth2160Mhz;
+ bandInfoCount++;
+ }
+ NT_ASSERT(bandInfoCount <= 4);
+
+ BandCaps.NumBands = bandInfoCount;
+ BandCaps.BandInfoList = BandInfo;
+
+ WifiDeviceSetBandCapabilities(Device, &BandCaps);
+
+ WIFI_PHY_CAPABILITIES PhyCaps = {};
+ WIFI_PHY_CAPABILITIES_INIT(&PhyCaps);
+
+ WIFI_PHY_INFO PhyInfoList[3];
+
+ const WDI_DATA_RATE_ENTRY DataRateListErp[] = {
+ {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 2},
+ {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 4},
+ {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 22},
+ {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 108} };
+ const WDI_DATA_RATE_ENTRY DataRateListOfdm[] = {
+ {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 2}, {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 108} };
+ const WDI_DATA_RATE_ENTRY DataRateListEht[] = {
+ {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 2}, {WDI_DATA_RATE_RX_RATE | WDI_DATA_RATE_TX_RATE, 108} };
+
+ PhyInfoList[0].PhyType = WDI_PHY_TYPE_ERP;
+ PhyInfoList[0].NumberDataRateEntries = ARRAYSIZE(DataRateListErp);
+ RtlCopyMemory(&PhyInfoList[0].DataRateList, &DataRateListErp, sizeof(DataRateListErp));
+
+ PhyInfoList[1].PhyType = WDI_PHY_TYPE_HE;
+ PhyInfoList[1].NumberDataRateEntries = ARRAYSIZE(DataRateListOfdm);
+ RtlCopyMemory(&PhyInfoList[1].DataRateList, &DataRateListOfdm, sizeof(DataRateListOfdm));
+
+ PhyInfoList[2].PhyType = WDI_PHY_TYPE_EHT;
+ PhyInfoList[2].NumberDataRateEntries = ARRAYSIZE(DataRateListEht);
+ RtlCopyMemory(&PhyInfoList[2].DataRateList, &DataRateListEht, sizeof(DataRateListEht));
+
+ PhyCaps.NumPhyTypes = ARRAYSIZE(PhyInfoList);
+ PhyCaps.PhyInfoList = PhyInfoList;
+
+ WifiDeviceSetPhyCapabilities(Device, &PhyCaps);
+
+ return STATUS_SUCCESS;
+} \ No newline at end of file
diff --git a/network/wlan/WIFICX/drivercode/wifirequest.h b/network/wlan/WIFICX/drivercode/wifirequest.h
new file mode 100644
index 00000000..b2221c1e
--- /dev/null
+++ b/network/wlan/WIFICX/drivercode/wifirequest.h
@@ -0,0 +1,30 @@
+// Copyright (C) Microsoft Corporation. All rights reserved.
+#pragma once
+
+EVT_WIFI_DEVICE_SEND_COMMAND EvtWifiDeviceSendCommand;
+
+static NTSTATUS ProcessWifiRequest(
+ _In_ WDFDEVICE Device, _In_ UINT16 MessageId, _In_ void* Buffer, _In_ UINT InBufferLen, _In_ UINT OutBufferLen, _In_ UINT* pBytesWritten);
+
+UINT WifiCxTestSetOutput(
+ _In_ PWIFI_DEVICE_CONTEXT pDeviceContext,
+ _Inout_ void* ReqBuffer,
+ _In_ SIZE_T ReqBufferSize,
+ _In_opt_bytecount_(TlvDataSize) PUCHAR pTlvData,
+ _In_ UINT32 TlvDataSize);
+
+void WifiCxTestSendIndication(
+ _In_ WDFDEVICE Device,
+ _In_ PWDI_MESSAGE_HEADER pWdiHeader,
+ _In_ UINT16 MessageId,
+ _In_ UINT32 TransactionId,
+ _In_opt_bytecount_(TlvDataSize) PUCHAR pTlvData,
+ _In_ UINT32 TlvDataSize);
+
+NDIS_STATUS WifiCxTestGetAdapterCapabilities(_In_ PWIFI_DEVICE_CONTEXT pDeviceContext, _In_ void* ReqBuffer, _In_ SIZE_T ReqBufferSize);
+
+NDIS_STATUS WifiCxTestSetAdapterConfiguration(_In_ PWIFI_DEVICE_CONTEXT pDeviceContext, _In_ void* ReqBuffer, _In_ SIZE_T ReqBufferSize);
+
+NTSTATUS WifiCxTestSetDeviceCapabilities(_In_ WDFDEVICE Device);
+
+ULONG g_SupportedBands = (WDI_BAND_ID_2400 | WDI_BAND_ID_5000 | WDI_BAND_ID_6000); \ No newline at end of file
diff --git a/network/wlan/WIFICX/km/wificxsampleclientkm.inf b/network/wlan/WIFICX/km/wificxsampleclientkm.inf
new file mode 100644
index 00000000..432e31ac
--- /dev/null
+++ b/network/wlan/WIFICX/km/wificxsampleclientkm.inf
@@ -0,0 +1,62 @@
+;
+; wificxsampleclientkm.inf
+;
+
+[Version]
+Signature = "$WINDOWS NT$"
+Class = System ; TODO: specify appropriate Class
+ClassGuid = {4d36e97d-e325-11ce-bfc1-08002be10318} ; TODO: specify appropriate ClassGuid
+Provider = %ManufacturerName%
+CatalogFile = wificxsampleclientkm.cat
+DriverVer = ; TODO: set DriverVer in stampinf property pages
+PnpLockdown = 1
+
+[DestinationDirs]
+DefaultDestDir = 13
+
+[SourceDisksNames]
+1 = %DiskName%,,,""
+
+[SourceDisksFiles]
+wificxsampleclientkm.sys = 1,,
+
+;*****************************************
+; Install Section
+;*****************************************
+
+[Manufacturer]
+%ManufacturerName% = Standard,NT$ARCH$.10.0...16299 ; %13% support introduced in build 16299
+
+[Standard.NT$ARCH$.10.0...16299]
+%wificxsampleclientkm.DeviceDesc% = wificxsampleclientkm_Device, Root\wificxsampleclientkm ; TODO: edit hw-id
+
+[wificxsampleclientkm_Device.NT]
+CopyFiles = File_Copy
+
+[File_Copy]
+wificxsampleclientkm.sys
+
+;-------------- Service installation
+[wificxsampleclientkm_Device.NT.Services]
+AddService = wificxsampleclientkm,%SPSVCINST_ASSOCSERVICE%, wificxsampleclientkm_Service_Inst
+
+; -------------- wificxsampleclientkm driver install sections
+[wificxsampleclientkm_Service_Inst]
+DisplayName = %wificxsampleclientkm.SVCDESC%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %13%\wificxsampleclientkm.sys
+
+[wificxsampleclientkm_Device.NT.Wdf]
+KmdfService = wificxsampleclientkm, wificxsampleclientkm_wdfsect
+
+[wificxsampleclientkm_wdfsect]
+KmdfLibraryVersion = $KMDFVERSION$
+
+[Strings]
+SPSVCINST_ASSOCSERVICE = 0x00000002
+ManufacturerName = "<Your manufacturer name>" ;TODO: Replace with your manufacturer name
+DiskName = "wificxsampleclientkm Installation Disk"
+wificxsampleclientkm.DeviceDesc = "wificxsampleclientkm Device"
+wificxsampleclientkm.SVCDESC = "wificxsampleclientkm Service"
diff --git a/network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj b/network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj
new file mode 100644
index 00000000..73dfb632
--- /dev/null
+++ b/network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{272D3E7B-C7BA-66D1-E05D-B9723A6F0777}</ProjectGuid>
+ <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
+ <Configuration>Debug</Configuration>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
+ <RootNamespace>wificxsampleclientkm</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
+ <KMDF_VERSION_MINOR>33</KMDF_VERSION_MINOR>
+ <KMDF_MINIMUM_VERSION_REQUIRED>33</KMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>4</NETADAPTER_VERSION_MINOR>
+ <NETADAPTER_MINIMUM_VERSION_REQUIRED>4</NETADAPTER_MINIMUM_VERSION_REQUIRED>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
+ <KMDF_VERSION_MINOR>33</KMDF_VERSION_MINOR>
+ <KMDF_MINIMUM_VERSION_REQUIRED>33</KMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>4</NETADAPTER_VERSION_MINOR>
+ <NETADAPTER_MINIMUM_VERSION_REQUIRED>4</NETADAPTER_MINIMUM_VERSION_REQUIRED>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
+ <KMDF_VERSION_MINOR>33</KMDF_VERSION_MINOR>
+ <KMDF_MINIMUM_VERSION_REQUIRED>33</KMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>4</NETADAPTER_VERSION_MINOR>
+ <NETADAPTER_MINIMUM_VERSION_REQUIRED>4</NETADAPTER_MINIMUM_VERSION_REQUIRED>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
+ <KMDF_VERSION_MINOR>33</KMDF_VERSION_MINOR>
+ <KMDF_MINIMUM_VERSION_REQUIRED>33</KMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>4</NETADAPTER_VERSION_MINOR>
+ <NETADAPTER_MINIMUM_VERSION_REQUIRED>4</NETADAPTER_MINIMUM_VERSION_REQUIRED>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <WppEnabled>true</WppEnabled>
+ <AdditionalIncludeDirectories>$(DDK_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(DDK_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(DDK_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(DDK_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(DDK_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(DDK_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(DDK_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(DDK_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <Inf Include="wificxsampleclientkm.inf" />
+ </ItemGroup>
+ <ItemGroup>
+ <FilesToPackage Include="$(TargetPath)" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\drivercode\adapter.cpp" />
+ <ClCompile Include="..\drivercode\wifirequest.cpp" />
+ <ClCompile Include="..\drivercode\device.cpp" />
+ <ClCompile Include="..\drivercode\driver.cpp" />
+ <ClCompile Include="..\drivercode\memorymanagement.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\drivercode\umkmfusion.h" />
+ <ClInclude Include="..\drivercode\wifirequest.h" />
+ <ClInclude Include="..\drivercode\testdata.h" />
+ <ClInclude Include="..\drivercode\precomp.h" />
+ <ClInclude Include="..\drivercode\trace.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj.filters b/network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj.filters
new file mode 100644
index 00000000..d1dec69c
--- /dev/null
+++ b/network/wlan/WIFICX/km/wificxsampleclientkm.vcxproj.filters
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="Driver Files">
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
+ <Extensions>inf;inv;inx;mof;mc;</Extensions>
+ </Filter>
+ <Filter Include="Source Files\controlpath">
+ <UniqueIdentifier>{eed063b0-f52a-4d8e-b03f-1f616b73061c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\datapath">
+ <UniqueIdentifier>{56f07a12-b9fb-4ff6-a9b5-e4af54eed417}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\firmware">
+ <UniqueIdentifier>{58bc1adc-c940-478a-898b-59d217c27f36}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Inf Include="wificxsampleclientkm.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\common\adapter.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\device.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\driver.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\new.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\power.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\controlpath\wifirequest.cpp">
+ <Filter>Source Files\controlpath</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\datapath\rxqueue.cpp">
+ <Filter>Source Files\datapath</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\datapath\txqueue.cpp">
+ <Filter>Source Files\datapath</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\common\datapath\netringiterator.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\datapath\rxqueue.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\datapath\txqueue.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\firmware\testdata.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\controlpath\wifirequest.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\precomp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\trace.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/network/wlan/WIFICX/um/wificxsampleclientum.inf b/network/wlan/WIFICX/um/wificxsampleclientum.inf
new file mode 100644
index 00000000..6ed871d4
--- /dev/null
+++ b/network/wlan/WIFICX/um/wificxsampleclientum.inf
Binary files differ
diff --git a/network/wlan/WIFICX/um/wificxsampleclientum.vcxproj b/network/wlan/WIFICX/um/wificxsampleclientum.vcxproj
new file mode 100644
index 00000000..5e4d00b9
--- /dev/null
+++ b/network/wlan/WIFICX/um/wificxsampleclientum.vcxproj
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <ItemGroup>
+ <Inf Include="wificxsampleclientum.inf" />
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C804D7D0-80D8-1409-44DA-91EF3260D07F}</ProjectGuid>
+ <TemplateGuid>{2177f19c-eb4c-4687-9e7f-f9eec1f12cf1}</TemplateGuid>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
+ <Configuration>Debug</Configuration>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
+ <RootNamespace>wificxsampleclientum</RootNamespace>
+ </PropertyGroup>
+ <PropertyGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset>
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <PropertyGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset>
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <PropertyGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset>
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <PropertyGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset>
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR>
+ <UMDF_VERSION_MINOR>35</UMDF_VERSION_MINOR>
+ <UMDF_MINIMUM_VERSION_REQUIRED>35</UMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>5</NETADAPTER_VERSION_MINOR>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR>
+ <UMDF_VERSION_MINOR>35</UMDF_VERSION_MINOR>
+ <UMDF_MINIMUM_VERSION_REQUIRED>35</UMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>5</NETADAPTER_VERSION_MINOR>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR>
+ <UMDF_VERSION_MINOR>35</UMDF_VERSION_MINOR>
+ <UMDF_MINIMUM_VERSION_REQUIRED>35</UMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>5</NETADAPTER_VERSION_MINOR>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <UMDF_VERSION_MAJOR>2</UMDF_VERSION_MAJOR>
+ <UMDF_VERSION_MINOR>35</UMDF_VERSION_MINOR>
+ <UMDF_MINIMUM_VERSION_REQUIRED>35</UMDF_MINIMUM_VERSION_REQUIRED>
+ <NetAdapterDriver>true</NetAdapterDriver>
+ <NETADAPTER_VERSION_MAJOR>2</NETADAPTER_VERSION_MAJOR>
+ <NETADAPTER_VERSION_MINOR>5</NETADAPTER_VERSION_MINOR>
+ <WifiDriver>true</WifiDriver>
+ <WIFI_VERSION_MAJOR>1</WIFI_VERSION_MAJOR>
+ <WIFI_VERSION_MINOR>2</WIFI_VERSION_MINOR>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <DebuggerFlavor>DbgengRemoteDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <DebuggerFlavor>DbgengRemoteDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <DebuggerFlavor>DbgengRemoteDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <DebuggerFlavor>DbgengRemoteDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(WDK_UM_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIFICX_TEMPORARY_REMOVED_FOR_USERMODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WppEnabled>true</WppEnabled>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WDK_UM_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(WDK_UM_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIFICX_TEMPORARY_REMOVED_FOR_USERMODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WppEnabled>true</WppEnabled>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WDK_UM_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(WDK_UM_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIFICX_TEMPORARY_REMOVED_FOR_USERMODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WppEnabled>true</WppEnabled>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WDK_UM_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(WDK_UM_INC_PATH)wlan\2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIFICX_TEMPORARY_REMOVED_FOR_USERMODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WppEnabled>true</WppEnabled>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WDK_UM_LIB_PATH)wlan\2.0\WificxTLVGenParse.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <FilesToPackage Include="$(TargetPath)" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\drivercode\adapter.h" />
+ <ClInclude Include="..\drivercode\device.h" />
+ <ClInclude Include="..\drivercode\precomp.h" />
+ <ClInclude Include="..\drivercode\SharedTypes.h" />
+ <ClInclude Include="..\drivercode\testdata.h" />
+ <ClInclude Include="..\drivercode\trace.h" />
+ <ClInclude Include="..\drivercode\wifirequest.h" />
+ <ClInclude Include="..\drivercode\umkmfusion.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\drivercode\adapter.cpp" />
+ <ClCompile Include="..\drivercode\device.cpp" />
+ <ClCompile Include="..\drivercode\driver.cpp" />
+ <ClCompile Include="..\drivercode\memorymanagement.cpp" />
+ <ClCompile Include="..\drivercode\wifirequest.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/network/wlan/WIFICX/um/wificxsampleclientum.vcxproj.filters b/network/wlan/WIFICX/um/wificxsampleclientum.vcxproj.filters
new file mode 100644
index 00000000..20ff1a35
--- /dev/null
+++ b/network/wlan/WIFICX/um/wificxsampleclientum.vcxproj.filters
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="Driver Files">
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
+ <Extensions>inf;inv;inx;mof;mc;</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Inf Include="wificxsampleclientum.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\common\adapter.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\device.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\precomp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\testdata.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\trace.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\common\wifirequest.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="UMKMFusion .h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\common\adapter.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\device.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\driver.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\memorymanagement.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\common\wifirequest.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/network/wlan/WIFICX/wificxsampleclient.sln b/network/wlan/WIFICX/wificxsampleclient.sln
new file mode 100644
index 00000000..0975a4da
--- /dev/null
+++ b/network/wlan/WIFICX/wificxsampleclient.sln
@@ -0,0 +1,48 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34221.43
+MinimumVisualStudioVersion = 12.0
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wificxsampleclientkm", "km\wificxsampleclientkm.vcxproj", "{272D3E7B-C7BA-66D1-E05D-B9723A6F0777}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wificxsampleclientum", "um\wificxsampleclientum.vcxproj", "{C804D7D0-80D8-1409-44DA-91EF3260D07F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Debug|ARM64.Build.0 = Debug|ARM64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Debug|x64.ActiveCfg = Debug|x64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Debug|x64.Build.0 = Debug|x64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Debug|x64.Deploy.0 = Debug|x64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Release|ARM64.ActiveCfg = Release|ARM64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Release|ARM64.Build.0 = Release|ARM64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Release|ARM64.Deploy.0 = Release|ARM64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Release|x64.ActiveCfg = Release|x64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Release|x64.Build.0 = Release|x64
+ {272D3E7B-C7BA-66D1-E05D-B9723A6F0777}.Release|x64.Deploy.0 = Release|x64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Debug|ARM64.Build.0 = Debug|ARM64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Debug|x64.ActiveCfg = Debug|x64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Debug|x64.Build.0 = Debug|x64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Debug|x64.Deploy.0 = Debug|x64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Release|ARM64.ActiveCfg = Release|ARM64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Release|ARM64.Build.0 = Release|ARM64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Release|ARM64.Deploy.0 = Release|ARM64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Release|x64.ActiveCfg = Release|x64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Release|x64.Build.0 = Release|x64
+ {C804D7D0-80D8-1409-44DA-91EF3260D07F}.Release|x64.Deploy.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {37680CDC-EACB-499B-BA11-7C376F53DB71}
+ EndGlobalSection
+EndGlobal