blob: 7f057c0cdbc91644b6d2c890aed800d127f92345 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Abhishek Singh71b1c1e2016-06-15 12:51:57 +05302 * Copyright (c) 2011-2013, 2016 The Linux Foundation. All rights reserved.
Kiet Lam842dad02014-02-18 18:44:02 -08003 *
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.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080020 */
Kiet Lam842dad02014-02-18 18:44:02 -080021
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080028/*
Jeff Johnson295189b2012-06-20 16:38:30 -070029 *
Jeff Johnson295189b2012-06-20 16:38:30 -070030 * Author: Sandesh Goel
Jeff Johnsone7245742012-09-05 17:12:55 -070031
Jeff Johnson295189b2012-06-20 16:38:30 -070032 * Date: 02/25/02
Jeff Johnsone7245742012-09-05 17:12:55 -070033
Jeff Johnson295189b2012-06-20 16:38:30 -070034 * History:-
Jeff Johnsone7245742012-09-05 17:12:55 -070035
Jeff Johnson295189b2012-06-20 16:38:30 -070036 * Date Modified by Modification Information
Jeff Johnsone7245742012-09-05 17:12:55 -070037
Jeff Johnson295189b2012-06-20 16:38:30 -070038 * --------------------------------------------------------------------
Jeff Johnsone7245742012-09-05 17:12:55 -070039
Jeff Johnson295189b2012-06-20 16:38:30 -070040 *
Jeff Johnsone7245742012-09-05 17:12:55 -070041
Jeff Johnson295189b2012-06-20 16:38:30 -070042 */
43
Jeff Johnsone7245742012-09-05 17:12:55 -070044
Jeff Johnson295189b2012-06-20 16:38:30 -070045#ifndef __DPH_GLOBAL_H__
Jeff Johnsone7245742012-09-05 17:12:55 -070046
Jeff Johnson295189b2012-06-20 16:38:30 -070047#define __DPH_GLOBAL_H__
48
Jeff Johnsone7245742012-09-05 17:12:55 -070049
Jeff Johnson295189b2012-06-20 16:38:30 -070050#include "limGlobal.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070051
Jeff Johnson295189b2012-06-20 16:38:30 -070052//#include "parserApi.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070053
Jeff Johnson295189b2012-06-20 16:38:30 -070054#include "sirMacProtDef.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070055
Jeff Johnson295189b2012-06-20 16:38:30 -070056#include "sirMacPropExts.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070057
Jeff Johnson295189b2012-06-20 16:38:30 -070058#include "sirApi.h"
59
Jeff Johnsone7245742012-09-05 17:12:55 -070060
Jeff Johnson295189b2012-06-20 16:38:30 -070061/// Following determines whether statistics are maintained or not
Jeff Johnsone7245742012-09-05 17:12:55 -070062
Jeff Johnson295189b2012-06-20 16:38:30 -070063#define DPH_STATS
64
Jeff Johnsone7245742012-09-05 17:12:55 -070065
Jeff Johnson295189b2012-06-20 16:38:30 -070066/// traffic category not allowed
Jeff Johnsone7245742012-09-05 17:12:55 -070067
Jeff Johnson295189b2012-06-20 16:38:30 -070068#define DPH_TID_NOTALLOWED 0xFF
69
Jeff Johnsone7245742012-09-05 17:12:55 -070070
Jeff Johnson295189b2012-06-20 16:38:30 -070071/// Periodicity of invocation of rate adaptation (in ms)
Jeff Johnsone7245742012-09-05 17:12:55 -070072
Jeff Johnson295189b2012-06-20 16:38:30 -070073#define DPH_RATE_ADAPTATION_PERIOD 20
74
Jeff Johnsone7245742012-09-05 17:12:55 -070075
Jeff Johnson295189b2012-06-20 16:38:30 -070076// Rate indices
Jeff Johnsone7245742012-09-05 17:12:55 -070077
Jeff Johnson295189b2012-06-20 16:38:30 -070078#define DPH_PHY_RATE_1_INDEX 0
Jeff Johnsone7245742012-09-05 17:12:55 -070079
Jeff Johnson295189b2012-06-20 16:38:30 -070080#define DPH_PHY_RATE_2_INDEX 1
Jeff Johnsone7245742012-09-05 17:12:55 -070081
Jeff Johnson295189b2012-06-20 16:38:30 -070082#define DPH_PHY_RATE_5_5_INDEX 2
Jeff Johnsone7245742012-09-05 17:12:55 -070083
Jeff Johnson295189b2012-06-20 16:38:30 -070084#define DPH_PHY_RATE_11_INDEX 3
Jeff Johnsone7245742012-09-05 17:12:55 -070085
Jeff Johnson295189b2012-06-20 16:38:30 -070086#define DPH_PHY_RATE_6_INDEX 4
Jeff Johnsone7245742012-09-05 17:12:55 -070087
Jeff Johnson295189b2012-06-20 16:38:30 -070088#define DPH_PHY_RATE_9_INDEX 5
Jeff Johnsone7245742012-09-05 17:12:55 -070089
Jeff Johnson295189b2012-06-20 16:38:30 -070090#define DPH_PHY_RATE_12_INDEX 6
Jeff Johnsone7245742012-09-05 17:12:55 -070091
Jeff Johnson295189b2012-06-20 16:38:30 -070092#define DPH_PHY_RATE_18_INDEX 7
Jeff Johnsone7245742012-09-05 17:12:55 -070093
Jeff Johnson295189b2012-06-20 16:38:30 -070094#define DPH_PHY_RATE_24_INDEX 8
Jeff Johnsone7245742012-09-05 17:12:55 -070095
Jeff Johnson295189b2012-06-20 16:38:30 -070096#define DPH_PHY_RATE_36_INDEX 9
Jeff Johnsone7245742012-09-05 17:12:55 -070097
Jeff Johnson295189b2012-06-20 16:38:30 -070098#define DPH_PHY_RATE_48_INDEX 10
Jeff Johnsone7245742012-09-05 17:12:55 -070099
Jeff Johnson295189b2012-06-20 16:38:30 -0700100#define DPH_PHY_RATE_54_INDEX 11
Jeff Johnsone7245742012-09-05 17:12:55 -0700101
Jeff Johnson295189b2012-06-20 16:38:30 -0700102#define DPH_PHY_RATE_72_INDEX 12
Jeff Johnsone7245742012-09-05 17:12:55 -0700103
Jeff Johnson295189b2012-06-20 16:38:30 -0700104#define DPH_PHY_RATE_96_INDEX 13
Jeff Johnsone7245742012-09-05 17:12:55 -0700105
Jeff Johnson295189b2012-06-20 16:38:30 -0700106#define DPH_PHY_RATE_108_INDEX 14
Jeff Johnsone7245742012-09-05 17:12:55 -0700107
Jeff Johnson295189b2012-06-20 16:38:30 -0700108#define DPH_PHY_RATE_144_INDEX 15
Jeff Johnsone7245742012-09-05 17:12:55 -0700109
Jeff Johnson295189b2012-06-20 16:38:30 -0700110#define DPH_PHY_RATE_MAX_INDEX 16
111
Jeff Johnsone7245742012-09-05 17:12:55 -0700112
Jeff Johnson295189b2012-06-20 16:38:30 -0700113/// Maximum time to wait for a management packet to go out (ms)
Jeff Johnsone7245742012-09-05 17:12:55 -0700114
Jeff Johnson295189b2012-06-20 16:38:30 -0700115#define DPH_MAX_MGMT_WAIT_TIME 10000
116
Jeff Johnsone7245742012-09-05 17:12:55 -0700117
Jeff Johnson295189b2012-06-20 16:38:30 -0700118/// Step size for the wait time histogram (ms)
Jeff Johnsone7245742012-09-05 17:12:55 -0700119
Jeff Johnson295189b2012-06-20 16:38:30 -0700120#define DPH_WAIT_HIST_STEP 20
121
Jeff Johnsone7245742012-09-05 17:12:55 -0700122
Jeff Johnson295189b2012-06-20 16:38:30 -0700123/// Number of entries in wait time histogram
Jeff Johnsone7245742012-09-05 17:12:55 -0700124
Jeff Johnson295189b2012-06-20 16:38:30 -0700125#define DPH_WAIT_HIST_SIZE 100
126
Jeff Johnsone7245742012-09-05 17:12:55 -0700127
Jeff Johnson295189b2012-06-20 16:38:30 -0700128/// TCID for Management & Keep Alive Mgmt frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700129
Jeff Johnson295189b2012-06-20 16:38:30 -0700130#define DPH_MGMT_TCID 4
Jeff Johnsone7245742012-09-05 17:12:55 -0700131
Jeff Johnson295189b2012-06-20 16:38:30 -0700132#define DPH_KEEPALIVE_PROBE_RESPONSE_TCID 0
133
Jeff Johnsone7245742012-09-05 17:12:55 -0700134
Jeff Johnson295189b2012-06-20 16:38:30 -0700135/// STAID for Management frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700136
Jeff Johnson295189b2012-06-20 16:38:30 -0700137#define DPH_USE_MGMT_STAID -1
138
Jeff Johnsone7245742012-09-05 17:12:55 -0700139
Jeff Johnson295189b2012-06-20 16:38:30 -0700140// Keep Alive frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700141
Jeff Johnson295189b2012-06-20 16:38:30 -0700142#define DPH_NON_KEEPALIVE_FRAME 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700143
Jeff Johnson295189b2012-06-20 16:38:30 -0700144#define DPH_KEEPALIVE_FRAME 1
145
Jeff Johnsone7245742012-09-05 17:12:55 -0700146
Jeff Johnson295189b2012-06-20 16:38:30 -0700147/// Mask for subtype, type, protocol version, order and wep fields in the mac frame control
Jeff Johnsone7245742012-09-05 17:12:55 -0700148
Jeff Johnson295189b2012-06-20 16:38:30 -0700149#define DPH_FC_BD_FILL_MASK 0xFFCC
150
Jeff Johnsone7245742012-09-05 17:12:55 -0700151
Jeff Johnson295189b2012-06-20 16:38:30 -0700152/// Enable/Disable Txop generation in TFP for HCF mode
Jeff Johnsone7245742012-09-05 17:12:55 -0700153
Jeff Johnson295189b2012-06-20 16:38:30 -0700154#define DPH_ENABLE_HCF_TXOP_GEN_AT_TFP 0x00
Jeff Johnsone7245742012-09-05 17:12:55 -0700155
Jeff Johnson295189b2012-06-20 16:38:30 -0700156#define DPH_DISABLE_HCF_TXOP_GEN_AT_TFP 0x02
157
Jeff Johnsone7245742012-09-05 17:12:55 -0700158
Jeff Johnson295189b2012-06-20 16:38:30 -0700159/// Enable/Disable Txop generation in TFP for EDCF mode
Jeff Johnsone7245742012-09-05 17:12:55 -0700160
Jeff Johnson295189b2012-06-20 16:38:30 -0700161#define DPH_ENABLE_EDCF_TXOP_GEN_AT_TFP 0x00
Jeff Johnsone7245742012-09-05 17:12:55 -0700162
Jeff Johnson295189b2012-06-20 16:38:30 -0700163#define DPH_DISABLE_EDCF_TXOP_GEN_AT_TFP 0x01
164
Jeff Johnsone7245742012-09-05 17:12:55 -0700165
Jeff Johnson295189b2012-06-20 16:38:30 -0700166#define DPH_DUMP_ALL_STA_ID -1
Jeff Johnsone7245742012-09-05 17:12:55 -0700167
Jeff Johnson295189b2012-06-20 16:38:30 -0700168#define DPH_DUMP_RX_BD 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700169
Jeff Johnson295189b2012-06-20 16:38:30 -0700170#define DPH_DUMP_TX_BD 1
Jeff Johnsone7245742012-09-05 17:12:55 -0700171
Jeff Johnson295189b2012-06-20 16:38:30 -0700172#define DPH_DUMP_TX_MGMT_BD 2
173
Jeff Johnsone7245742012-09-05 17:12:55 -0700174
Jeff Johnson295189b2012-06-20 16:38:30 -0700175//DPH Hash Index for BSS(STA's Peer) on station.
Jeff Johnsone7245742012-09-05 17:12:55 -0700176
Jeff Johnson295189b2012-06-20 16:38:30 -0700177#define DPH_STA_HASH_INDEX_PEER 1
178
Jeff Johnsone7245742012-09-05 17:12:55 -0700179
Chet Lanctot8cecea22014-02-11 19:09:36 -0800180#ifdef WLAN_FEATURE_11W
181//DPH PMF SA Query state for station
182
183#define DPH_SA_QUERY_NOT_IN_PROGRESS 1
184
185#define DPH_SA_QUERY_IN_PROGRESS 2
186
187#define DPH_SA_QUERY_TIMED_OUT 3
188#endif
189
190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191typedef struct sDphRateBasedCtr
Jeff Johnsone7245742012-09-05 17:12:55 -0700192
Jeff Johnson295189b2012-06-20 16:38:30 -0700193{
Jeff Johnsone7245742012-09-05 17:12:55 -0700194
Jeff Johnson295189b2012-06-20 16:38:30 -0700195 tANI_U32 hi;
Jeff Johnsone7245742012-09-05 17:12:55 -0700196
Jeff Johnson295189b2012-06-20 16:38:30 -0700197 tANI_U32 lo;
Jeff Johnsone7245742012-09-05 17:12:55 -0700198
Jeff Johnson295189b2012-06-20 16:38:30 -0700199} tDphRateBasedCtr;
200
Jeff Johnsone7245742012-09-05 17:12:55 -0700201
Jeff Johnson295189b2012-06-20 16:38:30 -0700202typedef struct sDphPhyRates
Jeff Johnsone7245742012-09-05 17:12:55 -0700203
Jeff Johnson295189b2012-06-20 16:38:30 -0700204{
Jeff Johnsone7245742012-09-05 17:12:55 -0700205
Jeff Johnson295189b2012-06-20 16:38:30 -0700206 tANI_U8 dataRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700207
Jeff Johnson295189b2012-06-20 16:38:30 -0700208 tANI_U8 ackRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 tANI_U8 rtsRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700211
Jeff Johnson295189b2012-06-20 16:38:30 -0700212} tDphPhyRates;
213
Jeff Johnsone7245742012-09-05 17:12:55 -0700214
Jeff Johnson295189b2012-06-20 16:38:30 -0700215typedef struct sDphIFSValues
Jeff Johnsone7245742012-09-05 17:12:55 -0700216
Jeff Johnson295189b2012-06-20 16:38:30 -0700217{
Jeff Johnsone7245742012-09-05 17:12:55 -0700218
Jeff Johnson295189b2012-06-20 16:38:30 -0700219 tANI_U8 sifs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700220
Jeff Johnson295189b2012-06-20 16:38:30 -0700221 tANI_U8 pifs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700222
Jeff Johnson295189b2012-06-20 16:38:30 -0700223 tANI_U8 difs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700224
Jeff Johnson295189b2012-06-20 16:38:30 -0700225 tANI_U8 preamble;
Jeff Johnsone7245742012-09-05 17:12:55 -0700226
Jeff Johnson295189b2012-06-20 16:38:30 -0700227} tDphIFSValues;
228
Jeff Johnsone7245742012-09-05 17:12:55 -0700229
Jeff Johnson295189b2012-06-20 16:38:30 -0700230typedef struct sDphQosParams
Jeff Johnsone7245742012-09-05 17:12:55 -0700231
Jeff Johnson295189b2012-06-20 16:38:30 -0700232{
Jeff Johnsone7245742012-09-05 17:12:55 -0700233
Jeff Johnson295189b2012-06-20 16:38:30 -0700234 tANI_U8 addtsPresent;
Jeff Johnsone7245742012-09-05 17:12:55 -0700235
Jeff Johnson295189b2012-06-20 16:38:30 -0700236 tSirAddtsReqInfo addts;
Jeff Johnsone7245742012-09-05 17:12:55 -0700237
Jeff Johnson295189b2012-06-20 16:38:30 -0700238 tSirMacQosCapabilityStaIE capability;
Jeff Johnsone7245742012-09-05 17:12:55 -0700239
Jeff Johnson295189b2012-06-20 16:38:30 -0700240} tDphQosParams;
241
Jeff Johnsone7245742012-09-05 17:12:55 -0700242
Jeff Johnson295189b2012-06-20 16:38:30 -0700243/// Queue attribute structure
Jeff Johnsone7245742012-09-05 17:12:55 -0700244
Jeff Johnson295189b2012-06-20 16:38:30 -0700245typedef struct sDphQueueAttr
Jeff Johnsone7245742012-09-05 17:12:55 -0700246
Jeff Johnson295189b2012-06-20 16:38:30 -0700247{
Jeff Johnsone7245742012-09-05 17:12:55 -0700248
Jeff Johnson295189b2012-06-20 16:38:30 -0700249 tANI_U16 valid : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700250
Jeff Johnson295189b2012-06-20 16:38:30 -0700251 tANI_U16 seqNum : 12;
Jeff Johnsone7245742012-09-05 17:12:55 -0700252
Jeff Johnson295189b2012-06-20 16:38:30 -0700253 tANI_U16 ackPolicy : 2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700254
Jeff Johnson295189b2012-06-20 16:38:30 -0700255 tANI_U16 rsvd : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700256
Jeff Johnson295189b2012-06-20 16:38:30 -0700257} tDphQueueAttr, *tpDphQueueAttr;
258
Jeff Johnsone7245742012-09-05 17:12:55 -0700259
Jeff Johnsone7245742012-09-05 17:12:55 -0700260
Jeff Johnson295189b2012-06-20 16:38:30 -0700261typedef struct sCfgTrafficClass {
Jeff Johnsone7245742012-09-05 17:12:55 -0700262
Jeff Johnson295189b2012-06-20 16:38:30 -0700263 //Use Block ACK on this STA/TID
Jeff Johnsone7245742012-09-05 17:12:55 -0700264
Jeff Johnson295189b2012-06-20 16:38:30 -0700265 // Fields used to store the default TC parameters for this TSPEC.
Jeff Johnsone7245742012-09-05 17:12:55 -0700266
Jeff Johnson295189b2012-06-20 16:38:30 -0700267 // They will be used when the TSPEC is deleted.
Jeff Johnsone7245742012-09-05 17:12:55 -0700268
Jeff Johnson295189b2012-06-20 16:38:30 -0700269 tANI_U8 fDisableTx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700270
Jeff Johnson295189b2012-06-20 16:38:30 -0700271 tANI_U8 fDisableRx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 tANI_U8 fUseBATx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700274
Jeff Johnson295189b2012-06-20 16:38:30 -0700275 tANI_U8 fUseBARx:1;
276
Jeff Johnsone7245742012-09-05 17:12:55 -0700277
Jeff Johnson295189b2012-06-20 16:38:30 -0700278 // 1: expect to see frames with compressed BA coming from this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700279
Jeff Johnson295189b2012-06-20 16:38:30 -0700280 tANI_U8 fRxCompBA:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700281
Jeff Johnson295189b2012-06-20 16:38:30 -0700282 tANI_U8 fTxCompBA:1;
283
Jeff Johnsone7245742012-09-05 17:12:55 -0700284
Jeff Johnson295189b2012-06-20 16:38:30 -0700285 // immediate ACK or delayed ACK for frames from this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700286
Jeff Johnson295189b2012-06-20 16:38:30 -0700287 tANI_U8 fRxBApolicy:1;
288
Jeff Johnsone7245742012-09-05 17:12:55 -0700289
Jeff Johnson295189b2012-06-20 16:38:30 -0700290 // immediate ACK or delayed ACK for frames to this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700291
Jeff Johnson295189b2012-06-20 16:38:30 -0700292 tANI_U8 fTxBApolicy:1;
293
Jeff Johnsone7245742012-09-05 17:12:55 -0700294
Jeff Johnson295189b2012-06-20 16:38:30 -0700295 //Initiator or recipient
Jeff Johnsone7245742012-09-05 17:12:55 -0700296
Jeff Johnson295189b2012-06-20 16:38:30 -0700297 tANI_U8 role;
298
Jeff Johnsone7245742012-09-05 17:12:55 -0700299
Jeff Johnson295189b2012-06-20 16:38:30 -0700300 //Max # of MSDU received from this STA, negotiated at ADDBA
Jeff Johnsone7245742012-09-05 17:12:55 -0700301
Jeff Johnson295189b2012-06-20 16:38:30 -0700302 // used for maintaining block ack state info
Jeff Johnsone7245742012-09-05 17:12:55 -0700303
Jeff Johnson295189b2012-06-20 16:38:30 -0700304 tANI_U16 rxBufSize;
305
Jeff Johnsone7245742012-09-05 17:12:55 -0700306
Jeff Johnson295189b2012-06-20 16:38:30 -0700307 //Max # of MSDU send to this STA, negotiated at ADDBA
Jeff Johnsone7245742012-09-05 17:12:55 -0700308
Jeff Johnson295189b2012-06-20 16:38:30 -0700309 tANI_U16 txBufSize;
310
Jeff Johnsone7245742012-09-05 17:12:55 -0700311
Jeff Johnson295189b2012-06-20 16:38:30 -0700312 //BA timeout negotiated at ADDBA. Unit: TU
Jeff Johnsone7245742012-09-05 17:12:55 -0700313
Jeff Johnson295189b2012-06-20 16:38:30 -0700314 tANI_U16 tuTxBAWaitTimeout; //Time for Tx to wait for BA. 0 means no timeout
315
Jeff Johnsone7245742012-09-05 17:12:55 -0700316
Jeff Johnson295189b2012-06-20 16:38:30 -0700317 tANI_U16 tuRxBAWaitTimeout; //Time for Rx to wait for explicit/implicit BAR. 0 means no timeout
318
Jeff Johnsone7245742012-09-05 17:12:55 -0700319
Jeff Johnson295189b2012-06-20 16:38:30 -0700320} tCfgTrafficClass;
Jeff Johnsone7245742012-09-05 17:12:55 -0700321
Jeff Johnson295189b2012-06-20 16:38:30 -0700322
Jeff Johnsone7245742012-09-05 17:12:55 -0700323
Jeff Johnson295189b2012-06-20 16:38:30 -0700324/// STA state node
Jeff Johnsone7245742012-09-05 17:12:55 -0700325
Jeff Johnson295189b2012-06-20 16:38:30 -0700326typedef struct sDphHashNode
Jeff Johnsone7245742012-09-05 17:12:55 -0700327
Jeff Johnson295189b2012-06-20 16:38:30 -0700328{
329
Jeff Johnsone7245742012-09-05 17:12:55 -0700330
Jeff Johnson295189b2012-06-20 16:38:30 -0700331 //BYTE 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700332
Jeff Johnson295189b2012-06-20 16:38:30 -0700333 // HASH ENTRY FIELDS NOT NEEDED IN HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700334
Jeff Johnson295189b2012-06-20 16:38:30 -0700335 /// This STA valid or not
Jeff Johnsone7245742012-09-05 17:12:55 -0700336
Jeff Johnson295189b2012-06-20 16:38:30 -0700337 tANI_U8 valid : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700338
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 tANI_U8 encPolicy : 3;
Jeff Johnsone7245742012-09-05 17:12:55 -0700340
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 tANI_U8 defaultKey : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700342
Jeff Johnson295189b2012-06-20 16:38:30 -0700343 tANI_U8 defaultKeyId : 2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700344
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 tANI_U8 qosMode : 1;
346
Jeff Johnsone7245742012-09-05 17:12:55 -0700347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 //BYTE 1
Jeff Johnsone7245742012-09-05 17:12:55 -0700349
Jeff Johnson295189b2012-06-20 16:38:30 -0700350 tANI_U8 erpEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700351
Jeff Johnson295189b2012-06-20 16:38:30 -0700352 tANI_U8 added : 1; // This has been added to the dph hash table
Jeff Johnsone7245742012-09-05 17:12:55 -0700353
Jeff Johnson295189b2012-06-20 16:38:30 -0700354 tANI_U8 linkTestOn : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700355
Jeff Johnson295189b2012-06-20 16:38:30 -0700356 tANI_U8 shortPreambleEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700357
Jeff Johnson295189b2012-06-20 16:38:30 -0700358 tANI_U8 shortSlotTimeEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700359
Jeff Johnson295189b2012-06-20 16:38:30 -0700360 tANI_U8 stopTx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700361
Jeff Johnson295189b2012-06-20 16:38:30 -0700362 tANI_U8 wmeEnabled: 1; // set if both ap and sta are wme capable
Jeff Johnsone7245742012-09-05 17:12:55 -0700363
Jeff Johnson295189b2012-06-20 16:38:30 -0700364 tANI_U8 lleEnabled: 1; // set if both ap and sta are 11e capable
365
Jeff Johnsone7245742012-09-05 17:12:55 -0700366
Jeff Johnson295189b2012-06-20 16:38:30 -0700367 //BYTE 2
Jeff Johnsone7245742012-09-05 17:12:55 -0700368
Jeff Johnson295189b2012-06-20 16:38:30 -0700369 tANI_U8 wsmEnabled: 1; // set if both ap and sta are wsm capable
Jeff Johnsone7245742012-09-05 17:12:55 -0700370
Jeff Johnson295189b2012-06-20 16:38:30 -0700371 tANI_U8 versionPresent:1; // station gave version info
Jeff Johnsone7245742012-09-05 17:12:55 -0700372
Jeff Johnson295189b2012-06-20 16:38:30 -0700373 tANI_U8 burstEnableForce:1; // allow bursting regardless of qosMode
Jeff Johnsone7245742012-09-05 17:12:55 -0700374
Jeff Johnson295189b2012-06-20 16:38:30 -0700375 tANI_U8 staAuthenticated:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700376
Jeff Johnson295189b2012-06-20 16:38:30 -0700377 /// Whether the peer is ANI or not
Jeff Johnsone7245742012-09-05 17:12:55 -0700378
Jeff Johnson295189b2012-06-20 16:38:30 -0700379 tANI_U8 aniPeer:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700380
Jeff Johnson295189b2012-06-20 16:38:30 -0700381 tANI_U8 titanPeer:1; // flag to indicate if its a titan peer
Jeff Johnsone7245742012-09-05 17:12:55 -0700382
Jeff Johnson295189b2012-06-20 16:38:30 -0700383 tANI_U8 fAniCount:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700384
Chet Lanctot186b5732013-03-18 10:26:30 -0700385 tANI_U8 rmfEnabled:1;
Jeff Johnson295189b2012-06-20 16:38:30 -0700386
Jeff Johnsone7245742012-09-05 17:12:55 -0700387
Jeff Johnson295189b2012-06-20 16:38:30 -0700388 /// Fragmentation size
Jeff Johnsone7245742012-09-05 17:12:55 -0700389
Jeff Johnson295189b2012-06-20 16:38:30 -0700390 tANI_U16 fragSize;
391
Jeff Johnsone7245742012-09-05 17:12:55 -0700392
Jeff Johnson295189b2012-06-20 16:38:30 -0700393 /// LIM state
Jeff Johnsone7245742012-09-05 17:12:55 -0700394
Jeff Johnson295189b2012-06-20 16:38:30 -0700395 tLimMlmStaContext mlmStaContext;
396
Jeff Johnsone7245742012-09-05 17:12:55 -0700397
Jeff Johnson295189b2012-06-20 16:38:30 -0700398 /// Number of Tim to wait if the STA doesn't respond / fetch data
Jeff Johnsone7245742012-09-05 17:12:55 -0700399
Jeff Johnson295189b2012-06-20 16:38:30 -0700400 tANI_U8 timWaitCount;
401
Jeff Johnsone7245742012-09-05 17:12:55 -0700402
Jeff Johnson295189b2012-06-20 16:38:30 -0700403 /// Number of Successfull MPDU's being sent
Jeff Johnsone7245742012-09-05 17:12:55 -0700404
Jeff Johnson295189b2012-06-20 16:38:30 -0700405 tANI_U32 curTxMpduCnt;
406
407
Jeff Johnsone7245742012-09-05 17:12:55 -0700408
409
Jeff Johnson295189b2012-06-20 16:38:30 -0700410 /// number of consecutive TIMs sent without response
Jeff Johnsone7245742012-09-05 17:12:55 -0700411
Jeff Johnson295189b2012-06-20 16:38:30 -0700412 tANI_U8 numTimSent;
413
Jeff Johnsone7245742012-09-05 17:12:55 -0700414
Jeff Johnson295189b2012-06-20 16:38:30 -0700415 // qos parameter info
Jeff Johnsone7245742012-09-05 17:12:55 -0700416
Jeff Johnson295189b2012-06-20 16:38:30 -0700417 tDphQosParams qos;
418
Jeff Johnsone7245742012-09-05 17:12:55 -0700419
Jeff Johnson295189b2012-06-20 16:38:30 -0700420 // station version info - valid only if versionPresent is set
Jeff Johnsone7245742012-09-05 17:12:55 -0700421
Jeff Johnson295189b2012-06-20 16:38:30 -0700422 tSirMacPropVersion version;
Jeff Johnsone7245742012-09-05 17:12:55 -0700423
Jeff Johnson295189b2012-06-20 16:38:30 -0700424 // station proprietary capability
Jeff Johnsone7245742012-09-05 17:12:55 -0700425
Jeff Johnson295189b2012-06-20 16:38:30 -0700426 tANI_U16 propCapability;
427
Jeff Johnsone7245742012-09-05 17:12:55 -0700428
Jeff Johnson295189b2012-06-20 16:38:30 -0700429#ifdef PLM_WDS
Jeff Johnsone7245742012-09-05 17:12:55 -0700430
Jeff Johnson295189b2012-06-20 16:38:30 -0700431 tANI_U8 wdsIndex;
Jeff Johnsone7245742012-09-05 17:12:55 -0700432
Jeff Johnson295189b2012-06-20 16:38:30 -0700433 tANI_U8 wdsPeerBeaconSeen;
Jeff Johnsone7245742012-09-05 17:12:55 -0700434
Jeff Johnson295189b2012-06-20 16:38:30 -0700435#endif
436
Jeff Johnsone7245742012-09-05 17:12:55 -0700437
Jeff Johnson295189b2012-06-20 16:38:30 -0700438 //Taurus capabilities
Jeff Johnsone7245742012-09-05 17:12:55 -0700439
Jeff Johnson295189b2012-06-20 16:38:30 -0700440 tANI_U16 baPolicyFlag; //BA Policy for each TID.
441
Jeff Johnsone7245742012-09-05 17:12:55 -0700442
Jeff Johnson295189b2012-06-20 16:38:30 -0700443 /*
Jeff Johnsone7245742012-09-05 17:12:55 -0700444
Jeff Johnson295189b2012-06-20 16:38:30 -0700445 * All the legacy and airgo supported rates.
Jeff Johnsone7245742012-09-05 17:12:55 -0700446
Jeff Johnson295189b2012-06-20 16:38:30 -0700447 */
Jeff Johnsone7245742012-09-05 17:12:55 -0700448
Jeff Johnson295189b2012-06-20 16:38:30 -0700449 tSirSupportedRates supportedRates;
450
Jeff Johnsone7245742012-09-05 17:12:55 -0700451
Jeff Johnson295189b2012-06-20 16:38:30 -0700452 tANI_U8 htGreenfield:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700453
Jeff Johnson295189b2012-06-20 16:38:30 -0700454 tANI_U8 htShortGI40Mhz:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700455
Jeff Johnson295189b2012-06-20 16:38:30 -0700456 tANI_U8 htShortGI20Mhz:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700457
Jeff Johnson295189b2012-06-20 16:38:30 -0700458 // DSSS/CCK at 40 MHz: Enabled 1 or Disabled
Jeff Johnsone7245742012-09-05 17:12:55 -0700459
Jeff Johnson295189b2012-06-20 16:38:30 -0700460 tANI_U8 htDsssCckRate40MHzSupport:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700461
Jeff Johnson295189b2012-06-20 16:38:30 -0700462 // L-SIG TXOP Protection used only if peer support available
Jeff Johnsone7245742012-09-05 17:12:55 -0700463
Jeff Johnson295189b2012-06-20 16:38:30 -0700464 tANI_U8 htLsigTXOPProtection:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700465
Jeff Johnson295189b2012-06-20 16:38:30 -0700466 // A-MPDU Density
Jeff Johnsone7245742012-09-05 17:12:55 -0700467
Jeff Johnson295189b2012-06-20 16:38:30 -0700468 // 000 - No restriction
Jeff Johnsone7245742012-09-05 17:12:55 -0700469
Jeff Johnson295189b2012-06-20 16:38:30 -0700470 // 001 - 1/8 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700471
Jeff Johnson295189b2012-06-20 16:38:30 -0700472 // 010 - 1/4 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700473
Jeff Johnson295189b2012-06-20 16:38:30 -0700474 // 011 - 1/2 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700475
Jeff Johnson295189b2012-06-20 16:38:30 -0700476 // 100 - 1 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700477
Jeff Johnson295189b2012-06-20 16:38:30 -0700478 // 101 - 2 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700479
Jeff Johnson295189b2012-06-20 16:38:30 -0700480 // 110 - 4 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700481
Jeff Johnson295189b2012-06-20 16:38:30 -0700482 // 111 - 8 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700483
Jeff Johnson295189b2012-06-20 16:38:30 -0700484 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700485
Jeff Johnson295189b2012-06-20 16:38:30 -0700486 tANI_U8 htAMpduDensity:3;
487
488
Jeff Johnsone7245742012-09-05 17:12:55 -0700489
490
Jeff Johnson295189b2012-06-20 16:38:30 -0700491 //Set to 0 for 3839 octets
Jeff Johnsone7245742012-09-05 17:12:55 -0700492
Jeff Johnson295189b2012-06-20 16:38:30 -0700493 //Set to 1 for 7935 octets
Jeff Johnsone7245742012-09-05 17:12:55 -0700494
Jeff Johnson295189b2012-06-20 16:38:30 -0700495 tANI_U8 htMaxAmsduLength;
496
497
Jeff Johnsone7245742012-09-05 17:12:55 -0700498
499
Jeff Johnson295189b2012-06-20 16:38:30 -0700500 // MIMO Power Save
Jeff Johnsone7245742012-09-05 17:12:55 -0700501
Jeff Johnson295189b2012-06-20 16:38:30 -0700502 tSirMacHTMIMOPowerSaveState htMIMOPSState;
503
Jeff Johnsone7245742012-09-05 17:12:55 -0700504
Jeff Johnson295189b2012-06-20 16:38:30 -0700505 //
506
Jeff Johnsone7245742012-09-05 17:12:55 -0700507
Jeff Johnson295189b2012-06-20 16:38:30 -0700508 // Maximum Rx A-MPDU factor
Jeff Johnsone7245742012-09-05 17:12:55 -0700509
Jeff Johnson295189b2012-06-20 16:38:30 -0700510 tANI_U8 htMaxRxAMpduFactor:2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700511
Jeff Johnson295189b2012-06-20 16:38:30 -0700512 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700513
Jeff Johnson295189b2012-06-20 16:38:30 -0700514 // Recommended Tx Width Set
Jeff Johnsone7245742012-09-05 17:12:55 -0700515
Jeff Johnson295189b2012-06-20 16:38:30 -0700516 // 0 - use 20 MHz channel (control channel)
Jeff Johnsone7245742012-09-05 17:12:55 -0700517
Jeff Johnson295189b2012-06-20 16:38:30 -0700518 // 1 - use 40 Mhz channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700519
Jeff Johnson295189b2012-06-20 16:38:30 -0700520 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700521
Jeff Johnson295189b2012-06-20 16:38:30 -0700522 tANI_U8 htSupportedChannelWidthSet:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700523 tANI_U8 htSecondaryChannelOffset:2;
524 tANI_U8 rsvd1:3;
525
Jeff Johnson295189b2012-06-20 16:38:30 -0700526
527 ///////////////////////////////////////////////////////////////////////
Jeff Johnsone7245742012-09-05 17:12:55 -0700528
Jeff Johnson295189b2012-06-20 16:38:30 -0700529 // DPH HASH ENTRY FIELDS NEEDED IN HAL ONLY
Jeff Johnsone7245742012-09-05 17:12:55 -0700530
Jeff Johnson295189b2012-06-20 16:38:30 -0700531 ///////////////////////////////////////////////////////////////////////
Jeff Johnsone7245742012-09-05 17:12:55 -0700532
Jeff Johnson295189b2012-06-20 16:38:30 -0700533 tANI_U8 dpuSig:4; // DPU signiture
Jeff Johnsone7245742012-09-05 17:12:55 -0700534
Jeff Johnson295189b2012-06-20 16:38:30 -0700535 tANI_U8 staSig:4; // STA signature
Jeff Johnsone7245742012-09-05 17:12:55 -0700536
Jeff Johnson295189b2012-06-20 16:38:30 -0700537 tANI_U8 staType;
538
Jeff Johnsone7245742012-09-05 17:12:55 -0700539
Jeff Johnson295189b2012-06-20 16:38:30 -0700540 tANI_U16 bssId; // BSSID
Jeff Johnsone7245742012-09-05 17:12:55 -0700541
Jeff Johnson295189b2012-06-20 16:38:30 -0700542 tANI_U16 assocId; // Association ID
543
544
Jeff Johnsone7245742012-09-05 17:12:55 -0700545
546
Jeff Johnson295189b2012-06-20 16:38:30 -0700547 //This is the real sta index generated by HAL
Jeff Johnsone7245742012-09-05 17:12:55 -0700548
Jeff Johnson295189b2012-06-20 16:38:30 -0700549 tANI_U16 staIndex;
Jeff Johnsone7245742012-09-05 17:12:55 -0700550
Jeff Johnson295189b2012-06-20 16:38:30 -0700551 tANI_U8 staAddr[6];
Jeff Johnsone7245742012-09-05 17:12:55 -0700552
Jeff Johnson295189b2012-06-20 16:38:30 -0700553 /*The DPU signatures will be sent eventually to TL to help it determine the
Jeff Johnsone7245742012-09-05 17:12:55 -0700554
Jeff Johnson295189b2012-06-20 16:38:30 -0700555 association to which a packet belongs to*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700556
Jeff Johnson295189b2012-06-20 16:38:30 -0700557 /*Unicast DPU signature*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700558
Jeff Johnson295189b2012-06-20 16:38:30 -0700559 tANI_U8 ucUcastSig;
560
Jeff Johnsone7245742012-09-05 17:12:55 -0700561
Jeff Johnson295189b2012-06-20 16:38:30 -0700562 /*Broadcast DPU signature*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700563
Jeff Johnson295189b2012-06-20 16:38:30 -0700564 tANI_U8 ucBcastSig;
565
Jeff Johnsone7245742012-09-05 17:12:55 -0700566
Jeff Johnson295189b2012-06-20 16:38:30 -0700567 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700568
Jeff Johnson295189b2012-06-20 16:38:30 -0700569 // PE needs this info on a per-STA, per-TID basis
Jeff Johnsone7245742012-09-05 17:12:55 -0700570
Jeff Johnson295189b2012-06-20 16:38:30 -0700571 // At any point in time, when this data is sampled,
Jeff Johnsone7245742012-09-05 17:12:55 -0700572
Jeff Johnson295189b2012-06-20 16:38:30 -0700573 // it gives a measure of:
Jeff Johnsone7245742012-09-05 17:12:55 -0700574
Jeff Johnson295189b2012-06-20 16:38:30 -0700575 // a) All the active bA sessions
Jeff Johnsone7245742012-09-05 17:12:55 -0700576
Jeff Johnson295189b2012-06-20 16:38:30 -0700577 // b) And the BA configuration itself
Jeff Johnsone7245742012-09-05 17:12:55 -0700578
Jeff Johnson295189b2012-06-20 16:38:30 -0700579 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700580
Jeff Johnson295189b2012-06-20 16:38:30 -0700581 tCfgTrafficClass tcCfg[STACFG_MAX_TC];
582
Jeff Johnsone7245742012-09-05 17:12:55 -0700583
Jeff Johnson295189b2012-06-20 16:38:30 -0700584 // Block Ack state
Jeff Johnsone7245742012-09-05 17:12:55 -0700585
Jeff Johnson295189b2012-06-20 16:38:30 -0700586 // This is used between PE and HAL only.
Jeff Johnsone7245742012-09-05 17:12:55 -0700587
Jeff Johnson295189b2012-06-20 16:38:30 -0700588 // can be set to one of the values from the following enum
Jeff Johnsone7245742012-09-05 17:12:55 -0700589
Jeff Johnson295189b2012-06-20 16:38:30 -0700590 /*typedef enum eLimBAState
Jeff Johnsone7245742012-09-05 17:12:55 -0700591
Jeff Johnson295189b2012-06-20 16:38:30 -0700592 {
Jeff Johnsone7245742012-09-05 17:12:55 -0700593
Jeff Johnson295189b2012-06-20 16:38:30 -0700594 eLIM_BA_STATE_IDLE, // we are not waiting for anything from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700595
Jeff Johnson295189b2012-06-20 16:38:30 -0700596 eLIM_BA_STATE_WT_ADD_RSP, //We are waiting for Add rsponse from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700597
Jeff Johnson295189b2012-06-20 16:38:30 -0700598 eLIM_BA_STATE_WT_DEL_RSP // We are waiting for Del response from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700599
Jeff Johnson295189b2012-06-20 16:38:30 -0700600 } tLimBAState; */
601
602
Jeff Johnsone7245742012-09-05 17:12:55 -0700603
604
Jeff Johnson295189b2012-06-20 16:38:30 -0700605 //BA state bitmap 2 bits per tid
Jeff Johnsone7245742012-09-05 17:12:55 -0700606
Jeff Johnson295189b2012-06-20 16:38:30 -0700607 // BA state for tid i = (baState >> tid*2) & 0x3
Jeff Johnsone7245742012-09-05 17:12:55 -0700608
Jeff Johnson295189b2012-06-20 16:38:30 -0700609 tANI_U32 baState;
610
Jeff Johnsone7245742012-09-05 17:12:55 -0700611#ifdef WLAN_FEATURE_11AC
612 tANI_U8 vhtSupportedChannelWidthSet;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -0800613 tANI_U8 vhtBeamFormerCapable;
Jeff Johnsone7245742012-09-05 17:12:55 -0700614#endif
615
Chet Lanctot8cecea22014-02-11 19:09:36 -0800616#ifdef WLAN_FEATURE_11W
617 tANI_U8 pmfSaQueryState;
618 tANI_U8 pmfSaQueryRetryCount;
619 tANI_U16 pmfSaQueryCurrentTransId;
620 tANI_U16 pmfSaQueryStartTransId;
621 TX_TIMER pmfSaQueryTimer;
Sushant Kaushikefe08fa2015-07-06 14:54:09 +0530622 v_TIME_t last_unprot_deauth_disassoc;
623 tANI_U8 proct_deauh_disassoc_cnt;
Sushant Kaushik1f5f54b2015-07-28 14:32:22 +0530624 v_TIME_t last_assoc_received_time;
Chet Lanctot8cecea22014-02-11 19:09:36 -0800625#endif
626
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -0800627 tANI_U8 htLdpcCapable;
628 tANI_U8 vhtLdpcCapable;
Abhishek Singh683d7862014-11-05 17:34:31 +0530629 /* key installed for this STA or not in the firmware */
630 tANI_U8 isKeyInstalled;
Jeff Johnson295189b2012-06-20 16:38:30 -0700631 /* When a station with already an existing dph entry tries to
Jeff Johnsone7245742012-09-05 17:12:55 -0700632
Jeff Johnson295189b2012-06-20 16:38:30 -0700633 * associate again, the old dph entry will be zeroed out except
Jeff Johnsone7245742012-09-05 17:12:55 -0700634
Jeff Johnson295189b2012-06-20 16:38:30 -0700635 * for the next pointer. The next pointer must be defined at the
Jeff Johnsone7245742012-09-05 17:12:55 -0700636
Jeff Johnson295189b2012-06-20 16:38:30 -0700637 * end of the structure.
Jeff Johnsone7245742012-09-05 17:12:55 -0700638
Jeff Johnson295189b2012-06-20 16:38:30 -0700639 */
Sachin Ahuja60a50612015-04-20 17:55:08 +0530640 tANI_U8 isDisassocDeauthInProgress;
Abhishek Singh71b1c1e2016-06-15 12:51:57 +0530641 bool sta_deletion_in_progress;
Agrawal Ashisha8e8a722016-10-18 19:07:45 +0530642#ifdef SAP_AUTH_OFFLOAD
643 tANI_U8 dpuIndex;
644 tANI_U8 bcastDpuIndex;
645 tANI_U8 bcastMgmtDpuIdx;
646 tANI_U8 ucMgmtSig;
647#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700648 struct sDphHashNode *next;
649
Jeff Johnsone7245742012-09-05 17:12:55 -0700650
Jeff Johnson295189b2012-06-20 16:38:30 -0700651} tDphHashNode, *tpDphHashNode;
652
Jeff Johnsone7245742012-09-05 17:12:55 -0700653
Jeff Johnson295189b2012-06-20 16:38:30 -0700654#include "dphHashTable.h"
655
Jeff Johnsone7245742012-09-05 17:12:55 -0700656
Jeff Johnson295189b2012-06-20 16:38:30 -0700657// -------------------------------------------------------------------
658
Jeff Johnsone7245742012-09-05 17:12:55 -0700659
Jeff Johnson295189b2012-06-20 16:38:30 -0700660// get protection overrides from config variable
Jeff Johnsone7245742012-09-05 17:12:55 -0700661
Jeff Johnson295189b2012-06-20 16:38:30 -0700662// bit0: force cts to self protection for tx to Airgo peers
Jeff Johnsone7245742012-09-05 17:12:55 -0700663
Jeff Johnson295189b2012-06-20 16:38:30 -0700664// bit1: force cts to self protection for tx to non Airgo peers
Jeff Johnsone7245742012-09-05 17:12:55 -0700665
Jeff Johnson295189b2012-06-20 16:38:30 -0700666#define DPH_PROT_OVERRIDE_NONANI_PEER_GET(cfgval) ((cfgval) & 1)
Jeff Johnsone7245742012-09-05 17:12:55 -0700667
Jeff Johnson295189b2012-06-20 16:38:30 -0700668#define DPH_PROT_OVERRIDE_ANI_PEER_GET(cfgval) (((cfgval) & 2) >> 1)
669
Jeff Johnsone7245742012-09-05 17:12:55 -0700670
Jeff Johnson295189b2012-06-20 16:38:30 -0700671typedef struct sAniSirDph
Jeff Johnsone7245742012-09-05 17:12:55 -0700672
Jeff Johnson295189b2012-06-20 16:38:30 -0700673{
Jeff Johnsone7245742012-09-05 17:12:55 -0700674
Jeff Johnson295189b2012-06-20 16:38:30 -0700675 /// The hash table object
Jeff Johnsone7245742012-09-05 17:12:55 -0700676
Jeff Johnson295189b2012-06-20 16:38:30 -0700677 dphHashTableClass dphHashTable;
Jeff Johnsone7245742012-09-05 17:12:55 -0700678
Jeff Johnson295189b2012-06-20 16:38:30 -0700679} tAniSirDph, *tpAniSirDph;
680
Jeff Johnsone7245742012-09-05 17:12:55 -0700681
Jeff Johnson295189b2012-06-20 16:38:30 -0700682#endif
683
684
Jeff Johnsone7245742012-09-05 17:12:55 -0700685
686