1981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 2981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 802_11Defs.h 3981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 4981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. 5981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All rights reserved. 6981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 7981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Redistribution and use in source and binary forms, with or without 8981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * modification, are permitted provided that the following conditions 9981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * are met: 10981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 11981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Redistributions of source code must retain the above copyright 12981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * notice, this list of conditions and the following disclaimer. 13981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Redistributions in binary form must reproduce the above copyright 14981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * notice, this list of conditions and the following disclaimer in 15981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * the documentation and/or other materials provided with the 16981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * distribution. 17981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Neither the name Texas Instruments nor the names of its 18981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * contributors may be used to endorse or promote products derived 19981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * from this software without specific prior written permission. 20981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 21981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 33981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 34981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 35981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/**************************************************************************** 36981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 37981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * MODULE: 802_11Defs.h 38981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * PURPOSE: Contains 802.11 defines/structures 39981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 40981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ****************************************************************************/ 41981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 42981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifndef _802_11_INFO_DEFS_H 43981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define _802_11_INFO_DEFS_H 44981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 45981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "tidef.h" 46981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "osDot11.h" 47981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 48981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "osDot11XCC.h" 49981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 50981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 51981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_OUI_LEN 3 52981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_COUNTRY_STRING_LEN 3 53981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MAX_SUPPORTED_RATES 32 54981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 55981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Maximum size of beacon or probe-request information element */ 56981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_PROBE_REQ_MAX_LENGTH 80 57981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 58981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 59981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 60981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 61981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_B_MODE = 1, 62981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_A_MODE = 2, 63981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_G_MODE = 3, 64981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_DUAL_MODE = 4, 65981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_N_MODE = 5, 66981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 67981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_MAX_MODE 68981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 69981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} EDot11Mode; 70981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 71981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 72981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* FrameControl field of the 802.11 header */ 73981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 74981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/**/ 75981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* bit 15 14 13 12 11 10 9 8 7-4 3-2 1-0*/ 76981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +-------+-----+------+-----+-------+------+------+----+---------+------+----------+*/ 77981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | Order | WEP | More | Pwr | Retry | More | From | To | Subtype | Type | Protocol |*/ 78981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | | | Data | Mgmt| | Frag | DS | DS | | | Version |*/ 79981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +-------+-----+------+-----+-------+------+------+----+---------+------+----------+*/ 80981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 1 1 1 1 1 1 1 1 4 2 2*/ 81981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 82981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 83981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_PROT_VERSION_MASK ( 3 << 0 ) 84981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_PROT_VERSION ( 0 << 0 ) 85981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 86981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_TYPE_MASK ( 3 << 2 ) 87981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 88981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 89981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_TYPE_MGMT = ( 0 << 2 ), 90981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_TYPE_CTRL = ( 1 << 2 ), 91981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_TYPE_DATA = ( 2 << 2 ) 92981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Fc_Type_e; 93981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 94981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_SUB_MASK ( 0x0f << 4 ) 95981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 96981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 97981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Management subtypes */ 98981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_ASSOC_REQ = ( 0 << 4 ), 99981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_ASSOC_RESP = ( 1 << 4 ), 100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_REASSOC_REQ = ( 2 << 4 ), 101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_REASSOC_RESP = ( 3 << 4 ), 102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_PROBE_REQ = ( 4 << 4 ), 103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_PROBE_RESP = ( 5 << 4 ), 104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_BEACON = ( 8 << 4 ), 105981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_ATIM = ( 9 << 4 ), 106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DISASSOC = ( 10 << 4 ), 107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_AUTH = ( 11 << 4 ), 108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DEAUTH = ( 12 << 4 ), 109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_ACTION = ( 13 << 4 ), 110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Control subtypes */ 112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_BAR = ( 8 << 4 ), 113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_BA = ( 9 << 4 ), 114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_PS_POLL = ( 10 << 4 ), 115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_RTS = ( 11 << 4 ), 116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_CTS = ( 12 << 4 ), 117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_ACK = ( 13 << 4 ), 118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_CF_END = ( 14 << 4 ), 119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_CF_END_CF_ACK = ( 15 << 4 ), 120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Data subtypes */ 122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DATA = ( 0 << 4 ), 123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DATA_CF_ACK = ( 1 << 4 ), 124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DATA_CF_POLL = ( 2 << 4 ), 125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DATA_CF_ACK_CF_POLL = ( 3 << 4 ), 126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_NULL_FUNCTION = ( 4 << 4 ), 127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_CF_ACK = ( 5 << 4 ), 128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_CF_POLL = ( 6 << 4 ), 129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_CF_ACK_CF_POLL = ( 7 << 4 ), 130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DATA_QOS = ( 8 << 4 ), 131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_SUB_DATA_NULL_QOS = ( 12 << 4 ) 132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Fc_Sub_Type_e; 133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_TYPESUBTYPE_MASK ( DOT11_FC_TYPE_MASK | DOT11_FC_SUB_MASK ) 135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_ASSOC_REQ = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_ASSOC_REQ ), 138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_ASSOC_RESP = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_ASSOC_RESP ), 139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_REASSOC_REQ = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_REASSOC_REQ ), 140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_REASSOC_RESP = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_REASSOC_RESP ), 141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_PROBE_REQ = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_PROBE_REQ ), 142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_PROBE_RESP = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_PROBE_RESP ), 143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_BEACON = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_BEACON ), 144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_ATIM = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_ATIM ), 145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DISASSOC = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_DISASSOC ), 146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_AUTH = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_AUTH ), 147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DEAUTH = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_DEAUTH ), 148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_ACTION = ( DOT11_FC_TYPE_MGMT | DOT11_FC_SUB_ACTION ), 149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_PS_POLL = ( DOT11_FC_TYPE_CTRL | DOT11_FC_SUB_PS_POLL ), 150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_RTS = ( DOT11_FC_TYPE_CTRL | DOT11_FC_SUB_RTS ), 151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_CTS = ( DOT11_FC_TYPE_CTRL | DOT11_FC_SUB_CTS ), 152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_ACK = ( DOT11_FC_TYPE_CTRL | DOT11_FC_SUB_ACK ), 153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_CF_END = ( DOT11_FC_TYPE_CTRL | DOT11_FC_SUB_CF_END ), 154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_CF_END_CF_ACK = ( DOT11_FC_TYPE_CTRL | DOT11_FC_SUB_CF_END_CF_ACK ), 155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_DATA ), 156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA_CF_ACK = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_DATA_CF_ACK ), 157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA_CF_POLL = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_DATA_CF_POLL ), 158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA_CF_ACK_CF_POLL = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_DATA_CF_ACK_CF_POLL ), 159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA_NULL_FUNCTION = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_NULL_FUNCTION ), 160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_CF_ACK = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_CF_ACK ), 161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_CF_POLL = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_CF_POLL ), 162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_CF_ACK_CF_POLL = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_CF_ACK_CF_POLL ), 163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA_QOS = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_DATA_QOS ), 164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_DATA_NULL_QOS = ( DOT11_FC_TYPE_DATA | DOT11_FC_SUB_DATA_NULL_QOS ) 165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Fc_Type_Sub_Type_e; 166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_TO_DS = ( 1 << 8 ), 170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_FROM_DS = ( 1 << 9 ), 171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_MORE_FRAG = ( 1 << 10 ), 172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_RETRY = ( 1 << 11 ), 173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_PWR_MGMT = ( 1 << 12 ), 174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_MORE_DATA = ( 1 << 13 ), 175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_WEP = ( 1 << 14 ), 176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_FC_ORDER = ( 1 << 15 ) 177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Fc_Other_e; 178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_ESS = ( 1 ), 182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_IESS = ( 1 << 1 ), 183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_CF_POLLABE = ( 1 << 2 ), 184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_CF_POLL_REQ = ( 1 << 3 ), 185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_PRIVACY = ( 1 << 4 ), 186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_PREAMBLE = ( 1 << 5 ), 187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_PBCC = ( 1 << 6 ), 188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPABILITY_AGILE = ( 1 << 7 ) 189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Capability_e; 190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_TO_DS_SHIFT 8 192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_FROM_DS_SHIFT 9 193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_MORE_FRAG_SHIFT 10 194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_RETRY_SHIFT 11 195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_PWR_MGMT_SHIFT 12 196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_MORE_DATA_SHIFT 13 197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_WEP_SHIFT 14 198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FC_ORDER_SHIFT 15 199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_WEP_ON(fc) ((1 << DOT11_FC_WEP_SHIFT) & (fc)) 201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_DATA(fc) (((DOT11_FC_TYPE_MASK) & (fc)) == DOT11_FC_TYPE_DATA) 202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_CTRL(fc) (((DOT11_FC_TYPE_MASK) & (fc)) == DOT11_FC_TYPE_CTRL) 203981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_MGMT(fc) (((DOT11_FC_TYPE_MASK) & (fc)) == DOT11_FC_TYPE_MGMT) 204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_LEGACY_DATA(fc) (((DOT11_FC_TYPESUBTYPE_MASK) & (fc)) == DOT11_FC_DATA) 205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_AUTH(fc) (((DOT11_FC_AUTH) & (fc)) == DOT11_FC_AUTH) 206981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_QOS_FRAME(fc) ((((fc) & (DOT11_FC_TYPESUBTYPE_MASK)) == DOT11_FC_DATA_QOS) || \ 207981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt (((fc) & (DOT11_FC_TYPESUBTYPE_MASK)) == DOT11_FC_DATA_NULL_QOS) ) 208981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IS_HT_FRAME(fc) ((fc) & (DOT11_FC_ORDER)) 209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 210981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 211981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 212981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TUs_TO_MSECs(x) (((x) << 10) / 1000) 213981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 214981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TIME_STAMP_LEN 8 215981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 216981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* SequenceControl field of the 802.11 header */ 217981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/**/ 218981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* bit 15 - 4 3 - 0*/ 219981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +-------------------+-----------+*/ 220981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | Sequence Number | Fragment |*/ 221981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | | Number |*/ 222981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +-------------------+-----------+*/ 223981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 12 4*/ 224981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 225981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 226981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 227981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_SC_FRAG_NUM_MASK = ( 0xf << 0 ), 228981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_SC_SEQ_NUM_MASK = ( 0xfff << 4 ) 229981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Sc_t; 230981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 231981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* QoS Control field of the 802.11 header */ 232981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QOS_CONTROL_FIELD_TID_BITS 0x000f 233981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QOS_CONTROL_FIELD_A_MSDU_BITS 0x0080 234981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 235981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QOS_CONTROL_ACK 0x0000 236981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QOS_CONTROL_DONT_ACK 0x0020 237981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 238981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 239981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 240981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 fc; 241981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 duration; 242981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr address1; 243981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr address2; 244981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr address3; 245981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 seqCtrl; 246981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 qosControl; 247981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* TMacAddr address4;*/ 248981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_header_t; 249981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 250981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 251981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 252981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 fc; 253981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 duration; 254981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr address1; 255981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr address2; 256981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr address3; 257981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 seqCtrl; 258981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} legacy_dot11_header_t; 259981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 260981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 261981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 262981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 263981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 264981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 fc; 265981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 duration; 266981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr DA; 267981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr SA; 268981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr BSSID; 269981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 seqCtrl; 270981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_mgmtHeader_t; 271981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 272981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 273981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 274981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 DSAP; 275981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 SSAP; 276981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 Control; 277981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 278981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 Type; 279981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} Wlan_LlcHeader_T; 280981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 281981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 282981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 283981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 fc; 284981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 AID; 285981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr BSSID; 286981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr TA; 287981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_PsPollFrameHeader_t; 288981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 289981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 290981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 291981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 fc; 292981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 duration; 293981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr RA; 294981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TMacAddr TA; 295981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_BarFrameHeader_t; 296981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 297981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 298981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define FCS_SIZE 4 299981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 300981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_HDR_LEN 24 301981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_HT_HDR_LEN 28 302981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_QOS_HDR_LEN 26 303981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_QOS_HT_HDR_LEN 30 304981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_QOS_HT_CONTROL_FIELD_LEN 4 305981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_SNAP_HDR_LEN 8 306981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_WITH_SNAP_HEADER_MAX_SIZE (WLAN_HDR_LEN + WLAN_SNAP_HDR_LEN) 307981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_WITH_SNAP_QOS_HEADER_MAX_SIZE (WLAN_QOS_HDR_LEN + WLAN_SNAP_HDR_LEN) 308981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 309981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define GET_MAX_HEADER_SIZE(macHeaderPointer,headerSize) \ 310981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (IS_QOS_FRAME(*(TI_UINT16*)(macHeaderPointer))) \ 311981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt {\ 312981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (IS_HT_FRAME(*(TI_UINT16*)(macHeaderPointer))) \ 313981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *headerSize = WLAN_QOS_HT_HDR_LEN; \ 314981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt else \ 315981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *headerSize = WLAN_QOS_HDR_LEN; \ 316981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt }\ 317981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt else \ 318981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt {\ 319981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (IS_HT_FRAME(*(TI_UINT16*)(macHeaderPointer))) \ 320981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *headerSize = WLAN_HT_HDR_LEN; \ 321981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt else \ 322981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *headerSize = WLAN_HDR_LEN; \ 323981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 324981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 325981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/**************************************************************************************** 326981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt The next table is defined in 802.11 spec section 7.2.2 for the address field contents : 327981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt To DS From DS Address 1 Address 2 Address 3 Address 4 328981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ------------------------------------------------------------------- 329981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 0 0 DA SA BSSID N/A 330981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 0 1 DA BSSID SA N/A 331981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1 0 BSSID SA DA N/A 332981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1 1 RA TA DA SA 333981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 334981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtNOTE: We only support packets coming from within the DS (i.e. From DS = 0) 335981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*****************************************************************************************/ 336981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* return the destination address used in *dot11_header_t */ 337981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define GET_DA_FROM_DOT11_HEADER_T(pDot11Hdr) ((pDot11Hdr->fc & DOT11_FC_TO_DS) ? (pDot11Hdr->address3) : (pDot11Hdr->address1)) 338981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 339981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 340981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 341981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * MANAGEMENT 342981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * ----------------- 343981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 344981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 345981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* mgmt body max length */ 346981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_MGMT_BODY_LENGTH 2312 347981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* maximal length of beacon body - note that actual beacons may actually be longer 348981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt than this size, at least according to the spec, but so far no larger beacon was seen */ 349981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_BEACON_BODY_LENGTH 350 350981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 351981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* general mgmt frame structure */ 352981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 353981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 354981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_mgmtHeader_t hdr; 355981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 body[MAX_MGMT_BODY_LENGTH]; 356981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_mgmtFrame_t; 357981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 358981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Capabilities Information Field - IN THE AIR */ 359981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/**/ 360981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* bit 15 14 13 12 11 10 9 8 7 - 0*/ 361981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +----------+------+----------+---------+----------+---------+------+-----+---------------+*/ 362981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | Channel | | Short | Privacy | CF Poll | CF | | | RESERVED | */ 363981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | Agility | PBCC | Preamble | | Request | Pollable| IBSS | ESS | |*/ 364981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +----------+------+----------+---------+----------+---------+------+-----+---------------+ */ 365981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 1 1 1 1 1 1 1 1*/ 366981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 367981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 368981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Capabilities Information Field - IN THE MGMT SOFTWARE AFTER THE SWAP */ 369981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/**/ 370981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* bit 15 - 8 7 6 5 4 3 2 1 0*/ 371981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +------------+----------+------+----------+---------+----------+---------+------+-----+*/ 372981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | | Channel | | Short | Privacy | CF Poll | CF | | |*/ 373981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* | Reserved | Agility | PBCC | Preamble | | Request | Pollable| IBSS | ESS |*/ 374981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* +------------+----------+------+----------+---------+----------+---------+------+-----+*/ 375981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 8 1 1 1 1 1 1 1 1*/ 376981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 377981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 378981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 379981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 380981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 381981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_ESS = ( 1 << 0 ), 382981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_IBSS = ( 1 << 1 ), 383981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_CF_POLLABLE = ( 1 << 2 ), 384981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_CF_POLL_REQUEST = ( 1 << 3 ), 385981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_PRIVACY = ( 1 << 4 ), 386981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_SHORT_PREAMBLE = ( 1 << 5 ), 387981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_PBCC = ( 1 << 6 ), 388981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_CHANNEL_AGILITY = ( 1 << 7 ), 389981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_SPECTRUM_MANAGEMENT = ( 1 << 8 ), 390981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_QOS_SUPPORTED = ( 1 << 9 ), 391981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_SHORT_SLOT_TIME = (1 << 10), 392981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 393981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_APSD_SUPPORT = ( 1 << 11), 394981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 395981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_DELAYED_BA = ( 1 << 14), 396981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_CAPS_IMMEDIATE_BA = ( 1 << 15) 397981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 398981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_capabilities_e; 399981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 400981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 401981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 402981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* ESS */ 403981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_ESS_MASK = 1, 404981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_ESS_SHIFT = 0, 405981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 406981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* IBSS */ 407981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_IBSS_MASK = 1, 408981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_IBSS_SHIFT = 1, 409981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 410981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* CF Pollable */ 411981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_CF_POLL_MASK = 1, 412981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_CF_POLL_SHIFT = 2, 413981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 414981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* CF Poll request */ 415981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_CF_REQ_MASK = 1, 416981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_CF_REQ_SHIFT = 3, 417981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 418981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Privacy */ 419981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_PRIVACY_MASK = 1, 420981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_PRIVACY_SHIFT = 4, 421981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 422981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Short Preamble*/ 423981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_PREAMBLE_MASK = 1, 424981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_PREAMBLE_SHIFT = 5, 425981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 426981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* PBCC */ 427981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_PBCC_MASK = 1, 428981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_PBCC_SHIFT = 6, 429981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 430981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Agile */ 431981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_AGILE_MASK = 1, 432981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_AGILE_SHIFT = 7, 433981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 434981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Slot time */ 435981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_SLOT_TIME_MASK = 1, 436981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_SLOT_TIME_SHIFT = 10, 437981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 438981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* APSD */ 439981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_APSD_MASK = 1, 440981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CAP_APSD_SHIFT = 11 441981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 442981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 443981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} wdrv_mgmtCapabilities_e; 444981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 445981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 446981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 447981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 802.11 Information elements 448981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * --------------------------- 449981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 450981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 451981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef TI_UINT8 dot11_eleHdr_t[2]; /* Byte-0: IE-ID, Byte-1: IE-Length */ 452981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 453981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* fixed fields lengths, except of currentAP & timestamp*/ 454981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define FIX_FIELD_LEN 2 455981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 456981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* SSID Information Element */ 457981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_SSID_ELE_ID 0 458981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 459981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Max SSID length */ 460981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_SSID_MAX_LEN 32 461981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 462981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 463981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 464981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 465981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt char serviceSetId[DOT11_SSID_MAX_LEN]; 466981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_SSID_t; 467981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 468981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 469981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Supportted rates Information Element */ 470981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_SUPPORTED_RATES_ELE_ID 1 471981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_EXT_SUPPORTED_RATES_ELE_ID 50 472981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 473981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 474981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 475981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 rates[DOT11_MAX_SUPPORTED_RATES]; 476981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_RATES_t; 477981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 478981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 479981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ERP_IE_NON_ERP_PRESENT_MASK 0x1 480981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ERP_IE_USE_PROTECTION_MASK 0x2 481981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ERP_IE_BARKER_PREAMBLE_MODE_MASK 0x4 482981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_ERP_IE_ID 42 483981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 484981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 485981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 486981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 ctrl; 487981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_ERP_t; 488981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 489981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* RSN Information Element */ 490981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_RSN_IE 3 491981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_RSN_MAX 255 492981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 493981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 494981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 495981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 rsnIeData[DOT11_RSN_MAX]; 496981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_RSN_t; 497981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 498981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* General definitions needed by rsn.c */ 499981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define IV_FIELD_SIZE 4 500981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ICV_FIELD_SIZE 4 501981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MIC_FIELD_SIZE 8 502981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define EIV_FIELD_SIZE 4 503981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WEP_AFTER_HEADER_FIELD_SIZE IV_FIELD_SIZE 504981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TKIP_AFTER_HEADER_FIELD_SIZE (IV_FIELD_SIZE + EIV_FIELD_SIZE) 505981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AES_AFTER_HEADER_FIELD_SIZE 8 506981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 507981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 508981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* DS params Information Element */ 509981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_DS_PARAMS_ELE_ID 3 510981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_DS_PARAMS_ELE_LEN 1 511981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 512981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 513981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 514981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 currChannel; 515981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_DS_PARAMS_t; 516981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 517981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 518981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* DS params Information Element */ 519981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_IBSS_PARAMS_ELE_ID 6 520981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_IBSS_PARAMS_ELE_LEN 2 521981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 522981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 523981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 524981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 atimWindow; 525981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_IBSS_PARAMS_t; 526981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 527981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FH_PARAMS_ELE_ID 2 528981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_FH_PARAMS_ELE_LEN 5 529981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 530981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 531981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 532981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 dwellTime; 533981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 hopSet; 534981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 hopPattern; 535981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 hopIndex; 536981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_FH_PARAMS_t; 537981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 538981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* tim Information Element */ 539981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_TIM_ELE_ID 5 540981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_PARTIAL_VIRTUAL_BITMAP_MAX 251 541981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 542981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 543981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 544981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 dtimCount; 545981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 dtimPeriod; 546981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 bmapControl; 547981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 partialVirtualBmap[DOT11_PARTIAL_VIRTUAL_BITMAP_MAX]; 548981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TIM_t; 549981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 550981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* tim Information Element */ 551981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CF_ELE_ID 4 552981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CF_PARAMS_ELE_LEN 6 553981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 554981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 555981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 556981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 cfpCount; 557981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 cfpPeriod; 558981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 cfpMaxDuration; 559981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 cfpDurRemain; 560981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_CF_PARAMS_t; 561981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 562981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Challenge text Information Element */ 563981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CHALLENGE_TEXT_ELE_ID 16 564981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CHALLENGE_TEXT_MAX 253 565981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 566981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 567981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 568981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 text[ DOT11_CHALLENGE_TEXT_MAX ]; 569981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_CHALLENGE_t; 570981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 571981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 572981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_NUM_OF_MAX_TRIPLET_CHANNEL 32 573981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 574981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 575981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 576981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 firstChannelNumber; 577981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 numberOfChannels; 578981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 maxTxPowerLevel; 579981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TripletChannel_t; 580981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 581981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 582981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 583981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 CountryString[DOT11_COUNTRY_STRING_LEN]; 584981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_TripletChannel_t tripletChannels[DOT11_NUM_OF_MAX_TRIPLET_CHANNEL]; 585981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_countryIE_t; 586981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 587981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 588981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Country Inforamtion Element */ 589981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_COUNTRY_ELE_ID 7 590981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_COUNTRY_ELE_LEN_MAX ( ((DOT11_NUM_OF_MAX_TRIPLET_CHANNEL+1)*3) + !((DOT11_NUM_OF_MAX_TRIPLET_CHANNEL&0x1))) 591981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 592981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 593981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 594981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_countryIE_t countryIE; 595981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_COUNTRY_t; 596981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 597981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 598981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Power Constraint Information Element */ 599981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_POWER_CONSTRAINT_ELE_ID (32) 600981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_POWER_CONSTRAINT_ELE_LEN (1) 601981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 602981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 603981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 604981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 powerConstraint; 605981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_POWER_CONSTRAINT_t; 606981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 607981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 608981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 609981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Power Capability Information Element */ 610981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CAPABILITY_ELE_ID (33) 611981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CAPABILITY_ELE_LEN (2) 612981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 613981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 614981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 615981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 minTxPower; 616981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 maxTxPower; 617981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_CAPABILITY_t; 618981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 619981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* TPC request Information Element */ 620981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_TPC_REQUEST_ELE_ID (34) 621981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_TPC_REQUEST_ELE_LEN (0) 622981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 623981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 624981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 625981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TPC_REQUEST_t; 626981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 627981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* TPC report Information Element */ 628981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_TPC_REPORT_ELE_ID (35) 629981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_TPC_REPORT_ELE_LEN (2) 630981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 631981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 632981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 633981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 transmitPower; 634981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 linkMargin; 635981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TPC_REPORT_t; 636981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 637981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 638981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 639981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 640981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Cell Transmit Power Information Element */ 641981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CELL_TP_ELE_ID (150) 642981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CELL_TP_ELE_LEN (6) 643981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 644981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 645981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 646981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 647981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui[4]; 648981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 power; 649981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 reserved; 650981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_CELL_TP_t; 651981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 652981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CELL_TP \ 653981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_CELL_TP_t *cellTP; 654981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 655981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#else /* XCC_MODULE_INCLUDED */ 656981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 657981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CELL_TP 658981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 659981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* XCC_MODULE_INCLUDED */ 660981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 661981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 662981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Channel Supported Information Element */ 663981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CHANNEL_SUPPORTED_ELE_ID (36) 664981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CHANNEL_SUPPORTED_ELE_LEN (26) 665981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 666981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 667981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 668981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 supportedChannel[DOT11_CHANNEL_SUPPORTED_ELE_LEN]; 669981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 670981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_CHANNEL_SUPPORTED_t; 671981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 672981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Channel Switch Announcement Information Element */ 673981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CHANNEL_SWITCH_ELE_ID (37) 674981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_CHANNEL_SWITCH_ELE_LEN (3) 675981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 676981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 677981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 678981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 channelSwitchMode; 679981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 channelNumber; 680981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 channelSwitchCount; 681981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_CHANNEL_SWITCH_t; 682981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 683981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_NUM_REQ (16) 684981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 685981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Measurement request Information Element */ 686981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MEASUREMENT_REQUEST_ELE_ID (38) 687981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MEASUREMENT_REQUEST_LEN (2) 688981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MEASUREMENT_REQUEST_ELE_LEN (3 + DOT11_MEASUREMENT_REQUEST_LEN*MAX_NUM_REQ) 689981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 690981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 691981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 692981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementToken; 693981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementMode; 694981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementType; 695981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementRequests[DOT11_MEASUREMENT_REQUEST_LEN*MAX_NUM_REQ]; 696981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_MEASUREMENT_REQUEST_t; 697981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 698981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 699981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Quiet Information Element */ 700981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QUIET_ELE_ID (40) 701981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QUIET_ELE_LEN (6) 702981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 703981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 704981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 705981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 quietCount; 706981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 quietPeriod; 707981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 quietDuration; 708981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 quietOffset; 709981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_QUIET_t; 710981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 711981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 712981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* QoS Capability Information Element */ 713981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QOS_CAPABILITY_ELE_ID (46) 714981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_QOS_CAPABILITY_ELE_LEN (1) 715981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 716981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AC_APSD_FLAGS_MASK (1) 717981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define Q_ACK_BITG_MASK (1) 718981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_SP_LENGTH_MASK (3) 719981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MORE_DATA_ACK_MASK (1) 720981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 721981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AC_VO_APSD_FLAGS_SHIFT (0) 722981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AC_VI_APSD_FLAGS_SHIFT (1) 723981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AC_BK_APSD_FLAGS_SHIFT (2) 724981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AC_BE_APSD_FLAGS_SHIFT (3) 725981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define Q_ACK_FLAGS_SHIFT (4) 726981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_SP_LENGTH_SHIFT (5) 727981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MORE_DATA_ACK_SHIFT (7) 728981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 729981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define QOS_CONTROL_UP_SHIFT (0) 730981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 731981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AP_QOS_INFO_UAPSD_MASK (1) 732981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AP_QOS_INFO_UAPSD_SHIFT (7) 733981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 734981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 735981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 736981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 737981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 QosInfoField; 738981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_QOS_CAPABILITY_IE_t; 739981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 740981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* WPS Information Element */ 741981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WPS_ELE_ID (221) 742981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WPS_OUI {0x00, 0x50, 0xF2, 0x04} 743981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WPS_OUI_LEN 4 744981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 745981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* WME Information Element */ 746981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WME_ELE_ID (221) 747981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WME_ELE_LEN (7) 748981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 749981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 750981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 751981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 752981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUIType; 753981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUISubType; 754981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 version; 755981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 ACInfoField; 756981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_WME_IE_t; 757981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 758981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 759981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 760981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 761981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 ACI_AIFSN; 762981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 ECWmin_ECWmax; 763981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 TXOPLimit; 764981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_QOS_AC_IE_ParametersRecord_t; 765981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 766981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 767981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 768981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_QOS_AC_IE_ParametersRecord_t ACBEParametersRecord; 769981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_QOS_AC_IE_ParametersRecord_t ACBKParametersRecord; 770981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_QOS_AC_IE_ParametersRecord_t ACVIParametersRecord; 771981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_QOS_AC_IE_ParametersRecord_t ACVOParametersRecord; 772981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_ACParameters_t; 773981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 774981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 775981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* WME Parameter Information Element */ 776981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WME_PARAM_ELE_ID (221) 777981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WME_PARAM_ELE_LEN (24) 778981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 779981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 780981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 781981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 782981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUIType; 783981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUISubType; 784981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 version; 785981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 ACInfoField; 786981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 reserved; 787981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_ACParameters_t WME_ACParameteres; 788981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_WME_PARAM_t; 789981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 790981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 791981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 802.11n HT Information Element */ 792981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_HT_CAPABILITIES_ELE_LEN (26) 793981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_HT_INFORMATION_ELE_LEN (22) 794981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 795981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_HT_CAPABILITIES_MCS_RATE_OFFSET (3) 796981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_HT_INFORMATION_MCS_RATE_OFFSET (6) 797981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 798981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 799981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 800981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t tHdr; 801981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 aHtCapabilitiesIe[DOT11_HT_CAPABILITIES_ELE_LEN]; /* HT capabilities IE unparsed */ 802981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} Tdot11HtCapabilitiesUnparse; 803981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 804981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 805981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 806981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t tHdr; 807981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 aHtInformationIe[DOT11_HT_INFORMATION_ELE_LEN]; /* HT Information IE unparsed */ 808981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} Tdot11HtInformationUnparse; 809981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 810981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* BA session bits mask */ 811981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_BAR_CONTROL_FIELD_TID_BITS 0xf000 812981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_BA_PARAMETER_SET_FIELD_TID_BITS 0x003C 813981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_BA_PARAMETER_SET_FIELD_WINSIZE_BITS 0xffC0 814981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_DELBA_PARAMETER_FIELD_TID_BITS 0xf000 815981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 816981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* action field BA frames */ 817981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 818981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 819981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_BA_ACTION_ADDBA = 0, 820981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_BA_ACTION_DELBA = 2 821981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} Edot11BaAction; 822981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 823981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 824981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* WiFi Simple Config Information Element */ 825981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_PARAM_ELE_ID (221) 826981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 827981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_SELECTED_REGISTRAR_CONFIG_METHODS 0x1053 828981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_SELECTED_REGISTRAR_CONFIG_METHODS_PIN 0xC 829981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_SELECTED_REGISTRAR_CONFIG_METHODS_PBC 0x80 830981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 831981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_DEVICE_PASSWORD_ID 0x1012 832981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_DEVICE_PASSWORD_ID_PIN 0x0000 833981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_DEVICE_PASSWORD_ID_PBC 0x0004 834981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 835981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* WiFi Simple Config Parameter Information Element */ 836981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_PROBE_REQ_PARAM_ELE_LEN (22) 837981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_WSC_BEACON_MAX_LENGTH 160 838981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 839981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 840981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 841981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 842981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 843981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUIType; 844981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 WSCBeaconOrProbIE[DOT11_WSC_BEACON_MAX_LENGTH]; 845981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_WSC_t; 846981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 847981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WPA_OUI_TYPE (1) 848981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WME_OUI_TYPE (2) 849981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WSC_OUI_TYPE (4) 850981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WME_OUI_SUB_TYPE_IE (0) 851981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WME_OUI_SUB_TYPE_PARAMS_IE (1) 852981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WME_VERSION (1) 853981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define dot11_WME_ACINFO_MASK 0x0f 854981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 855981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* -------------------- TSPEC ----------------- */ 856981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 857981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 858981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 859981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsInfoArr[3]; 860981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 861981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} tsInfo_t; 862981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 863981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 864981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 865981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* This structure is part of the TSPEC structure. It was seperated since there are some cases (such as DEL_TS), which we dont need 866981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtto send ALL the TSPEC structure, but only as far as TsInfo. The TSPEC structure contains this smaller structure */ 867981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 868981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 869981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 870981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 871981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 872981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui_type; 873981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui_subtype; 874981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 version; 875981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 876981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt tsInfo_t tsInfoField; 877981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_WME_TSPEC_IE_hdr_t; 878981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 879981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 880981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 881981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 882981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_WME_TSPEC_IE_hdr_t tHdr; 883981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 884981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 nominalMSDUSize; 885981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 maximumMSDUSize; 886981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 minimumServiceInterval; 887981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 maximumServiceInterval; 888981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 inactivityInterval; 889981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 suspensionInterval; 890981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 serviceStartTime; 891981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 minimumDataRate; 892981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 meanDataRate; 893981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 peakDataRate; 894981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 maximumBurstSize; 895981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 delayBound; 896981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 minimumPHYRate; 897981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 surplusBandwidthAllowance; 898981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 mediumTime; 899981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 900981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_WME_TSPEC_IE_t; 901981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 902981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 903981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WME_TSPEC_IE_ID 221 904981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WME_TSPEC_IE_LEN 61 905981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WME_TSPEC_IE_TSINFO_LEN 9 906981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WME_TSPEC_IE_OUI_TYPE 0x02 907981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WME_TSPEC_IE_OUI_SUB_TYPE 0x02 908981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WME_TSPEC_IE_VERSION 0x01 909981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 910981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* OUI TYPE values that can be present in management packets inside Cisco vendor specific IE */ 911981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 912981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 913981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TS_METRIX_OUI_TYPE = 0x07, 914981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TS_RATE_SET_OUI_TYPE = 0x08, 915981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt EDCA_LIFETIME_OUI_TYPE = 0x09 916981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} XCC_IE_OUI_TYPE_t; 917981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 918981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ADDTS_REQUEST_ACTION 0x00 919981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ADDTS_RESPONSE_ACTION 0x01 920981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DELTS_ACTION 0x02 921981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 922981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ADDTS_STATUS_CODE_SUCCESS 0x00 923981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DELTS_CODE_SUCCESS 0x00 924981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 925981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 926981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_0_TRAFFIC_TYPE_MASK 0x01 927981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_0_TSID_MASK 0x1E 928981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_0_DIRECTION_MASK 0x60 929981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_0_ACCESS_POLICY_MASK 0x80 930981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 931981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_1_ACCESS_POLICY_MASK 0x01 932981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_1_AGGREGATION_MASK 0x02 933981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_1_APSD_MASK 0x04 934981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_1_USER_PRIORITY_MASK 0x38 935981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_1_TSINFO_ACK_POLICY_MASK 0xC0 936981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 937981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_2_SCHEDULE_MASK 0x01 938981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_2_RESERVED_MASK 0xF7 939981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 940981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRAFFIC_TYPE_SHIFT 0 941981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TSID_SHIFT 1 942981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DIRECTION_SHIFT 5 943981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define ACCESS_POLICY_SHIFT 7 944981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define AGGREGATION_SHIFT 1 945981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define APSD_SHIFT 2 946981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define USER_PRIORITY_SHIFT 3 947981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TSINFO_ACK_POLICY_SHIFT 6 948981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define SCHEDULE_SHIFT 0 949981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define RESERVED_SHIFT 1 950981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define SURPLUS_BANDWIDTH_ALLOW 13 951981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 952981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TS_INFO_0_ACCESS_POLICY_EDCA 0x1 953981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define NORMAL_ACKNOWLEDGEMENT 0x00 954981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define NO_SCHEDULE 0x00 955981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define PS_UPSD 0x01 956981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define EDCA_MODE 0x08 957981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define FIX_MSDU_SIZE 0x8000 958981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 959981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WPA_IE_OUI {0x00, 0x50, 0xf2} 960981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define XCC_OUI {0x00, 0x40, 0x96} 961981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 962981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Action field structure 963981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt used for extended management action such as spectrum management */ 964981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef TI_UINT8 dot11_ACTION_FIELD_t[2]; 965981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 966981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 967981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Management frames sub types */ 968981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 969981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 970981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ASSOC_REQUEST = 0, 971981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ASSOC_RESPONSE = 1, 972981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt RE_ASSOC_REQUEST = 2, 973981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt RE_ASSOC_RESPONSE = 3, 974981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt PROBE_REQUEST = 4, 975981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt PROBE_RESPONSE = 5, 976981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt BEACON = 8, 977981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ATIM = 9, 978981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DIS_ASSOC = 10, 979981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt AUTH = 11, 980981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DE_AUTH = 12, 981981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ACTION = 13 982981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11MgmtSubType_e; 983981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 984981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Management frames element IDs */ 985981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 986981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 987981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt SSID_IE_ID = 0, 988981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt SUPPORTED_RATES_IE_ID = 1, 989981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt FH_PARAMETER_SET_IE_ID = 2, 990981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DS_PARAMETER_SET_IE_ID = 3, 991981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CF_PARAMETER_SET_IE_ID = 4, 992981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TIM_IE_ID = 5, 993981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt IBSS_PARAMETER_SET_IE_ID = 6, 994981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt COUNTRY_IE_ID = 7, 995981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CHALLANGE_TEXT_IE_ID = 16, 996981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt POWER_CONSTRAINT_IE_ID = 32, 997981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TPC_REPORT_IE_ID = 35, 998981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CHANNEL_SWITCH_ANNOUNCEMENT_IE_ID = 37, 999981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt QUIET_IE_ID = 40, 1000981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ERP_IE_ID = 42, 1001981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt HT_CAPABILITIES_IE_ID = 45, 1002981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt QOS_CAPABILITY_IE_ID = 46, 1003981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt RSN_IE_ID = 48, 1004981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt EXT_SUPPORTED_RATES_IE_ID = 50, 1005981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt HT_INFORMATION_IE_ID = 61, 1006981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt XCC_EXT_1_IE_ID = 133, 1007981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt XCC_EXT_2_IE_ID = 149, 1008981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CELL_POWER_IE = 150, /*XCC*/ 1009981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt WPA_IE_ID = 221 1010981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1011981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11MgmtIeId_e; 1012981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1013981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Spectrum Management Action fields */ 1014981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 1015981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1016981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt MEASUREMENT_REQUEST = 0, 1017981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt MEASUREMENT_REPORT = 1, 1018981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TPC_REQUEST = 2, 1019981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TPC_REPORT = 3, 1020981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CHANNEL_SWITCH_ANNOUNCEMENT = 4 1021981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11ActionFrameTypes_e; 1022981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1023981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Category fields (such as apectrum management)*/ 1024981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 1025981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1026981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CATAGORY_SPECTRUM_MANAGEMENT = 0, 1027981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CATAGORY_QOS = 1, 1028981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt WME_CATAGORY_QOS = 17, 1029981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt CATAGORY_SPECTRUM_MANAGEMENT_ERROR = 128 1030981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11CategoryTypes_e; 1031981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1032981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1033981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 1034981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Management templates to set to the HAL: 1035981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 1036981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1037981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 1038981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1039981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt typedef struct 1040981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 1041981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_mgmtHeader_t hdr; 1042981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt char infoElements[sizeof( dot11_SSID_t ) + 1043981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_RATES_t ) + 1044981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_RATES_t ) + 1045981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( Tdot11HtCapabilitiesUnparse ) + 1046981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( DOT11_WSC_PROBE_REQ_MAX_LENGTH ) + 1047981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( XCC_radioManagmentCapability_IE_t ) 1048981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ]; 1049981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } probeReqTemplate_t; 1050981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1051981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#else /* XCC_MODULE_INCLUDED */ 1052981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1053981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt typedef struct 1054981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 1055981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_mgmtHeader_t hdr; 1056981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt char infoElements[sizeof( dot11_SSID_t ) + 1057981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_RATES_t ) + 1058981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_RATES_t ) + 1059981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( Tdot11HtCapabilitiesUnparse ) + 1060981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( DOT11_WSC_PROBE_REQ_MAX_LENGTH ) 1061981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ]; 1062981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } probeReqTemplate_t; 1063981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1064981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* XCC_MODULE_INCLUDED */ 1065981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1066981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1067981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1068981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1069981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_mgmtHeader_t hdr; 1070981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 timeStamp[TIME_STAMP_LEN]; 1071981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 beaconInterval; 1072981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 capabilities; 1073981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt char infoElements[ sizeof( dot11_SSID_t ) + 1074981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_RATES_t ) + 1075981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_RATES_t ) + 1076981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_DS_PARAMS_t ) + 1077981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt sizeof( dot11_COUNTRY_t) ]; 1078981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} probeRspTemplate_t; 1079981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1080981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1081981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1082981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_mgmtHeader_t hdr; 1083981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} nullDataTemplate_t; 1084981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1085981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1086981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1087981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_mgmtHeader_t hdr; 1088981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 disconnReason; 1089981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} disconnTemplate_t; /* Deauth or Disassoc */ 1090981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1091981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1092981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1093981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_PsPollFrameHeader_t hdr; 1094981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} psPollTemplate_t; 1095981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1096981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1097981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1098981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_header_t hdr; 1099981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} QosNullDataTemplate_t; 1100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Traffic Stream Rate Set (TSRS) info-elements */ 1102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 1105981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 1106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui_type; 1107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsid; 1108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsNominalRate; 1109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TSRS_STA_IE_t; 1110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 1114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 1115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui_type; 1116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsid; 1117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsRates[8]; 1118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TSRS_IE_t; 1119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* MSDU lifetime info-element */ 1121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 1124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 1125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui_type; 1126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsid; 1127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 msduLifeTime; 1128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_MSDU_LIFE_TIME_IE_t; 1129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 1133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 OUI[3]; 1134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 oui_type; 1135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 tsid; 1136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 state; 1137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT16 measureInterval; 1138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_TS_METRICS_IE_t; 1139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_TSRS_IE_t *trafficStreamParameter; 1143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_MSDU_LIFE_TIME_IE_t *edcaLifetimeParameter; 1144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_TS_METRICS_IE_t *tsMetrixParameter; 1145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} XCCv4IEs_t; 1146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Measurement Report message frame structure */ 1149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MEASUREMENT_REPORT_ELE_ID (39) 1150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MAX_MEASUREMENT_REPORT_LEN (4) 1151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MIN_MEASUREMENT_REPORT_IE_LEN (3) 1152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define DOT11_MEASUREMENT_REPORT_ELE_IE_LEN (DOT11_MIN_MEASUREMENT_REPORT_IE_LEN + DOT11_MAX_MEASUREMENT_REPORT_LEN*MAX_NUM_REQ) 1153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_ACTION_FIELD_t actionField; 1157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 dialogToken; 1158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt dot11_eleHdr_t hdr; 1160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementToken; 1161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementMode; 1162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementType; 1163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT8 measurementReports[DOT11_MAX_MEASUREMENT_REPORT_LEN*MAX_NUM_REQ]; 1164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} MeasurementReportFrame_t; 1165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 1169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_SUCCESSFUL = 0, 1171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_UNSPECIFIED, 1172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_AUTH_REJECT, 1173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_ASSOC_REJECT, 1174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_SECURITY_FAILURE, 1175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_AP_DEAUTHENTICATE, 1176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_AP_DISASSOCIATE, 1177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_ROAMING_TRIGGER, 1178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_DISCONNECT_DURING_CONNECT, 1179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_SG_RESELECT, 1180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt STATUS_MIC_FAILURE = 14, 1181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt MGMT_STATUS_MAX_NUM = 15 1182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} mgmtStatus_e; 1183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Used as a status code in case of STATUS_AUTH_REJECT or STATUS_ASSOC_REJECT that was not received at all */ 1185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define STATUS_PACKET_REJ_TIMEOUT 0xFFFF 1186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* As defined in 802.11 spec section 7.3.1 - status codes for deAuth packet */ 1188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define STATUS_CODE_802_1X_AUTHENTICATION_FAILED 23 1189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* map field included in measurement report IE (only in basic report) */ 1191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum 1192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_BSS_ONLY = (0x01), 1194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_OFDM_ONLY = (0x02), 1195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt DOT11_RADAR_AND_UNIDENTIFIED = (0x0C) 1196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} dot11_Map_Sub_Field_e; 1197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 1200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 1201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt legacy_dot11_header_t dot11Header; 1202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt Wlan_LlcHeader_T snapHeader; 1203981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} legacy_dot11_DataMsduHeader_t; 1204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1206981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_HEADER_TYPE_CONCATENATION 0x01 1207981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_CONCAT_HEADER_LEN 2 1208981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 1210981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* _802_11_INFO_DEFS_H */ 1211