blob: 9a53caf2a771b2c69944c1444e5d566002c9602c [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
2 * Copyright (c) 2012, Code Aurora Forum. 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
22/*
23 *
Jeff Johnsone7245742012-09-05 17:12:55 -070024
Jeff Johnson295189b2012-06-20 16:38:30 -070025 * Airgo Networks, Inc proprietary. All rights reserved.
26 * Author: Sandesh Goel
Jeff Johnsone7245742012-09-05 17:12:55 -070027
Jeff Johnson295189b2012-06-20 16:38:30 -070028 * Date: 02/25/02
Jeff Johnsone7245742012-09-05 17:12:55 -070029
Jeff Johnson295189b2012-06-20 16:38:30 -070030 * History:-
Jeff Johnsone7245742012-09-05 17:12:55 -070031
Jeff Johnson295189b2012-06-20 16:38:30 -070032 * Date Modified by Modification Information
Jeff Johnsone7245742012-09-05 17:12:55 -070033
Jeff Johnson295189b2012-06-20 16:38:30 -070034 * --------------------------------------------------------------------
Jeff Johnsone7245742012-09-05 17:12:55 -070035
Jeff Johnson295189b2012-06-20 16:38:30 -070036 *
Jeff Johnsone7245742012-09-05 17:12:55 -070037
Jeff Johnson295189b2012-06-20 16:38:30 -070038 */
39
Jeff Johnsone7245742012-09-05 17:12:55 -070040
Jeff Johnson295189b2012-06-20 16:38:30 -070041#ifndef __DPH_GLOBAL_H__
Jeff Johnsone7245742012-09-05 17:12:55 -070042
Jeff Johnson295189b2012-06-20 16:38:30 -070043#define __DPH_GLOBAL_H__
44
Jeff Johnsone7245742012-09-05 17:12:55 -070045
Jeff Johnson295189b2012-06-20 16:38:30 -070046#include "limGlobal.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070047
Jeff Johnson295189b2012-06-20 16:38:30 -070048//#include "parserApi.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070049
Jeff Johnson295189b2012-06-20 16:38:30 -070050#include "sirMacProtDef.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070051
Jeff Johnson295189b2012-06-20 16:38:30 -070052#include "sirMacPropExts.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070053
Jeff Johnson295189b2012-06-20 16:38:30 -070054#include "sirApi.h"
55
Jeff Johnsone7245742012-09-05 17:12:55 -070056
Jeff Johnson295189b2012-06-20 16:38:30 -070057/// Following determines whether statistics are maintained or not
Jeff Johnsone7245742012-09-05 17:12:55 -070058
Jeff Johnson295189b2012-06-20 16:38:30 -070059#define DPH_STATS
60
Jeff Johnsone7245742012-09-05 17:12:55 -070061
Jeff Johnson295189b2012-06-20 16:38:30 -070062/// traffic category not allowed
Jeff Johnsone7245742012-09-05 17:12:55 -070063
Jeff Johnson295189b2012-06-20 16:38:30 -070064#define DPH_TID_NOTALLOWED 0xFF
65
Jeff Johnsone7245742012-09-05 17:12:55 -070066
Jeff Johnson295189b2012-06-20 16:38:30 -070067/// Periodicity of invocation of rate adaptation (in ms)
Jeff Johnsone7245742012-09-05 17:12:55 -070068
Jeff Johnson295189b2012-06-20 16:38:30 -070069#define DPH_RATE_ADAPTATION_PERIOD 20
70
Jeff Johnsone7245742012-09-05 17:12:55 -070071
Jeff Johnson295189b2012-06-20 16:38:30 -070072// Rate indices
Jeff Johnsone7245742012-09-05 17:12:55 -070073
Jeff Johnson295189b2012-06-20 16:38:30 -070074#define DPH_PHY_RATE_1_INDEX 0
Jeff Johnsone7245742012-09-05 17:12:55 -070075
Jeff Johnson295189b2012-06-20 16:38:30 -070076#define DPH_PHY_RATE_2_INDEX 1
Jeff Johnsone7245742012-09-05 17:12:55 -070077
Jeff Johnson295189b2012-06-20 16:38:30 -070078#define DPH_PHY_RATE_5_5_INDEX 2
Jeff Johnsone7245742012-09-05 17:12:55 -070079
Jeff Johnson295189b2012-06-20 16:38:30 -070080#define DPH_PHY_RATE_11_INDEX 3
Jeff Johnsone7245742012-09-05 17:12:55 -070081
Jeff Johnson295189b2012-06-20 16:38:30 -070082#define DPH_PHY_RATE_6_INDEX 4
Jeff Johnsone7245742012-09-05 17:12:55 -070083
Jeff Johnson295189b2012-06-20 16:38:30 -070084#define DPH_PHY_RATE_9_INDEX 5
Jeff Johnsone7245742012-09-05 17:12:55 -070085
Jeff Johnson295189b2012-06-20 16:38:30 -070086#define DPH_PHY_RATE_12_INDEX 6
Jeff Johnsone7245742012-09-05 17:12:55 -070087
Jeff Johnson295189b2012-06-20 16:38:30 -070088#define DPH_PHY_RATE_18_INDEX 7
Jeff Johnsone7245742012-09-05 17:12:55 -070089
Jeff Johnson295189b2012-06-20 16:38:30 -070090#define DPH_PHY_RATE_24_INDEX 8
Jeff Johnsone7245742012-09-05 17:12:55 -070091
Jeff Johnson295189b2012-06-20 16:38:30 -070092#define DPH_PHY_RATE_36_INDEX 9
Jeff Johnsone7245742012-09-05 17:12:55 -070093
Jeff Johnson295189b2012-06-20 16:38:30 -070094#define DPH_PHY_RATE_48_INDEX 10
Jeff Johnsone7245742012-09-05 17:12:55 -070095
Jeff Johnson295189b2012-06-20 16:38:30 -070096#define DPH_PHY_RATE_54_INDEX 11
Jeff Johnsone7245742012-09-05 17:12:55 -070097
Jeff Johnson295189b2012-06-20 16:38:30 -070098#define DPH_PHY_RATE_72_INDEX 12
Jeff Johnsone7245742012-09-05 17:12:55 -070099
Jeff Johnson295189b2012-06-20 16:38:30 -0700100#define DPH_PHY_RATE_96_INDEX 13
Jeff Johnsone7245742012-09-05 17:12:55 -0700101
Jeff Johnson295189b2012-06-20 16:38:30 -0700102#define DPH_PHY_RATE_108_INDEX 14
Jeff Johnsone7245742012-09-05 17:12:55 -0700103
Jeff Johnson295189b2012-06-20 16:38:30 -0700104#define DPH_PHY_RATE_144_INDEX 15
Jeff Johnsone7245742012-09-05 17:12:55 -0700105
Jeff Johnson295189b2012-06-20 16:38:30 -0700106#define DPH_PHY_RATE_MAX_INDEX 16
107
Jeff Johnsone7245742012-09-05 17:12:55 -0700108
Jeff Johnson295189b2012-06-20 16:38:30 -0700109/// Maximum time to wait for a management packet to go out (ms)
Jeff Johnsone7245742012-09-05 17:12:55 -0700110
Jeff Johnson295189b2012-06-20 16:38:30 -0700111#define DPH_MAX_MGMT_WAIT_TIME 10000
112
Jeff Johnsone7245742012-09-05 17:12:55 -0700113
Jeff Johnson295189b2012-06-20 16:38:30 -0700114/// Step size for the wait time histogram (ms)
Jeff Johnsone7245742012-09-05 17:12:55 -0700115
Jeff Johnson295189b2012-06-20 16:38:30 -0700116#define DPH_WAIT_HIST_STEP 20
117
Jeff Johnsone7245742012-09-05 17:12:55 -0700118
Jeff Johnson295189b2012-06-20 16:38:30 -0700119/// Number of entries in wait time histogram
Jeff Johnsone7245742012-09-05 17:12:55 -0700120
Jeff Johnson295189b2012-06-20 16:38:30 -0700121#define DPH_WAIT_HIST_SIZE 100
122
Jeff Johnsone7245742012-09-05 17:12:55 -0700123
Jeff Johnson295189b2012-06-20 16:38:30 -0700124/// TCID for Management & Keep Alive Mgmt frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700125
Jeff Johnson295189b2012-06-20 16:38:30 -0700126#define DPH_MGMT_TCID 4
Jeff Johnsone7245742012-09-05 17:12:55 -0700127
Jeff Johnson295189b2012-06-20 16:38:30 -0700128#define DPH_KEEPALIVE_PROBE_RESPONSE_TCID 0
129
Jeff Johnsone7245742012-09-05 17:12:55 -0700130
Jeff Johnson295189b2012-06-20 16:38:30 -0700131/// STAID for Management frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700132
Jeff Johnson295189b2012-06-20 16:38:30 -0700133#define DPH_USE_MGMT_STAID -1
134
Jeff Johnsone7245742012-09-05 17:12:55 -0700135
Jeff Johnson295189b2012-06-20 16:38:30 -0700136// Keep Alive frames
Jeff Johnsone7245742012-09-05 17:12:55 -0700137
Jeff Johnson295189b2012-06-20 16:38:30 -0700138#define DPH_NON_KEEPALIVE_FRAME 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700139
Jeff Johnson295189b2012-06-20 16:38:30 -0700140#define DPH_KEEPALIVE_FRAME 1
141
Jeff Johnsone7245742012-09-05 17:12:55 -0700142
Jeff Johnson295189b2012-06-20 16:38:30 -0700143/// Mask for subtype, type, protocol version, order and wep fields in the mac frame control
Jeff Johnsone7245742012-09-05 17:12:55 -0700144
Jeff Johnson295189b2012-06-20 16:38:30 -0700145#define DPH_FC_BD_FILL_MASK 0xFFCC
146
Jeff Johnsone7245742012-09-05 17:12:55 -0700147
Jeff Johnson295189b2012-06-20 16:38:30 -0700148/// Enable/Disable Txop generation in TFP for HCF mode
Jeff Johnsone7245742012-09-05 17:12:55 -0700149
Jeff Johnson295189b2012-06-20 16:38:30 -0700150#define DPH_ENABLE_HCF_TXOP_GEN_AT_TFP 0x00
Jeff Johnsone7245742012-09-05 17:12:55 -0700151
Jeff Johnson295189b2012-06-20 16:38:30 -0700152#define DPH_DISABLE_HCF_TXOP_GEN_AT_TFP 0x02
153
Jeff Johnsone7245742012-09-05 17:12:55 -0700154
Jeff Johnson295189b2012-06-20 16:38:30 -0700155/// Enable/Disable Txop generation in TFP for EDCF mode
Jeff Johnsone7245742012-09-05 17:12:55 -0700156
Jeff Johnson295189b2012-06-20 16:38:30 -0700157#define DPH_ENABLE_EDCF_TXOP_GEN_AT_TFP 0x00
Jeff Johnsone7245742012-09-05 17:12:55 -0700158
Jeff Johnson295189b2012-06-20 16:38:30 -0700159#define DPH_DISABLE_EDCF_TXOP_GEN_AT_TFP 0x01
160
Jeff Johnsone7245742012-09-05 17:12:55 -0700161
Jeff Johnson295189b2012-06-20 16:38:30 -0700162#define DPH_DUMP_ALL_STA_ID -1
Jeff Johnsone7245742012-09-05 17:12:55 -0700163
Jeff Johnson295189b2012-06-20 16:38:30 -0700164#define DPH_DUMP_RX_BD 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700165
Jeff Johnson295189b2012-06-20 16:38:30 -0700166#define DPH_DUMP_TX_BD 1
Jeff Johnsone7245742012-09-05 17:12:55 -0700167
Jeff Johnson295189b2012-06-20 16:38:30 -0700168#define DPH_DUMP_TX_MGMT_BD 2
169
Jeff Johnsone7245742012-09-05 17:12:55 -0700170
Jeff Johnson295189b2012-06-20 16:38:30 -0700171//DPH Hash Index for BSS(STA's Peer) on station.
Jeff Johnsone7245742012-09-05 17:12:55 -0700172
Jeff Johnson295189b2012-06-20 16:38:30 -0700173#define DPH_STA_HASH_INDEX_PEER 1
174
Jeff Johnsone7245742012-09-05 17:12:55 -0700175
Jeff Johnson295189b2012-06-20 16:38:30 -0700176typedef struct sDphRateBasedCtr
Jeff Johnsone7245742012-09-05 17:12:55 -0700177
Jeff Johnson295189b2012-06-20 16:38:30 -0700178{
Jeff Johnsone7245742012-09-05 17:12:55 -0700179
Jeff Johnson295189b2012-06-20 16:38:30 -0700180 tANI_U32 hi;
Jeff Johnsone7245742012-09-05 17:12:55 -0700181
Jeff Johnson295189b2012-06-20 16:38:30 -0700182 tANI_U32 lo;
Jeff Johnsone7245742012-09-05 17:12:55 -0700183
Jeff Johnson295189b2012-06-20 16:38:30 -0700184} tDphRateBasedCtr;
185
Jeff Johnsone7245742012-09-05 17:12:55 -0700186
Jeff Johnson295189b2012-06-20 16:38:30 -0700187typedef struct sDphPhyRates
Jeff Johnsone7245742012-09-05 17:12:55 -0700188
Jeff Johnson295189b2012-06-20 16:38:30 -0700189{
Jeff Johnsone7245742012-09-05 17:12:55 -0700190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191 tANI_U8 dataRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700192
Jeff Johnson295189b2012-06-20 16:38:30 -0700193 tANI_U8 ackRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700194
Jeff Johnson295189b2012-06-20 16:38:30 -0700195 tANI_U8 rtsRateX2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700196
Jeff Johnson295189b2012-06-20 16:38:30 -0700197} tDphPhyRates;
198
Jeff Johnsone7245742012-09-05 17:12:55 -0700199
Jeff Johnson295189b2012-06-20 16:38:30 -0700200typedef struct sDphIFSValues
Jeff Johnsone7245742012-09-05 17:12:55 -0700201
Jeff Johnson295189b2012-06-20 16:38:30 -0700202{
Jeff Johnsone7245742012-09-05 17:12:55 -0700203
Jeff Johnson295189b2012-06-20 16:38:30 -0700204 tANI_U8 sifs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700205
Jeff Johnson295189b2012-06-20 16:38:30 -0700206 tANI_U8 pifs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700207
Jeff Johnson295189b2012-06-20 16:38:30 -0700208 tANI_U8 difs;
Jeff Johnsone7245742012-09-05 17:12:55 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 tANI_U8 preamble;
Jeff Johnsone7245742012-09-05 17:12:55 -0700211
Jeff Johnson295189b2012-06-20 16:38:30 -0700212} tDphIFSValues;
213
Jeff Johnsone7245742012-09-05 17:12:55 -0700214
Jeff Johnson295189b2012-06-20 16:38:30 -0700215typedef struct sDphQosParams
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 addtsPresent;
Jeff Johnsone7245742012-09-05 17:12:55 -0700220
Jeff Johnson295189b2012-06-20 16:38:30 -0700221 tSirAddtsReqInfo addts;
Jeff Johnsone7245742012-09-05 17:12:55 -0700222
Jeff Johnson295189b2012-06-20 16:38:30 -0700223 tSirMacQosCapabilityStaIE capability;
Jeff Johnsone7245742012-09-05 17:12:55 -0700224
Jeff Johnson295189b2012-06-20 16:38:30 -0700225} tDphQosParams;
226
Jeff Johnsone7245742012-09-05 17:12:55 -0700227
Jeff Johnson295189b2012-06-20 16:38:30 -0700228/// Queue attribute structure
Jeff Johnsone7245742012-09-05 17:12:55 -0700229
Jeff Johnson295189b2012-06-20 16:38:30 -0700230typedef struct sDphQueueAttr
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_U16 valid : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700235
Jeff Johnson295189b2012-06-20 16:38:30 -0700236 tANI_U16 seqNum : 12;
Jeff Johnsone7245742012-09-05 17:12:55 -0700237
Jeff Johnson295189b2012-06-20 16:38:30 -0700238 tANI_U16 ackPolicy : 2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700239
Jeff Johnson295189b2012-06-20 16:38:30 -0700240 tANI_U16 rsvd : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700241
Jeff Johnson295189b2012-06-20 16:38:30 -0700242} tDphQueueAttr, *tpDphQueueAttr;
243
Jeff Johnsone7245742012-09-05 17:12:55 -0700244
Jeff Johnson295189b2012-06-20 16:38:30 -0700245#if defined( FEATURE_WLAN_INTEGRATED_SOC )
Jeff Johnsone7245742012-09-05 17:12:55 -0700246
Jeff Johnson295189b2012-06-20 16:38:30 -0700247typedef struct sCfgTrafficClass {
Jeff Johnsone7245742012-09-05 17:12:55 -0700248
Jeff Johnson295189b2012-06-20 16:38:30 -0700249 //Use Block ACK on this STA/TID
Jeff Johnsone7245742012-09-05 17:12:55 -0700250
Jeff Johnson295189b2012-06-20 16:38:30 -0700251 // Fields used to store the default TC parameters for this TSPEC.
Jeff Johnsone7245742012-09-05 17:12:55 -0700252
Jeff Johnson295189b2012-06-20 16:38:30 -0700253 // They will be used when the TSPEC is deleted.
Jeff Johnsone7245742012-09-05 17:12:55 -0700254
Jeff Johnson295189b2012-06-20 16:38:30 -0700255 tANI_U8 fDisableTx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700256
Jeff Johnson295189b2012-06-20 16:38:30 -0700257 tANI_U8 fDisableRx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700258
Jeff Johnson295189b2012-06-20 16:38:30 -0700259 tANI_U8 fUseBATx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700260
Jeff Johnson295189b2012-06-20 16:38:30 -0700261 tANI_U8 fUseBARx:1;
262
Jeff Johnsone7245742012-09-05 17:12:55 -0700263
Jeff Johnson295189b2012-06-20 16:38:30 -0700264 // 1: expect to see frames with compressed BA coming from this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700265
Jeff Johnson295189b2012-06-20 16:38:30 -0700266 tANI_U8 fRxCompBA:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700267
Jeff Johnson295189b2012-06-20 16:38:30 -0700268 tANI_U8 fTxCompBA:1;
269
Jeff Johnsone7245742012-09-05 17:12:55 -0700270
Jeff Johnson295189b2012-06-20 16:38:30 -0700271 // immediate ACK or delayed ACK for frames from this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 tANI_U8 fRxBApolicy:1;
274
Jeff Johnsone7245742012-09-05 17:12:55 -0700275
Jeff Johnson295189b2012-06-20 16:38:30 -0700276 // immediate ACK or delayed ACK for frames to this peer MAC
Jeff Johnsone7245742012-09-05 17:12:55 -0700277
Jeff Johnson295189b2012-06-20 16:38:30 -0700278 tANI_U8 fTxBApolicy:1;
279
Jeff Johnsone7245742012-09-05 17:12:55 -0700280
Jeff Johnson295189b2012-06-20 16:38:30 -0700281 //Initiator or recipient
Jeff Johnsone7245742012-09-05 17:12:55 -0700282
Jeff Johnson295189b2012-06-20 16:38:30 -0700283 tANI_U8 role;
284
Jeff Johnsone7245742012-09-05 17:12:55 -0700285
Jeff Johnson295189b2012-06-20 16:38:30 -0700286 //Max # of MSDU received from this STA, negotiated at ADDBA
Jeff Johnsone7245742012-09-05 17:12:55 -0700287
Jeff Johnson295189b2012-06-20 16:38:30 -0700288 // used for maintaining block ack state info
Jeff Johnsone7245742012-09-05 17:12:55 -0700289
Jeff Johnson295189b2012-06-20 16:38:30 -0700290 tANI_U16 rxBufSize;
291
Jeff Johnsone7245742012-09-05 17:12:55 -0700292
Jeff Johnson295189b2012-06-20 16:38:30 -0700293 //Max # of MSDU send to this STA, negotiated at ADDBA
Jeff Johnsone7245742012-09-05 17:12:55 -0700294
Jeff Johnson295189b2012-06-20 16:38:30 -0700295 tANI_U16 txBufSize;
296
Jeff Johnsone7245742012-09-05 17:12:55 -0700297
Jeff Johnson295189b2012-06-20 16:38:30 -0700298 //BA timeout negotiated at ADDBA. Unit: TU
Jeff Johnsone7245742012-09-05 17:12:55 -0700299
Jeff Johnson295189b2012-06-20 16:38:30 -0700300 tANI_U16 tuTxBAWaitTimeout; //Time for Tx to wait for BA. 0 means no timeout
301
Jeff Johnsone7245742012-09-05 17:12:55 -0700302
Jeff Johnson295189b2012-06-20 16:38:30 -0700303 tANI_U16 tuRxBAWaitTimeout; //Time for Rx to wait for explicit/implicit BAR. 0 means no timeout
304
Jeff Johnsone7245742012-09-05 17:12:55 -0700305
Jeff Johnson295189b2012-06-20 16:38:30 -0700306} tCfgTrafficClass;
Jeff Johnsone7245742012-09-05 17:12:55 -0700307
Jeff Johnson295189b2012-06-20 16:38:30 -0700308#endif /* EATURE_WLAN_INTEGRATED_SOC */
309
Jeff Johnsone7245742012-09-05 17:12:55 -0700310
Jeff Johnson295189b2012-06-20 16:38:30 -0700311/// STA state node
Jeff Johnsone7245742012-09-05 17:12:55 -0700312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313typedef struct sDphHashNode
Jeff Johnsone7245742012-09-05 17:12:55 -0700314
Jeff Johnson295189b2012-06-20 16:38:30 -0700315{
316
Jeff Johnsone7245742012-09-05 17:12:55 -0700317
Jeff Johnson295189b2012-06-20 16:38:30 -0700318 //BYTE 0
Jeff Johnsone7245742012-09-05 17:12:55 -0700319
Jeff Johnson295189b2012-06-20 16:38:30 -0700320 // HASH ENTRY FIELDS NOT NEEDED IN HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700321
Jeff Johnson295189b2012-06-20 16:38:30 -0700322 /// This STA valid or not
Jeff Johnsone7245742012-09-05 17:12:55 -0700323
Jeff Johnson295189b2012-06-20 16:38:30 -0700324 tANI_U8 valid : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700325
Jeff Johnson295189b2012-06-20 16:38:30 -0700326 tANI_U8 encPolicy : 3;
Jeff Johnsone7245742012-09-05 17:12:55 -0700327
Jeff Johnson295189b2012-06-20 16:38:30 -0700328 tANI_U8 defaultKey : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700329
Jeff Johnson295189b2012-06-20 16:38:30 -0700330 tANI_U8 defaultKeyId : 2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700331
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 tANI_U8 qosMode : 1;
333
Jeff Johnsone7245742012-09-05 17:12:55 -0700334
Jeff Johnson295189b2012-06-20 16:38:30 -0700335 //BYTE 1
Jeff Johnsone7245742012-09-05 17:12:55 -0700336
Jeff Johnson295189b2012-06-20 16:38:30 -0700337 tANI_U8 erpEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700338
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 tANI_U8 added : 1; // This has been added to the dph hash table
Jeff Johnsone7245742012-09-05 17:12:55 -0700340
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 tANI_U8 linkTestOn : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700342
Jeff Johnson295189b2012-06-20 16:38:30 -0700343 tANI_U8 shortPreambleEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700344
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 tANI_U8 shortSlotTimeEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700346
Jeff Johnson295189b2012-06-20 16:38:30 -0700347 tANI_U8 stopTx:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700348
Jeff Johnson295189b2012-06-20 16:38:30 -0700349 tANI_U8 wmeEnabled: 1; // set if both ap and sta are wme capable
Jeff Johnsone7245742012-09-05 17:12:55 -0700350
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 tANI_U8 lleEnabled: 1; // set if both ap and sta are 11e capable
352
Jeff Johnsone7245742012-09-05 17:12:55 -0700353
Jeff Johnson295189b2012-06-20 16:38:30 -0700354 //BYTE 2
Jeff Johnsone7245742012-09-05 17:12:55 -0700355
Jeff Johnson295189b2012-06-20 16:38:30 -0700356 tANI_U8 wsmEnabled: 1; // set if both ap and sta are wsm capable
Jeff Johnsone7245742012-09-05 17:12:55 -0700357
Jeff Johnson295189b2012-06-20 16:38:30 -0700358 tANI_U8 versionPresent:1; // station gave version info
Jeff Johnsone7245742012-09-05 17:12:55 -0700359
Jeff Johnson295189b2012-06-20 16:38:30 -0700360 tANI_U8 burstEnableForce:1; // allow bursting regardless of qosMode
Jeff Johnsone7245742012-09-05 17:12:55 -0700361
Jeff Johnson295189b2012-06-20 16:38:30 -0700362 tANI_U8 staAuthenticated:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700363
Jeff Johnson295189b2012-06-20 16:38:30 -0700364 /// Whether the peer is ANI or not
Jeff Johnsone7245742012-09-05 17:12:55 -0700365
Jeff Johnson295189b2012-06-20 16:38:30 -0700366 tANI_U8 aniPeer:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700367
Jeff Johnson295189b2012-06-20 16:38:30 -0700368 tANI_U8 titanPeer:1; // flag to indicate if its a titan peer
Jeff Johnsone7245742012-09-05 17:12:55 -0700369
Jeff Johnson295189b2012-06-20 16:38:30 -0700370 tANI_U8 fAniCount:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700371
Jeff Johnson295189b2012-06-20 16:38:30 -0700372#if (WNI_POLARIS_FW_PRODUCT == AP)
Jeff Johnsone7245742012-09-05 17:12:55 -0700373
Jeff Johnson295189b2012-06-20 16:38:30 -0700374 tANI_U8 hcfEnabled : 1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700375
Jeff Johnson295189b2012-06-20 16:38:30 -0700376#else
Jeff Johnsone7245742012-09-05 17:12:55 -0700377
Jeff Johnson295189b2012-06-20 16:38:30 -0700378 tANI_U8 rsvd:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700379
Jeff Johnson295189b2012-06-20 16:38:30 -0700380#endif
381
Jeff Johnsone7245742012-09-05 17:12:55 -0700382
Jeff Johnson295189b2012-06-20 16:38:30 -0700383 /// Fragmentation size
Jeff Johnsone7245742012-09-05 17:12:55 -0700384
Jeff Johnson295189b2012-06-20 16:38:30 -0700385 tANI_U16 fragSize;
386
Jeff Johnsone7245742012-09-05 17:12:55 -0700387
Jeff Johnson295189b2012-06-20 16:38:30 -0700388 /// LIM state
Jeff Johnsone7245742012-09-05 17:12:55 -0700389
Jeff Johnson295189b2012-06-20 16:38:30 -0700390 tLimMlmStaContext mlmStaContext;
391
Jeff Johnsone7245742012-09-05 17:12:55 -0700392
Jeff Johnson295189b2012-06-20 16:38:30 -0700393 /// Number of Tim to wait if the STA doesn't respond / fetch data
Jeff Johnsone7245742012-09-05 17:12:55 -0700394
Jeff Johnson295189b2012-06-20 16:38:30 -0700395 tANI_U8 timWaitCount;
396
Jeff Johnsone7245742012-09-05 17:12:55 -0700397
Jeff Johnson295189b2012-06-20 16:38:30 -0700398 /// Number of Successfull MPDU's being sent
Jeff Johnsone7245742012-09-05 17:12:55 -0700399
Jeff Johnson295189b2012-06-20 16:38:30 -0700400 tANI_U32 curTxMpduCnt;
401
402
Jeff Johnsone7245742012-09-05 17:12:55 -0700403
404
Jeff Johnson295189b2012-06-20 16:38:30 -0700405 /// number of consecutive TIMs sent without response
Jeff Johnsone7245742012-09-05 17:12:55 -0700406
Jeff Johnson295189b2012-06-20 16:38:30 -0700407 tANI_U8 numTimSent;
408
Jeff Johnsone7245742012-09-05 17:12:55 -0700409
Jeff Johnson295189b2012-06-20 16:38:30 -0700410 // qos parameter info
Jeff Johnsone7245742012-09-05 17:12:55 -0700411
Jeff Johnson295189b2012-06-20 16:38:30 -0700412 tDphQosParams qos;
413
Jeff Johnsone7245742012-09-05 17:12:55 -0700414
Jeff Johnson295189b2012-06-20 16:38:30 -0700415 // station version info - valid only if versionPresent is set
Jeff Johnsone7245742012-09-05 17:12:55 -0700416
Jeff Johnson295189b2012-06-20 16:38:30 -0700417 tSirMacPropVersion version;
Jeff Johnsone7245742012-09-05 17:12:55 -0700418
Jeff Johnson295189b2012-06-20 16:38:30 -0700419 // station proprietary capability
Jeff Johnsone7245742012-09-05 17:12:55 -0700420
Jeff Johnson295189b2012-06-20 16:38:30 -0700421 tANI_U16 propCapability;
422
Jeff Johnsone7245742012-09-05 17:12:55 -0700423
Jeff Johnson295189b2012-06-20 16:38:30 -0700424#ifdef PLM_WDS
Jeff Johnsone7245742012-09-05 17:12:55 -0700425
Jeff Johnson295189b2012-06-20 16:38:30 -0700426 tANI_U8 wdsIndex;
Jeff Johnsone7245742012-09-05 17:12:55 -0700427
Jeff Johnson295189b2012-06-20 16:38:30 -0700428 tANI_U8 wdsPeerBeaconSeen;
Jeff Johnsone7245742012-09-05 17:12:55 -0700429
Jeff Johnson295189b2012-06-20 16:38:30 -0700430#endif
431
Jeff Johnsone7245742012-09-05 17:12:55 -0700432
Jeff Johnson295189b2012-06-20 16:38:30 -0700433 //Taurus capabilities
Jeff Johnsone7245742012-09-05 17:12:55 -0700434
Jeff Johnson295189b2012-06-20 16:38:30 -0700435 tANI_U16 baPolicyFlag; //BA Policy for each TID.
436
Jeff Johnsone7245742012-09-05 17:12:55 -0700437
Jeff Johnson295189b2012-06-20 16:38:30 -0700438 /*
Jeff Johnsone7245742012-09-05 17:12:55 -0700439
Jeff Johnson295189b2012-06-20 16:38:30 -0700440 * All the legacy and airgo supported rates.
Jeff Johnsone7245742012-09-05 17:12:55 -0700441
Jeff Johnson295189b2012-06-20 16:38:30 -0700442 */
Jeff Johnsone7245742012-09-05 17:12:55 -0700443
Jeff Johnson295189b2012-06-20 16:38:30 -0700444 tSirSupportedRates supportedRates;
445
Jeff Johnsone7245742012-09-05 17:12:55 -0700446
Jeff Johnson295189b2012-06-20 16:38:30 -0700447 tANI_U8 htGreenfield:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700448
Jeff Johnson295189b2012-06-20 16:38:30 -0700449 tANI_U8 htShortGI40Mhz:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700450
Jeff Johnson295189b2012-06-20 16:38:30 -0700451 tANI_U8 htShortGI20Mhz:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700452
Jeff Johnson295189b2012-06-20 16:38:30 -0700453 // DSSS/CCK at 40 MHz: Enabled 1 or Disabled
Jeff Johnsone7245742012-09-05 17:12:55 -0700454
Jeff Johnson295189b2012-06-20 16:38:30 -0700455 tANI_U8 htDsssCckRate40MHzSupport:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700456
Jeff Johnson295189b2012-06-20 16:38:30 -0700457 // L-SIG TXOP Protection used only if peer support available
Jeff Johnsone7245742012-09-05 17:12:55 -0700458
Jeff Johnson295189b2012-06-20 16:38:30 -0700459 tANI_U8 htLsigTXOPProtection:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700460
Jeff Johnson295189b2012-06-20 16:38:30 -0700461 // A-MPDU Density
Jeff Johnsone7245742012-09-05 17:12:55 -0700462
Jeff Johnson295189b2012-06-20 16:38:30 -0700463 // 000 - No restriction
Jeff Johnsone7245742012-09-05 17:12:55 -0700464
Jeff Johnson295189b2012-06-20 16:38:30 -0700465 // 001 - 1/8 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700466
Jeff Johnson295189b2012-06-20 16:38:30 -0700467 // 010 - 1/4 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700468
Jeff Johnson295189b2012-06-20 16:38:30 -0700469 // 011 - 1/2 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700470
Jeff Johnson295189b2012-06-20 16:38:30 -0700471 // 100 - 1 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700472
Jeff Johnson295189b2012-06-20 16:38:30 -0700473 // 101 - 2 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700474
Jeff Johnson295189b2012-06-20 16:38:30 -0700475 // 110 - 4 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700476
Jeff Johnson295189b2012-06-20 16:38:30 -0700477 // 111 - 8 usec
Jeff Johnsone7245742012-09-05 17:12:55 -0700478
Jeff Johnson295189b2012-06-20 16:38:30 -0700479 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700480
Jeff Johnson295189b2012-06-20 16:38:30 -0700481 tANI_U8 htAMpduDensity:3;
482
483
Jeff Johnsone7245742012-09-05 17:12:55 -0700484
485
Jeff Johnson295189b2012-06-20 16:38:30 -0700486 //Set to 0 for 3839 octets
Jeff Johnsone7245742012-09-05 17:12:55 -0700487
Jeff Johnson295189b2012-06-20 16:38:30 -0700488 //Set to 1 for 7935 octets
Jeff Johnsone7245742012-09-05 17:12:55 -0700489
Jeff Johnson295189b2012-06-20 16:38:30 -0700490 tANI_U8 htMaxAmsduLength;
491
492
Jeff Johnsone7245742012-09-05 17:12:55 -0700493
494
Jeff Johnson295189b2012-06-20 16:38:30 -0700495 // MIMO Power Save
Jeff Johnsone7245742012-09-05 17:12:55 -0700496
Jeff Johnson295189b2012-06-20 16:38:30 -0700497 tSirMacHTMIMOPowerSaveState htMIMOPSState;
498
Jeff Johnsone7245742012-09-05 17:12:55 -0700499
Jeff Johnson295189b2012-06-20 16:38:30 -0700500 //
501
Jeff Johnsone7245742012-09-05 17:12:55 -0700502
Jeff Johnson295189b2012-06-20 16:38:30 -0700503 // Maximum Rx A-MPDU factor
Jeff Johnsone7245742012-09-05 17:12:55 -0700504
Jeff Johnson295189b2012-06-20 16:38:30 -0700505 tANI_U8 htMaxRxAMpduFactor:2;
Jeff Johnsone7245742012-09-05 17:12:55 -0700506
Jeff Johnson295189b2012-06-20 16:38:30 -0700507 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700508
Jeff Johnson295189b2012-06-20 16:38:30 -0700509 // Recommended Tx Width Set
Jeff Johnsone7245742012-09-05 17:12:55 -0700510
Jeff Johnson295189b2012-06-20 16:38:30 -0700511 // 0 - use 20 MHz channel (control channel)
Jeff Johnsone7245742012-09-05 17:12:55 -0700512
Jeff Johnson295189b2012-06-20 16:38:30 -0700513 // 1 - use 40 Mhz channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700514
Jeff Johnson295189b2012-06-20 16:38:30 -0700515 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700516
Jeff Johnson295189b2012-06-20 16:38:30 -0700517 tANI_U8 htSupportedChannelWidthSet:1;
Jeff Johnsone7245742012-09-05 17:12:55 -0700518 tANI_U8 htSecondaryChannelOffset:2;
519 tANI_U8 rsvd1:3;
520
Jeff Johnson295189b2012-06-20 16:38:30 -0700521
522 ///////////////////////////////////////////////////////////////////////
Jeff Johnsone7245742012-09-05 17:12:55 -0700523
Jeff Johnson295189b2012-06-20 16:38:30 -0700524 // DPH HASH ENTRY FIELDS NEEDED IN HAL ONLY
Jeff Johnsone7245742012-09-05 17:12:55 -0700525
Jeff Johnson295189b2012-06-20 16:38:30 -0700526 ///////////////////////////////////////////////////////////////////////
Jeff Johnsone7245742012-09-05 17:12:55 -0700527
Jeff Johnson295189b2012-06-20 16:38:30 -0700528 tANI_U8 dpuSig:4; // DPU signiture
Jeff Johnsone7245742012-09-05 17:12:55 -0700529
Jeff Johnson295189b2012-06-20 16:38:30 -0700530 tANI_U8 staSig:4; // STA signature
Jeff Johnsone7245742012-09-05 17:12:55 -0700531
Jeff Johnson295189b2012-06-20 16:38:30 -0700532 tANI_U8 staType;
533
Jeff Johnsone7245742012-09-05 17:12:55 -0700534
Jeff Johnson295189b2012-06-20 16:38:30 -0700535 tANI_U16 bssId; // BSSID
Jeff Johnsone7245742012-09-05 17:12:55 -0700536
Jeff Johnson295189b2012-06-20 16:38:30 -0700537 tANI_U16 assocId; // Association ID
538
539
Jeff Johnsone7245742012-09-05 17:12:55 -0700540
541
Jeff Johnson295189b2012-06-20 16:38:30 -0700542 //This is the real sta index generated by HAL
Jeff Johnsone7245742012-09-05 17:12:55 -0700543
Jeff Johnson295189b2012-06-20 16:38:30 -0700544 tANI_U16 staIndex;
Jeff Johnsone7245742012-09-05 17:12:55 -0700545
Jeff Johnson295189b2012-06-20 16:38:30 -0700546 tANI_U8 staAddr[6];
Jeff Johnsone7245742012-09-05 17:12:55 -0700547
Jeff Johnson295189b2012-06-20 16:38:30 -0700548 /*The DPU signatures will be sent eventually to TL to help it determine the
Jeff Johnsone7245742012-09-05 17:12:55 -0700549
Jeff Johnson295189b2012-06-20 16:38:30 -0700550 association to which a packet belongs to*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700551
Jeff Johnson295189b2012-06-20 16:38:30 -0700552 /*Unicast DPU signature*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700553
Jeff Johnson295189b2012-06-20 16:38:30 -0700554 tANI_U8 ucUcastSig;
555
Jeff Johnsone7245742012-09-05 17:12:55 -0700556
Jeff Johnson295189b2012-06-20 16:38:30 -0700557 /*Broadcast DPU signature*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700558
Jeff Johnson295189b2012-06-20 16:38:30 -0700559 tANI_U8 ucBcastSig;
560
Jeff Johnsone7245742012-09-05 17:12:55 -0700561
Jeff Johnson295189b2012-06-20 16:38:30 -0700562 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700563
Jeff Johnson295189b2012-06-20 16:38:30 -0700564 // PE needs this info on a per-STA, per-TID basis
Jeff Johnsone7245742012-09-05 17:12:55 -0700565
Jeff Johnson295189b2012-06-20 16:38:30 -0700566 // At any point in time, when this data is sampled,
Jeff Johnsone7245742012-09-05 17:12:55 -0700567
Jeff Johnson295189b2012-06-20 16:38:30 -0700568 // it gives a measure of:
Jeff Johnsone7245742012-09-05 17:12:55 -0700569
Jeff Johnson295189b2012-06-20 16:38:30 -0700570 // a) All the active bA sessions
Jeff Johnsone7245742012-09-05 17:12:55 -0700571
Jeff Johnson295189b2012-06-20 16:38:30 -0700572 // b) And the BA configuration itself
Jeff Johnsone7245742012-09-05 17:12:55 -0700573
Jeff Johnson295189b2012-06-20 16:38:30 -0700574 //
Jeff Johnsone7245742012-09-05 17:12:55 -0700575
Jeff Johnson295189b2012-06-20 16:38:30 -0700576 tCfgTrafficClass tcCfg[STACFG_MAX_TC];
577
Jeff Johnsone7245742012-09-05 17:12:55 -0700578
Jeff Johnson295189b2012-06-20 16:38:30 -0700579 // Block Ack state
Jeff Johnsone7245742012-09-05 17:12:55 -0700580
Jeff Johnson295189b2012-06-20 16:38:30 -0700581 // This is used between PE and HAL only.
Jeff Johnsone7245742012-09-05 17:12:55 -0700582
Jeff Johnson295189b2012-06-20 16:38:30 -0700583 // can be set to one of the values from the following enum
Jeff Johnsone7245742012-09-05 17:12:55 -0700584
Jeff Johnson295189b2012-06-20 16:38:30 -0700585 /*typedef enum eLimBAState
Jeff Johnsone7245742012-09-05 17:12:55 -0700586
Jeff Johnson295189b2012-06-20 16:38:30 -0700587 {
Jeff Johnsone7245742012-09-05 17:12:55 -0700588
Jeff Johnson295189b2012-06-20 16:38:30 -0700589 eLIM_BA_STATE_IDLE, // we are not waiting for anything from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700590
Jeff Johnson295189b2012-06-20 16:38:30 -0700591 eLIM_BA_STATE_WT_ADD_RSP, //We are waiting for Add rsponse from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700592
Jeff Johnson295189b2012-06-20 16:38:30 -0700593 eLIM_BA_STATE_WT_DEL_RSP // We are waiting for Del response from HAL.
Jeff Johnsone7245742012-09-05 17:12:55 -0700594
Jeff Johnson295189b2012-06-20 16:38:30 -0700595 } tLimBAState; */
596
597
Jeff Johnsone7245742012-09-05 17:12:55 -0700598
599
Jeff Johnson295189b2012-06-20 16:38:30 -0700600 //BA state bitmap 2 bits per tid
Jeff Johnsone7245742012-09-05 17:12:55 -0700601
Jeff Johnson295189b2012-06-20 16:38:30 -0700602 // BA state for tid i = (baState >> tid*2) & 0x3
Jeff Johnsone7245742012-09-05 17:12:55 -0700603
Jeff Johnson295189b2012-06-20 16:38:30 -0700604 tANI_U32 baState;
605
Jeff Johnsone7245742012-09-05 17:12:55 -0700606#ifdef WLAN_FEATURE_11AC
607 tANI_U8 vhtSupportedChannelWidthSet;
608#endif
609
Jeff Johnson295189b2012-06-20 16:38:30 -0700610 /* When a station with already an existing dph entry tries to
Jeff Johnsone7245742012-09-05 17:12:55 -0700611
Jeff Johnson295189b2012-06-20 16:38:30 -0700612 * associate again, the old dph entry will be zeroed out except
Jeff Johnsone7245742012-09-05 17:12:55 -0700613
Jeff Johnson295189b2012-06-20 16:38:30 -0700614 * for the next pointer. The next pointer must be defined at the
Jeff Johnsone7245742012-09-05 17:12:55 -0700615
Jeff Johnson295189b2012-06-20 16:38:30 -0700616 * end of the structure.
Jeff Johnsone7245742012-09-05 17:12:55 -0700617
Jeff Johnson295189b2012-06-20 16:38:30 -0700618 */
Jeff Johnsone7245742012-09-05 17:12:55 -0700619
Jeff Johnson295189b2012-06-20 16:38:30 -0700620 struct sDphHashNode *next;
621
Jeff Johnsone7245742012-09-05 17:12:55 -0700622
Jeff Johnson295189b2012-06-20 16:38:30 -0700623} tDphHashNode, *tpDphHashNode;
624
Jeff Johnsone7245742012-09-05 17:12:55 -0700625
Jeff Johnson295189b2012-06-20 16:38:30 -0700626#include "dphHashTable.h"
627
Jeff Johnsone7245742012-09-05 17:12:55 -0700628
Jeff Johnson295189b2012-06-20 16:38:30 -0700629// -------------------------------------------------------------------
630
Jeff Johnsone7245742012-09-05 17:12:55 -0700631
Jeff Johnson295189b2012-06-20 16:38:30 -0700632// get protection overrides from config variable
Jeff Johnsone7245742012-09-05 17:12:55 -0700633
Jeff Johnson295189b2012-06-20 16:38:30 -0700634// bit0: force cts to self protection for tx to Airgo peers
Jeff Johnsone7245742012-09-05 17:12:55 -0700635
Jeff Johnson295189b2012-06-20 16:38:30 -0700636// bit1: force cts to self protection for tx to non Airgo peers
Jeff Johnsone7245742012-09-05 17:12:55 -0700637
Jeff Johnson295189b2012-06-20 16:38:30 -0700638#define DPH_PROT_OVERRIDE_NONANI_PEER_GET(cfgval) ((cfgval) & 1)
Jeff Johnsone7245742012-09-05 17:12:55 -0700639
Jeff Johnson295189b2012-06-20 16:38:30 -0700640#define DPH_PROT_OVERRIDE_ANI_PEER_GET(cfgval) (((cfgval) & 2) >> 1)
641
Jeff Johnsone7245742012-09-05 17:12:55 -0700642
Jeff Johnson295189b2012-06-20 16:38:30 -0700643typedef struct sAniSirDph
Jeff Johnsone7245742012-09-05 17:12:55 -0700644
Jeff Johnson295189b2012-06-20 16:38:30 -0700645{
Jeff Johnsone7245742012-09-05 17:12:55 -0700646
Jeff Johnson295189b2012-06-20 16:38:30 -0700647 /// The hash table object
Jeff Johnsone7245742012-09-05 17:12:55 -0700648
Jeff Johnson295189b2012-06-20 16:38:30 -0700649 dphHashTableClass dphHashTable;
Jeff Johnsone7245742012-09-05 17:12:55 -0700650
Jeff Johnson295189b2012-06-20 16:38:30 -0700651} tAniSirDph, *tpAniSirDph;
652
Jeff Johnsone7245742012-09-05 17:12:55 -0700653
Jeff Johnson295189b2012-06-20 16:38:30 -0700654#endif
655
656
Jeff Johnsone7245742012-09-05 17:12:55 -0700657
658