blob: bbe822f4d56cf6e14086a282a020f960ff0c6089 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/*
43 *
Jeff Johnsone7245742012-09-05 17:12:55 -070044
Jeff Johnson295189b2012-06-20 16:38:30 -070045 * Airgo Networks, Inc proprietary. All rights reserved.
46 * Author: Sandesh Goel
Jeff Johnsone7245742012-09-05 17:12:55 -070047
Jeff Johnson295189b2012-06-20 16:38:30 -070048 * Date: 02/25/02
Jeff Johnsone7245742012-09-05 17:12:55 -070049
Jeff Johnson295189b2012-06-20 16:38:30 -070050 * History:-
Jeff Johnsone7245742012-09-05 17:12:55 -070051
Jeff Johnson295189b2012-06-20 16:38:30 -070052 * Date Modified by Modification Information
Jeff Johnsone7245742012-09-05 17:12:55 -070053
Jeff Johnson295189b2012-06-20 16:38:30 -070054 * --------------------------------------------------------------------
Jeff Johnsone7245742012-09-05 17:12:55 -070055
Jeff Johnson295189b2012-06-20 16:38:30 -070056 *
Jeff Johnsone7245742012-09-05 17:12:55 -070057
Jeff Johnson295189b2012-06-20 16:38:30 -070058 */
59
Jeff Johnsone7245742012-09-05 17:12:55 -070060
Jeff Johnson295189b2012-06-20 16:38:30 -070061#ifndef __DPH_GLOBAL_H__
Jeff Johnsone7245742012-09-05 17:12:55 -070062
Jeff Johnson295189b2012-06-20 16:38:30 -070063#define __DPH_GLOBAL_H__
64
Jeff Johnsone7245742012-09-05 17:12:55 -070065
Jeff Johnson295189b2012-06-20 16:38:30 -070066#include "limGlobal.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070067
Jeff Johnson295189b2012-06-20 16:38:30 -070068//#include "parserApi.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070069
Jeff Johnson295189b2012-06-20 16:38:30 -070070#include "sirMacProtDef.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070071
Jeff Johnson295189b2012-06-20 16:38:30 -070072#include "sirMacPropExts.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070073
Jeff Johnson295189b2012-06-20 16:38:30 -070074#include "sirApi.h"
75
Jeff Johnsone7245742012-09-05 17:12:55 -070076
Jeff Johnson295189b2012-06-20 16:38:30 -070077/// Following determines whether statistics are maintained or not
Jeff Johnsone7245742012-09-05 17:12:55 -070078
Jeff Johnson295189b2012-06-20 16:38:30 -070079#define DPH_STATS
80
Jeff Johnsone7245742012-09-05 17:12:55 -070081
Jeff Johnson295189b2012-06-20 16:38:30 -070082/// traffic category not allowed
Jeff Johnsone7245742012-09-05 17:12:55 -070083
Jeff Johnson295189b2012-06-20 16:38:30 -070084#define DPH_TID_NOTALLOWED 0xFF
85
Jeff Johnsone7245742012-09-05 17:12:55 -070086
Jeff Johnson295189b2012-06-20 16:38:30 -070087/// Periodicity of invocation of rate adaptation (in ms)
Jeff Johnsone7245742012-09-05 17:12:55 -070088
Jeff Johnson295189b2012-06-20 16:38:30 -070089#define DPH_RATE_ADAPTATION_PERIOD 20
90
Jeff Johnsone7245742012-09-05 17:12:55 -070091
Jeff Johnson295189b2012-06-20 16:38:30 -070092// Rate indices
Jeff Johnsone7245742012-09-05 17:12:55 -070093
Jeff Johnson295189b2012-06-20 16:38:30 -070094#define DPH_PHY_RATE_1_INDEX 0
Jeff Johnsone7245742012-09-05 17:12:55 -070095
Jeff Johnson295189b2012-06-20 16:38:30 -070096#define DPH_PHY_RATE_2_INDEX 1
Jeff Johnsone7245742012-09-05 17:12:55 -070097
Jeff Johnson295189b2012-06-20 16:38:30 -070098#define DPH_PHY_RATE_5_5_INDEX 2
Jeff Johnsone7245742012-09-05 17:12:55 -070099
Jeff Johnson295189b2012-06-20 16:38:30 -0700100#define DPH_PHY_RATE_11_INDEX 3
Jeff Johnsone7245742012-09-05 17:12:55 -0700101
Jeff Johnson295189b2012-06-20 16:38:30 -0700102#define DPH_PHY_RATE_6_INDEX 4
Jeff Johnsone7245742012-09-05 17:12:55 -0700103
Jeff Johnson295189b2012-06-20 16:38:30 -0700104#define DPH_PHY_RATE_9_INDEX 5
Jeff Johnsone7245742012-09-05 17:12:55 -0700105
Jeff Johnson295189b2012-06-20 16:38:30 -0700106#define DPH_PHY_RATE_12_INDEX 6
Jeff Johnsone7245742012-09-05 17:12:55 -0700107
Jeff Johnson295189b2012-06-20 16:38:30 -0700108#define DPH_PHY_RATE_18_INDEX 7
Jeff Johnsone7245742012-09-05 17:12:55 -0700109
Jeff Johnson295189b2012-06-20 16:38:30 -0700110#define DPH_PHY_RATE_24_INDEX 8
Jeff Johnsone7245742012-09-05 17:12:55 -0700111
Jeff Johnson295189b2012-06-20 16:38:30 -0700112#define DPH_PHY_RATE_36_INDEX 9
Jeff Johnsone7245742012-09-05 17:12:55 -0700113
Jeff Johnson295189b2012-06-20 16:38:30 -0700114#define DPH_PHY_RATE_48_INDEX 10
Jeff Johnsone7245742012-09-05 17:12:55 -0700115
Jeff Johnson295189b2012-06-20 16:38:30 -0700116#define DPH_PHY_RATE_54_INDEX 11
Jeff Johnsone7245742012-09-05 17:12:55 -0700117
Jeff Johnson295189b2012-06-20 16:38:30 -0700118#define DPH_PHY_RATE_72_INDEX 12
Jeff Johnsone7245742012-09-05 17:12:55 -0700119
Jeff Johnson295189b2012-06-20 16:38:30 -0700120#define DPH_PHY_RATE_96_INDEX 13
Jeff Johnsone7245742012-09-05 17:12:55 -0700121
Jeff Johnson295189b2012-06-20 16:38:30 -0700122#define DPH_PHY_RATE_108_INDEX 14
Jeff Johnsone7245742012-09-05 17:12:55 -0700123
Jeff Johnson295189b2012-06-20 16:38:30 -0700124#define DPH_PHY_RATE_144_INDEX 15
Jeff Johnsone7245742012-09-05 17:12:55 -0700125
Jeff Johnson295189b2012-06-20 16:38:30 -0700126#define DPH_PHY_RATE_MAX_INDEX 16
127
Jeff Johnsone7245742012-09-05 17:12:55 -0700128
Jeff Johnson295189b2012-06-20 16:38:30 -0700129/// Maximum time to wait for a management packet to go out (ms)
Jeff Johnsone7245742012-09-05 17:12:55 -0700130
Jeff Johnson295189b2012-06-20 16:38:30 -0700131#define DPH_MAX_MGMT_WAIT_TIME 10000
132
Jeff Johnsone7245742012-09-05 17:12:55 -0700133
Jeff Johnson295189b2012-06-20 16:38:30 -0700134/// Step size for the wait time histogram (ms)
Jeff Johnsone7245742012-09-05 17:12:55 -0700135
Jeff Johnson295189b2012-06-20 16:38:30 -0700136#define DPH_WAIT_HIST_STEP 20
137
Jeff Johnsone7245742012-09-05 17:12:55 -0700138
Jeff Johnson295189b2012-06-20 16:38:30 -0700139/// Number of entries in wait time histogram
Jeff Johnsone7245742012-09-05 17:12:55 -0700140
Jeff Johnson295189b2012-06-20 16:38:30 -0700141#define DPH_WAIT_HIST_SIZE 100
142
Jeff Johnsone7245742012-09-05 17:12:55 -0700143
Jeff Johnson295189b2012-06-20 16:38:30 -0700144/// TCID for Management & Keep Alive Mgmt frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700145
Jeff Johnson295189b2012-06-20 16:38:30 -0700146#define DPH_MGMT_TCID 4
Jeff Johnsone7245742012-09-05 17:12:55 -0700147
Jeff Johnson295189b2012-06-20 16:38:30 -0700148#define DPH_KEEPALIVE_PROBE_RESPONSE_TCID 0
149
Jeff Johnsone7245742012-09-05 17:12:55 -0700150
Jeff Johnson295189b2012-06-20 16:38:30 -0700151/// STAID for Management frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700152
Jeff Johnson295189b2012-06-20 16:38:30 -0700153#define DPH_USE_MGMT_STAID -1
154
Jeff Johnsone7245742012-09-05 17:12:55 -0700155
Jeff Johnson295189b2012-06-20 16:38:30 -0700156// Keep Alive frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700157
Jeff Johnson295189b2012-06-20 16:38:30 -0700158#define DPH_NON_KEEPALIVE_FRAME 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700159
Jeff Johnson295189b2012-06-20 16:38:30 -0700160#define DPH_KEEPALIVE_FRAME 1
161
Jeff Johnsone7245742012-09-05 17:12:55 -0700162
Jeff Johnson295189b2012-06-20 16:38:30 -0700163/// Mask for subtype, type, protocol version, order and wep fields in the mac frame control
Jeff Johnsone7245742012-09-05 17:12:55 -0700164
Jeff Johnson295189b2012-06-20 16:38:30 -0700165#define DPH_FC_BD_FILL_MASK 0xFFCC
166
Jeff Johnsone7245742012-09-05 17:12:55 -0700167
Jeff Johnson295189b2012-06-20 16:38:30 -0700168/// Enable/Disable Txop generation in TFP for HCF mode
Jeff Johnsone7245742012-09-05 17:12:55 -0700169
Jeff Johnson295189b2012-06-20 16:38:30 -0700170#define DPH_ENABLE_HCF_TXOP_GEN_AT_TFP 0x00
Jeff Johnsone7245742012-09-05 17:12:55 -0700171
Jeff Johnson295189b2012-06-20 16:38:30 -0700172#define DPH_DISABLE_HCF_TXOP_GEN_AT_TFP 0x02
173
Jeff Johnsone7245742012-09-05 17:12:55 -0700174
Jeff Johnson295189b2012-06-20 16:38:30 -0700175/// Enable/Disable Txop generation in TFP for EDCF mode
Jeff Johnsone7245742012-09-05 17:12:55 -0700176
Jeff Johnson295189b2012-06-20 16:38:30 -0700177#define DPH_ENABLE_EDCF_TXOP_GEN_AT_TFP 0x00
Jeff Johnsone7245742012-09-05 17:12:55 -0700178
Jeff Johnson295189b2012-06-20 16:38:30 -0700179#define DPH_DISABLE_EDCF_TXOP_GEN_AT_TFP 0x01
180
Jeff Johnsone7245742012-09-05 17:12:55 -0700181
Jeff Johnson295189b2012-06-20 16:38:30 -0700182#define DPH_DUMP_ALL_STA_ID -1
Jeff Johnsone7245742012-09-05 17:12:55 -0700183
Jeff Johnson295189b2012-06-20 16:38:30 -0700184#define DPH_DUMP_RX_BD 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700185
Jeff Johnson295189b2012-06-20 16:38:30 -0700186#define DPH_DUMP_TX_BD 1
Jeff Johnsone7245742012-09-05 17:12:55 -0700187
Jeff Johnson295189b2012-06-20 16:38:30 -0700188#define DPH_DUMP_TX_MGMT_BD 2
189
Jeff Johnsone7245742012-09-05 17:12:55 -0700190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191//DPH Hash Index for BSS(STA's Peer) on station.
Jeff Johnsone7245742012-09-05 17:12:55 -0700192
Jeff Johnson295189b2012-06-20 16:38:30 -0700193#define DPH_STA_HASH_INDEX_PEER 1
194
Jeff Johnsone7245742012-09-05 17:12:55 -0700195
Jeff Johnson295189b2012-06-20 16:38:30 -0700196typedef struct sDphRateBasedCtr
Jeff Johnsone7245742012-09-05 17:12:55 -0700197
Jeff Johnson295189b2012-06-20 16:38:30 -0700198{
Jeff Johnsone7245742012-09-05 17:12:55 -0700199
Jeff Johnson295189b2012-06-20 16:38:30 -0700200 tANI_U32 hi;
Jeff Johnsone7245742012-09-05 17:12:55 -0700201
Jeff Johnson295189b2012-06-20 16:38:30 -0700202 tANI_U32 lo;
Jeff Johnsone7245742012-09-05 17:12:55 -0700203
Jeff Johnson295189b2012-06-20 16:38:30 -0700204} tDphRateBasedCtr;
205
Jeff Johnsone7245742012-09-05 17:12:55 -0700206
Jeff Johnson295189b2012-06-20 16:38:30 -0700207typedef struct sDphPhyRates
Jeff Johnsone7245742012-09-05 17:12:55 -0700208
Jeff Johnson295189b2012-06-20 16:38:30 -0700209{
Jeff Johnsone7245742012-09-05 17:12:55 -0700210
Jeff Johnson295189b2012-06-20 16:38:30 -0700211 tANI_U8 dataRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700212
Jeff Johnson295189b2012-06-20 16:38:30 -0700213 tANI_U8 ackRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700214
Jeff Johnson295189b2012-06-20 16:38:30 -0700215 tANI_U8 rtsRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700216
Jeff Johnson295189b2012-06-20 16:38:30 -0700217} tDphPhyRates;
218
Jeff Johnsone7245742012-09-05 17:12:55 -0700219
Jeff Johnson295189b2012-06-20 16:38:30 -0700220typedef struct sDphIFSValues
Jeff Johnsone7245742012-09-05 17:12:55 -0700221
Jeff Johnson295189b2012-06-20 16:38:30 -0700222{
Jeff Johnsone7245742012-09-05 17:12:55 -0700223
Jeff Johnson295189b2012-06-20 16:38:30 -0700224 tANI_U8 sifs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700225
Jeff Johnson295189b2012-06-20 16:38:30 -0700226 tANI_U8 pifs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700227
Jeff Johnson295189b2012-06-20 16:38:30 -0700228 tANI_U8 difs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700229
Jeff Johnson295189b2012-06-20 16:38:30 -0700230 tANI_U8 preamble;
Jeff Johnsone7245742012-09-05 17:12:55 -0700231
Jeff Johnson295189b2012-06-20 16:38:30 -0700232} tDphIFSValues;
233
Jeff Johnsone7245742012-09-05 17:12:55 -0700234
Jeff Johnson295189b2012-06-20 16:38:30 -0700235typedef struct sDphQosParams
Jeff Johnsone7245742012-09-05 17:12:55 -0700236
Jeff Johnson295189b2012-06-20 16:38:30 -0700237{
Jeff Johnsone7245742012-09-05 17:12:55 -0700238
Jeff Johnson295189b2012-06-20 16:38:30 -0700239 tANI_U8 addtsPresent;
Jeff Johnsone7245742012-09-05 17:12:55 -0700240
Jeff Johnson295189b2012-06-20 16:38:30 -0700241 tSirAddtsReqInfo addts;
Jeff Johnsone7245742012-09-05 17:12:55 -0700242
Jeff Johnson295189b2012-06-20 16:38:30 -0700243 tSirMacQosCapabilityStaIE capability;
Jeff Johnsone7245742012-09-05 17:12:55 -0700244
Jeff Johnson295189b2012-06-20 16:38:30 -0700245} tDphQosParams;
246
Jeff Johnsone7245742012-09-05 17:12:55 -0700247
Jeff Johnson295189b2012-06-20 16:38:30 -0700248/// Queue attribute structure
Jeff Johnsone7245742012-09-05 17:12:55 -0700249
Jeff Johnson295189b2012-06-20 16:38:30 -0700250typedef struct sDphQueueAttr
Jeff Johnsone7245742012-09-05 17:12:55 -0700251
Jeff Johnson295189b2012-06-20 16:38:30 -0700252{
Jeff Johnsone7245742012-09-05 17:12:55 -0700253
Jeff Johnson295189b2012-06-20 16:38:30 -0700254 tANI_U16 valid : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700255
Jeff Johnson295189b2012-06-20 16:38:30 -0700256 tANI_U16 seqNum : 12;
Jeff Johnsone7245742012-09-05 17:12:55 -0700257
Jeff Johnson295189b2012-06-20 16:38:30 -0700258 tANI_U16 ackPolicy : 2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700259
Jeff Johnson295189b2012-06-20 16:38:30 -0700260 tANI_U16 rsvd : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700261
Jeff Johnson295189b2012-06-20 16:38:30 -0700262} tDphQueueAttr, *tpDphQueueAttr;
263
Jeff Johnsone7245742012-09-05 17:12:55 -0700264
Jeff Johnson295189b2012-06-20 16:38:30 -0700265#if defined( FEATURE_WLAN_INTEGRATED_SOC )
Jeff Johnsone7245742012-09-05 17:12:55 -0700266
Jeff Johnson295189b2012-06-20 16:38:30 -0700267typedef struct sCfgTrafficClass {
Jeff Johnsone7245742012-09-05 17:12:55 -0700268
Jeff Johnson295189b2012-06-20 16:38:30 -0700269 //Use Block ACK on this STA/TID
Jeff Johnsone7245742012-09-05 17:12:55 -0700270
Jeff Johnson295189b2012-06-20 16:38:30 -0700271 // Fields used to store the default TC parameters for this TSPEC.
Jeff Johnsone7245742012-09-05 17:12:55 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 // They will be used when the TSPEC is deleted.
Jeff Johnsone7245742012-09-05 17:12:55 -0700274
Jeff Johnson295189b2012-06-20 16:38:30 -0700275 tANI_U8 fDisableTx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700276
Jeff Johnson295189b2012-06-20 16:38:30 -0700277 tANI_U8 fDisableRx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700278
Jeff Johnson295189b2012-06-20 16:38:30 -0700279 tANI_U8 fUseBATx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700280
Jeff Johnson295189b2012-06-20 16:38:30 -0700281 tANI_U8 fUseBARx:1;
282
Jeff Johnsone7245742012-09-05 17:12:55 -0700283
Jeff Johnson295189b2012-06-20 16:38:30 -0700284 // 1: expect to see frames with compressed BA coming from this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700285
Jeff Johnson295189b2012-06-20 16:38:30 -0700286 tANI_U8 fRxCompBA:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700287
Jeff Johnson295189b2012-06-20 16:38:30 -0700288 tANI_U8 fTxCompBA:1;
289
Jeff Johnsone7245742012-09-05 17:12:55 -0700290
Jeff Johnson295189b2012-06-20 16:38:30 -0700291 // immediate ACK or delayed ACK for frames from this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700292
Jeff Johnson295189b2012-06-20 16:38:30 -0700293 tANI_U8 fRxBApolicy:1;
294
Jeff Johnsone7245742012-09-05 17:12:55 -0700295
Jeff Johnson295189b2012-06-20 16:38:30 -0700296 // immediate ACK or delayed ACK for frames to this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700297
Jeff Johnson295189b2012-06-20 16:38:30 -0700298 tANI_U8 fTxBApolicy:1;
299
Jeff Johnsone7245742012-09-05 17:12:55 -0700300
Jeff Johnson295189b2012-06-20 16:38:30 -0700301 //Initiator or recipient
Jeff Johnsone7245742012-09-05 17:12:55 -0700302
Jeff Johnson295189b2012-06-20 16:38:30 -0700303 tANI_U8 role;
304
Jeff Johnsone7245742012-09-05 17:12:55 -0700305
Jeff Johnson295189b2012-06-20 16:38:30 -0700306 //Max # of MSDU received from this STA, negotiated at ADDBA
Jeff Johnsone7245742012-09-05 17:12:55 -0700307
Jeff Johnson295189b2012-06-20 16:38:30 -0700308 // used for maintaining block ack state info
Jeff Johnsone7245742012-09-05 17:12:55 -0700309
Jeff Johnson295189b2012-06-20 16:38:30 -0700310 tANI_U16 rxBufSize;
311
Jeff Johnsone7245742012-09-05 17:12:55 -0700312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313 //Max # of MSDU send to this STA, negotiated at ADDBA
Jeff Johnsone7245742012-09-05 17:12:55 -0700314
Jeff Johnson295189b2012-06-20 16:38:30 -0700315 tANI_U16 txBufSize;
316
Jeff Johnsone7245742012-09-05 17:12:55 -0700317
Jeff Johnson295189b2012-06-20 16:38:30 -0700318 //BA timeout negotiated at ADDBA. Unit: TU
Jeff Johnsone7245742012-09-05 17:12:55 -0700319
Jeff Johnson295189b2012-06-20 16:38:30 -0700320 tANI_U16 tuTxBAWaitTimeout; //Time for Tx to wait for BA. 0 means no timeout
321
Jeff Johnsone7245742012-09-05 17:12:55 -0700322
Jeff Johnson295189b2012-06-20 16:38:30 -0700323 tANI_U16 tuRxBAWaitTimeout; //Time for Rx to wait for explicit/implicit BAR. 0 means no timeout
324
Jeff Johnsone7245742012-09-05 17:12:55 -0700325
Jeff Johnson295189b2012-06-20 16:38:30 -0700326} tCfgTrafficClass;
Jeff Johnsone7245742012-09-05 17:12:55 -0700327
Jeff Johnson295189b2012-06-20 16:38:30 -0700328#endif /* EATURE_WLAN_INTEGRATED_SOC */
329
Jeff Johnsone7245742012-09-05 17:12:55 -0700330
Jeff Johnson295189b2012-06-20 16:38:30 -0700331/// STA state node
Jeff Johnsone7245742012-09-05 17:12:55 -0700332
Jeff Johnson295189b2012-06-20 16:38:30 -0700333typedef struct sDphHashNode
Jeff Johnsone7245742012-09-05 17:12:55 -0700334
Jeff Johnson295189b2012-06-20 16:38:30 -0700335{
336
Jeff Johnsone7245742012-09-05 17:12:55 -0700337
Jeff Johnson295189b2012-06-20 16:38:30 -0700338 //BYTE 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700339
Jeff Johnson295189b2012-06-20 16:38:30 -0700340 // HASH ENTRY FIELDS NOT NEEDED IN HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700341
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 /// This STA valid or not
Jeff Johnsone7245742012-09-05 17:12:55 -0700343
Jeff Johnson295189b2012-06-20 16:38:30 -0700344 tANI_U8 valid : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700345
Jeff Johnson295189b2012-06-20 16:38:30 -0700346 tANI_U8 encPolicy : 3;
Jeff Johnsone7245742012-09-05 17:12:55 -0700347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 tANI_U8 defaultKey : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700349
Jeff Johnson295189b2012-06-20 16:38:30 -0700350 tANI_U8 defaultKeyId : 2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700351
Jeff Johnson295189b2012-06-20 16:38:30 -0700352 tANI_U8 qosMode : 1;
353
Jeff Johnsone7245742012-09-05 17:12:55 -0700354
Jeff Johnson295189b2012-06-20 16:38:30 -0700355 //BYTE 1
Jeff Johnsone7245742012-09-05 17:12:55 -0700356
Jeff Johnson295189b2012-06-20 16:38:30 -0700357 tANI_U8 erpEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700358
Jeff Johnson295189b2012-06-20 16:38:30 -0700359 tANI_U8 added : 1; // This has been added to the dph hash table
Jeff Johnsone7245742012-09-05 17:12:55 -0700360
Jeff Johnson295189b2012-06-20 16:38:30 -0700361 tANI_U8 linkTestOn : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700362
Jeff Johnson295189b2012-06-20 16:38:30 -0700363 tANI_U8 shortPreambleEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700364
Jeff Johnson295189b2012-06-20 16:38:30 -0700365 tANI_U8 shortSlotTimeEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700366
Jeff Johnson295189b2012-06-20 16:38:30 -0700367 tANI_U8 stopTx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700368
Jeff Johnson295189b2012-06-20 16:38:30 -0700369 tANI_U8 wmeEnabled: 1; // set if both ap and sta are wme capable
Jeff Johnsone7245742012-09-05 17:12:55 -0700370
Jeff Johnson295189b2012-06-20 16:38:30 -0700371 tANI_U8 lleEnabled: 1; // set if both ap and sta are 11e capable
372
Jeff Johnsone7245742012-09-05 17:12:55 -0700373
Jeff Johnson295189b2012-06-20 16:38:30 -0700374 //BYTE 2
Jeff Johnsone7245742012-09-05 17:12:55 -0700375
Jeff Johnson295189b2012-06-20 16:38:30 -0700376 tANI_U8 wsmEnabled: 1; // set if both ap and sta are wsm capable
Jeff Johnsone7245742012-09-05 17:12:55 -0700377
Jeff Johnson295189b2012-06-20 16:38:30 -0700378 tANI_U8 versionPresent:1; // station gave version info
Jeff Johnsone7245742012-09-05 17:12:55 -0700379
Jeff Johnson295189b2012-06-20 16:38:30 -0700380 tANI_U8 burstEnableForce:1; // allow bursting regardless of qosMode
Jeff Johnsone7245742012-09-05 17:12:55 -0700381
Jeff Johnson295189b2012-06-20 16:38:30 -0700382 tANI_U8 staAuthenticated:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700383
Jeff Johnson295189b2012-06-20 16:38:30 -0700384 /// Whether the peer is ANI or not
Jeff Johnsone7245742012-09-05 17:12:55 -0700385
Jeff Johnson295189b2012-06-20 16:38:30 -0700386 tANI_U8 aniPeer:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700387
Jeff Johnson295189b2012-06-20 16:38:30 -0700388 tANI_U8 titanPeer:1; // flag to indicate if its a titan peer
Jeff Johnsone7245742012-09-05 17:12:55 -0700389
Jeff Johnson295189b2012-06-20 16:38:30 -0700390 tANI_U8 fAniCount:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700391
Jeff Johnson295189b2012-06-20 16:38:30 -0700392#if (WNI_POLARIS_FW_PRODUCT == AP)
Jeff Johnsone7245742012-09-05 17:12:55 -0700393
Jeff Johnson295189b2012-06-20 16:38:30 -0700394 tANI_U8 hcfEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700395
Jeff Johnson295189b2012-06-20 16:38:30 -0700396#else
Jeff Johnsone7245742012-09-05 17:12:55 -0700397
Jeff Johnson295189b2012-06-20 16:38:30 -0700398 tANI_U8 rsvd:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700399
Jeff Johnson295189b2012-06-20 16:38:30 -0700400#endif
401
Jeff Johnsone7245742012-09-05 17:12:55 -0700402
Jeff Johnson295189b2012-06-20 16:38:30 -0700403 /// Fragmentation size
Jeff Johnsone7245742012-09-05 17:12:55 -0700404
Jeff Johnson295189b2012-06-20 16:38:30 -0700405 tANI_U16 fragSize;
406
Jeff Johnsone7245742012-09-05 17:12:55 -0700407
Jeff Johnson295189b2012-06-20 16:38:30 -0700408 /// LIM state
Jeff Johnsone7245742012-09-05 17:12:55 -0700409
Jeff Johnson295189b2012-06-20 16:38:30 -0700410 tLimMlmStaContext mlmStaContext;
411
Jeff Johnsone7245742012-09-05 17:12:55 -0700412
Jeff Johnson295189b2012-06-20 16:38:30 -0700413 /// Number of Tim to wait if the STA doesn't respond / fetch data
Jeff Johnsone7245742012-09-05 17:12:55 -0700414
Jeff Johnson295189b2012-06-20 16:38:30 -0700415 tANI_U8 timWaitCount;
416
Jeff Johnsone7245742012-09-05 17:12:55 -0700417
Jeff Johnson295189b2012-06-20 16:38:30 -0700418 /// Number of Successfull MPDU's being sent
Jeff Johnsone7245742012-09-05 17:12:55 -0700419
Jeff Johnson295189b2012-06-20 16:38:30 -0700420 tANI_U32 curTxMpduCnt;
421
422
Jeff Johnsone7245742012-09-05 17:12:55 -0700423
424
Jeff Johnson295189b2012-06-20 16:38:30 -0700425 /// number of consecutive TIMs sent without response
Jeff Johnsone7245742012-09-05 17:12:55 -0700426
Jeff Johnson295189b2012-06-20 16:38:30 -0700427 tANI_U8 numTimSent;
428
Jeff Johnsone7245742012-09-05 17:12:55 -0700429
Jeff Johnson295189b2012-06-20 16:38:30 -0700430 // qos parameter info
Jeff Johnsone7245742012-09-05 17:12:55 -0700431
Jeff Johnson295189b2012-06-20 16:38:30 -0700432 tDphQosParams qos;
433
Jeff Johnsone7245742012-09-05 17:12:55 -0700434
Jeff Johnson295189b2012-06-20 16:38:30 -0700435 // station version info - valid only if versionPresent is set
Jeff Johnsone7245742012-09-05 17:12:55 -0700436
Jeff Johnson295189b2012-06-20 16:38:30 -0700437 tSirMacPropVersion version;
Jeff Johnsone7245742012-09-05 17:12:55 -0700438
Jeff Johnson295189b2012-06-20 16:38:30 -0700439 // station proprietary capability
Jeff Johnsone7245742012-09-05 17:12:55 -0700440
Jeff Johnson295189b2012-06-20 16:38:30 -0700441 tANI_U16 propCapability;
442
Jeff Johnsone7245742012-09-05 17:12:55 -0700443
Jeff Johnson295189b2012-06-20 16:38:30 -0700444#ifdef PLM_WDS
Jeff Johnsone7245742012-09-05 17:12:55 -0700445
Jeff Johnson295189b2012-06-20 16:38:30 -0700446 tANI_U8 wdsIndex;
Jeff Johnsone7245742012-09-05 17:12:55 -0700447
Jeff Johnson295189b2012-06-20 16:38:30 -0700448 tANI_U8 wdsPeerBeaconSeen;
Jeff Johnsone7245742012-09-05 17:12:55 -0700449
Jeff Johnson295189b2012-06-20 16:38:30 -0700450#endif
451
Jeff Johnsone7245742012-09-05 17:12:55 -0700452
Jeff Johnson295189b2012-06-20 16:38:30 -0700453 //Taurus capabilities
Jeff Johnsone7245742012-09-05 17:12:55 -0700454
Jeff Johnson295189b2012-06-20 16:38:30 -0700455 tANI_U16 baPolicyFlag; //BA Policy for each TID.
456
Jeff Johnsone7245742012-09-05 17:12:55 -0700457
Jeff Johnson295189b2012-06-20 16:38:30 -0700458 /*
Jeff Johnsone7245742012-09-05 17:12:55 -0700459
Jeff Johnson295189b2012-06-20 16:38:30 -0700460 * All the legacy and airgo supported rates.
Jeff Johnsone7245742012-09-05 17:12:55 -0700461
Jeff Johnson295189b2012-06-20 16:38:30 -0700462 */
Jeff Johnsone7245742012-09-05 17:12:55 -0700463
Jeff Johnson295189b2012-06-20 16:38:30 -0700464 tSirSupportedRates supportedRates;
465
Jeff Johnsone7245742012-09-05 17:12:55 -0700466
Jeff Johnson295189b2012-06-20 16:38:30 -0700467 tANI_U8 htGreenfield:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700468
Jeff Johnson295189b2012-06-20 16:38:30 -0700469 tANI_U8 htShortGI40Mhz:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700470
Jeff Johnson295189b2012-06-20 16:38:30 -0700471 tANI_U8 htShortGI20Mhz:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700472
Jeff Johnson295189b2012-06-20 16:38:30 -0700473 // DSSS/CCK at 40 MHz: Enabled 1 or Disabled
Jeff Johnsone7245742012-09-05 17:12:55 -0700474
Jeff Johnson295189b2012-06-20 16:38:30 -0700475 tANI_U8 htDsssCckRate40MHzSupport:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700476
Jeff Johnson295189b2012-06-20 16:38:30 -0700477 // L-SIG TXOP Protection used only if peer support available
Jeff Johnsone7245742012-09-05 17:12:55 -0700478
Jeff Johnson295189b2012-06-20 16:38:30 -0700479 tANI_U8 htLsigTXOPProtection:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700480
Jeff Johnson295189b2012-06-20 16:38:30 -0700481 // A-MPDU Density
Jeff Johnsone7245742012-09-05 17:12:55 -0700482
Jeff Johnson295189b2012-06-20 16:38:30 -0700483 // 000 - No restriction
Jeff Johnsone7245742012-09-05 17:12:55 -0700484
Jeff Johnson295189b2012-06-20 16:38:30 -0700485 // 001 - 1/8 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700486
Jeff Johnson295189b2012-06-20 16:38:30 -0700487 // 010 - 1/4 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700488
Jeff Johnson295189b2012-06-20 16:38:30 -0700489 // 011 - 1/2 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700490
Jeff Johnson295189b2012-06-20 16:38:30 -0700491 // 100 - 1 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700492
Jeff Johnson295189b2012-06-20 16:38:30 -0700493 // 101 - 2 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700494
Jeff Johnson295189b2012-06-20 16:38:30 -0700495 // 110 - 4 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700496
Jeff Johnson295189b2012-06-20 16:38:30 -0700497 // 111 - 8 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700498
Jeff Johnson295189b2012-06-20 16:38:30 -0700499 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700500
Jeff Johnson295189b2012-06-20 16:38:30 -0700501 tANI_U8 htAMpduDensity:3;
502
503
Jeff Johnsone7245742012-09-05 17:12:55 -0700504
505
Jeff Johnson295189b2012-06-20 16:38:30 -0700506 //Set to 0 for 3839 octets
Jeff Johnsone7245742012-09-05 17:12:55 -0700507
Jeff Johnson295189b2012-06-20 16:38:30 -0700508 //Set to 1 for 7935 octets
Jeff Johnsone7245742012-09-05 17:12:55 -0700509
Jeff Johnson295189b2012-06-20 16:38:30 -0700510 tANI_U8 htMaxAmsduLength;
511
512
Jeff Johnsone7245742012-09-05 17:12:55 -0700513
514
Jeff Johnson295189b2012-06-20 16:38:30 -0700515 // MIMO Power Save
Jeff Johnsone7245742012-09-05 17:12:55 -0700516
Jeff Johnson295189b2012-06-20 16:38:30 -0700517 tSirMacHTMIMOPowerSaveState htMIMOPSState;
518
Jeff Johnsone7245742012-09-05 17:12:55 -0700519
Jeff Johnson295189b2012-06-20 16:38:30 -0700520 //
521
Jeff Johnsone7245742012-09-05 17:12:55 -0700522
Jeff Johnson295189b2012-06-20 16:38:30 -0700523 // Maximum Rx A-MPDU factor
Jeff Johnsone7245742012-09-05 17:12:55 -0700524
Jeff Johnson295189b2012-06-20 16:38:30 -0700525 tANI_U8 htMaxRxAMpduFactor:2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700526
Jeff Johnson295189b2012-06-20 16:38:30 -0700527 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700528
Jeff Johnson295189b2012-06-20 16:38:30 -0700529 // Recommended Tx Width Set
Jeff Johnsone7245742012-09-05 17:12:55 -0700530
Jeff Johnson295189b2012-06-20 16:38:30 -0700531 // 0 - use 20 MHz channel (control channel)
Jeff Johnsone7245742012-09-05 17:12:55 -0700532
Jeff Johnson295189b2012-06-20 16:38:30 -0700533 // 1 - use 40 Mhz channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700534
Jeff Johnson295189b2012-06-20 16:38:30 -0700535 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700536
Jeff Johnson295189b2012-06-20 16:38:30 -0700537 tANI_U8 htSupportedChannelWidthSet:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700538 tANI_U8 htSecondaryChannelOffset:2;
539 tANI_U8 rsvd1:3;
540
Jeff Johnson295189b2012-06-20 16:38:30 -0700541
542 ///////////////////////////////////////////////////////////////////////
Jeff Johnsone7245742012-09-05 17:12:55 -0700543
Jeff Johnson295189b2012-06-20 16:38:30 -0700544 // DPH HASH ENTRY FIELDS NEEDED IN HAL ONLY
Jeff Johnsone7245742012-09-05 17:12:55 -0700545
Jeff Johnson295189b2012-06-20 16:38:30 -0700546 ///////////////////////////////////////////////////////////////////////
Jeff Johnsone7245742012-09-05 17:12:55 -0700547
Jeff Johnson295189b2012-06-20 16:38:30 -0700548 tANI_U8 dpuSig:4; // DPU signiture
Jeff Johnsone7245742012-09-05 17:12:55 -0700549
Jeff Johnson295189b2012-06-20 16:38:30 -0700550 tANI_U8 staSig:4; // STA signature
Jeff Johnsone7245742012-09-05 17:12:55 -0700551
Jeff Johnson295189b2012-06-20 16:38:30 -0700552 tANI_U8 staType;
553
Jeff Johnsone7245742012-09-05 17:12:55 -0700554
Jeff Johnson295189b2012-06-20 16:38:30 -0700555 tANI_U16 bssId; // BSSID
Jeff Johnsone7245742012-09-05 17:12:55 -0700556
Jeff Johnson295189b2012-06-20 16:38:30 -0700557 tANI_U16 assocId; // Association ID
558
559
Jeff Johnsone7245742012-09-05 17:12:55 -0700560
561
Jeff Johnson295189b2012-06-20 16:38:30 -0700562 //This is the real sta index generated by HAL
Jeff Johnsone7245742012-09-05 17:12:55 -0700563
Jeff Johnson295189b2012-06-20 16:38:30 -0700564 tANI_U16 staIndex;
Jeff Johnsone7245742012-09-05 17:12:55 -0700565
Jeff Johnson295189b2012-06-20 16:38:30 -0700566 tANI_U8 staAddr[6];
Jeff Johnsone7245742012-09-05 17:12:55 -0700567
Jeff Johnson295189b2012-06-20 16:38:30 -0700568 /*The DPU signatures will be sent eventually to TL to help it determine the
Jeff Johnsone7245742012-09-05 17:12:55 -0700569
Jeff Johnson295189b2012-06-20 16:38:30 -0700570 association to which a packet belongs to*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700571
Jeff Johnson295189b2012-06-20 16:38:30 -0700572 /*Unicast DPU signature*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700573
Jeff Johnson295189b2012-06-20 16:38:30 -0700574 tANI_U8 ucUcastSig;
575
Jeff Johnsone7245742012-09-05 17:12:55 -0700576
Jeff Johnson295189b2012-06-20 16:38:30 -0700577 /*Broadcast DPU signature*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700578
Jeff Johnson295189b2012-06-20 16:38:30 -0700579 tANI_U8 ucBcastSig;
580
Jeff Johnsone7245742012-09-05 17:12:55 -0700581
Jeff Johnson295189b2012-06-20 16:38:30 -0700582 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700583
Jeff Johnson295189b2012-06-20 16:38:30 -0700584 // PE needs this info on a per-STA, per-TID basis
Jeff Johnsone7245742012-09-05 17:12:55 -0700585
Jeff Johnson295189b2012-06-20 16:38:30 -0700586 // At any point in time, when this data is sampled,
Jeff Johnsone7245742012-09-05 17:12:55 -0700587
Jeff Johnson295189b2012-06-20 16:38:30 -0700588 // it gives a measure of:
Jeff Johnsone7245742012-09-05 17:12:55 -0700589
Jeff Johnson295189b2012-06-20 16:38:30 -0700590 // a) All the active bA sessions
Jeff Johnsone7245742012-09-05 17:12:55 -0700591
Jeff Johnson295189b2012-06-20 16:38:30 -0700592 // b) And the BA configuration itself
Jeff Johnsone7245742012-09-05 17:12:55 -0700593
Jeff Johnson295189b2012-06-20 16:38:30 -0700594 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700595
Jeff Johnson295189b2012-06-20 16:38:30 -0700596 tCfgTrafficClass tcCfg[STACFG_MAX_TC];
597
Jeff Johnsone7245742012-09-05 17:12:55 -0700598
Jeff Johnson295189b2012-06-20 16:38:30 -0700599 // Block Ack state
Jeff Johnsone7245742012-09-05 17:12:55 -0700600
Jeff Johnson295189b2012-06-20 16:38:30 -0700601 // This is used between PE and HAL only.
Jeff Johnsone7245742012-09-05 17:12:55 -0700602
Jeff Johnson295189b2012-06-20 16:38:30 -0700603 // can be set to one of the values from the following enum
Jeff Johnsone7245742012-09-05 17:12:55 -0700604
Jeff Johnson295189b2012-06-20 16:38:30 -0700605 /*typedef enum eLimBAState
Jeff Johnsone7245742012-09-05 17:12:55 -0700606
Jeff Johnson295189b2012-06-20 16:38:30 -0700607 {
Jeff Johnsone7245742012-09-05 17:12:55 -0700608
Jeff Johnson295189b2012-06-20 16:38:30 -0700609 eLIM_BA_STATE_IDLE, // we are not waiting for anything from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700610
Jeff Johnson295189b2012-06-20 16:38:30 -0700611 eLIM_BA_STATE_WT_ADD_RSP, //We are waiting for Add rsponse from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700612
Jeff Johnson295189b2012-06-20 16:38:30 -0700613 eLIM_BA_STATE_WT_DEL_RSP // We are waiting for Del response from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700614
Jeff Johnson295189b2012-06-20 16:38:30 -0700615 } tLimBAState; */
616
617
Jeff Johnsone7245742012-09-05 17:12:55 -0700618
619
Jeff Johnson295189b2012-06-20 16:38:30 -0700620 //BA state bitmap 2 bits per tid
Jeff Johnsone7245742012-09-05 17:12:55 -0700621
Jeff Johnson295189b2012-06-20 16:38:30 -0700622 // BA state for tid i = (baState >> tid*2) & 0x3
Jeff Johnsone7245742012-09-05 17:12:55 -0700623
Jeff Johnson295189b2012-06-20 16:38:30 -0700624 tANI_U32 baState;
625
Jeff Johnsone7245742012-09-05 17:12:55 -0700626#ifdef WLAN_FEATURE_11AC
627 tANI_U8 vhtSupportedChannelWidthSet;
628#endif
629
Jeff Johnson295189b2012-06-20 16:38:30 -0700630 /* When a station with already an existing dph entry tries to
Jeff Johnsone7245742012-09-05 17:12:55 -0700631
Jeff Johnson295189b2012-06-20 16:38:30 -0700632 * associate again, the old dph entry will be zeroed out except
Jeff Johnsone7245742012-09-05 17:12:55 -0700633
Jeff Johnson295189b2012-06-20 16:38:30 -0700634 * for the next pointer. The next pointer must be defined at the
Jeff Johnsone7245742012-09-05 17:12:55 -0700635
Jeff Johnson295189b2012-06-20 16:38:30 -0700636 * end of the structure.
Jeff Johnsone7245742012-09-05 17:12:55 -0700637
Jeff Johnson295189b2012-06-20 16:38:30 -0700638 */
Jeff Johnsone7245742012-09-05 17:12:55 -0700639
Jeff Johnson295189b2012-06-20 16:38:30 -0700640 struct sDphHashNode *next;
641
Jeff Johnsone7245742012-09-05 17:12:55 -0700642
Jeff Johnson295189b2012-06-20 16:38:30 -0700643} tDphHashNode, *tpDphHashNode;
644
Jeff Johnsone7245742012-09-05 17:12:55 -0700645
Jeff Johnson295189b2012-06-20 16:38:30 -0700646#include "dphHashTable.h"
647
Jeff Johnsone7245742012-09-05 17:12:55 -0700648
Jeff Johnson295189b2012-06-20 16:38:30 -0700649// -------------------------------------------------------------------
650
Jeff Johnsone7245742012-09-05 17:12:55 -0700651
Jeff Johnson295189b2012-06-20 16:38:30 -0700652// get protection overrides from config variable
Jeff Johnsone7245742012-09-05 17:12:55 -0700653
Jeff Johnson295189b2012-06-20 16:38:30 -0700654// bit0: force cts to self protection for tx to Airgo peers
Jeff Johnsone7245742012-09-05 17:12:55 -0700655
Jeff Johnson295189b2012-06-20 16:38:30 -0700656// bit1: force cts to self protection for tx to non Airgo peers
Jeff Johnsone7245742012-09-05 17:12:55 -0700657
Jeff Johnson295189b2012-06-20 16:38:30 -0700658#define DPH_PROT_OVERRIDE_NONANI_PEER_GET(cfgval) ((cfgval) & 1)
Jeff Johnsone7245742012-09-05 17:12:55 -0700659
Jeff Johnson295189b2012-06-20 16:38:30 -0700660#define DPH_PROT_OVERRIDE_ANI_PEER_GET(cfgval) (((cfgval) & 2) >> 1)
661
Jeff Johnsone7245742012-09-05 17:12:55 -0700662
Jeff Johnson295189b2012-06-20 16:38:30 -0700663typedef struct sAniSirDph
Jeff Johnsone7245742012-09-05 17:12:55 -0700664
Jeff Johnson295189b2012-06-20 16:38:30 -0700665{
Jeff Johnsone7245742012-09-05 17:12:55 -0700666
Jeff Johnson295189b2012-06-20 16:38:30 -0700667 /// The hash table object
Jeff Johnsone7245742012-09-05 17:12:55 -0700668
Jeff Johnson295189b2012-06-20 16:38:30 -0700669 dphHashTableClass dphHashTable;
Jeff Johnsone7245742012-09-05 17:12:55 -0700670
Jeff Johnson295189b2012-06-20 16:38:30 -0700671} tAniSirDph, *tpAniSirDph;
672
Jeff Johnsone7245742012-09-05 17:12:55 -0700673
Jeff Johnson295189b2012-06-20 16:38:30 -0700674#endif
675
676
Jeff Johnsone7245742012-09-05 17:12:55 -0700677
678