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