blob: f8ebfb95c8640c9d14496a540da79e2fa9878247 [file] [log] [blame]
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -07001/*
2 * Copyright (c) 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
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
28#ifndef _HALMSGAPI_H_
29#define _HALMSGAPI_H_
30
31#include "halTypes.h"
32#include "sirApi.h"
33#include "sirParams.h"
34
35#define HAL_NUM_BSSID 2
36/* operMode in ADD BSS message */
37#define BSS_OPERATIONAL_MODE_AP 0
38#define BSS_OPERATIONAL_MODE_STA 1
39
40/* STA entry type in add sta message */
41#define STA_ENTRY_SELF 0
42#define STA_ENTRY_OTHER 1
43#define STA_ENTRY_BSSID 2
44#define STA_ENTRY_BCAST 3 //Special station id for transmitting broadcast frames.
45#define STA_ENTRY_PEER STA_ENTRY_OTHER
46#ifdef FEATURE_WLAN_TDLS
47#define STA_ENTRY_TDLS_PEER 4
48#endif /* FEATURE_WLAN_TDLS */
49
50#define STA_ENTRY_TRANSMITTER STA_ENTRY_SELF
51#define STA_ENTRY_RECEIVER STA_ENTRY_OTHER
52
53#define HAL_STA_INVALID_IDX 0xFF
54#define HAL_BSS_INVALID_IDX 0xFF
55
56#define HAL_BSSPERSONA_INVALID_IDX 0xFF
57
58#define WLAN_BSS_PROTECTION_ON 1
59#define WLAN_BSS_PROTECTION_OFF 0
60
61/* Station index allocation after Broadcast station */
62#define HAL_MAX_NUM_BCAST_STATIONS 1
63#define HAL_MIN_BCAST_STA_INDEX ((HAL_MAX_NUM_BCAST_STATIONS>0)?0:HAL_STA_INVALID_IDX)
64#define HAL_MAX_BCAST_STA_INDEX ((HAL_MAX_NUM_BCAST_STATIONS>0)?(HAL_MAX_NUM_BCAST_STATIONS - 1):HAL_STA_INVALID_IDX)
65#define HAL_MIN_STA_INDEX ((HAL_MAX_BCAST_STA_INDEX!=HAL_STA_INVALID_IDX)?(HAL_MAX_BCAST_STA_INDEX+1):0)
66#define HAL_MAX_STA_INDEX (HAL_NUM_STA)
67
68/* Compilation flags for enabling disabling selfSta and bcastSta per BSS */
69#define HAL_SELF_STA_PER_BSS 1
70#define HAL_BCAST_STA_PER_BSS 1
71
72//invalid channel id.
73#define HAL_INVALID_CHANNEL_ID 0
74
75/* BSS index used when no BSS is associated with the station. For example,
76 * driver creates only one self station without valid BSS while scanning.
77 * Then this index is used to tell softmac that BSS is not valid.
78 */
79#define BSSIDX_INVALID 254
80
81#define HAL_IS_VALID_BSS_INDEX(pMac, bssIdx) ((BSSIDX_INVALID != (bssIdx)) && ((bssIdx) < (pMac)->hal.memMap.maxBssids))
82
83// Beacon structure
84typedef __ani_attr_pre_packed struct sAniBeaconStruct
85{
86 tANI_U32 beaconLength; // Indicates the beacon length
87 tSirMacMgmtHdr macHdr; // MAC Header for beacon
88 // Beacon body follows here
89} __ani_attr_packed tAniBeaconStruct, *tpAniBeaconStruct;
90
91// probeRsp template structure
92typedef __ani_attr_pre_packed struct sAniProbeRspStruct
93{
94 tSirMacMgmtHdr macHdr; // MAC Header for probeRsp
95 // probeRsp body follows here
96} __ani_attr_packed tAniProbeRspStruct, *tpAniProbeRspStruct;
97
98
99// Per TC parameters
100typedef struct
101{
102 tANI_U8 disableTx;
103 tANI_U8 disableRx;
104 tANI_U8 rxCompBA; // 1: expect to see frames with compressed BA coming from this peer MAC
105 tANI_U8 rxBApolicy; // immediate ACK or delayed ACK for frames from this peer MAC
106 tANI_U8 txCompBA; // 1: using compressed BA to send to this peer MAC
107 tANI_U8 txBApolicy; // immediate ACK or delayed ACK for frames to this peer MAC
108 tANI_U8 rxUseBA;
109 tANI_U8 txUseBA;
110 tANI_U8 rxBufferSize;
111 tANI_U8 txBufferSize;
112 tANI_U16 txBAWaitTimeout;
113 tANI_U16 rxBAWaitTimeout;
114} tTCParams;
115
116
117typedef struct
118{
119 // First two fields bssid and assocId are used to find staid for sta.
120 // BSSID of STA
121 tSirMacAddr bssId;
122
123 // ASSOC ID, as assigned by PE/LIM. This needs to be assigned
124 // on a per BSS basis
125 tANI_U16 assocId;
126
127 // Field to indicate if this is sta entry for itself STA adding entry for itself
128 // or remote (AP adding STA after successful association.
129 // This may or may not be required in production driver.
130 tANI_U8 staType; // 0 - Self, 1 other/remote, 2 - bssid
131
132 tANI_U8 shortPreambleSupported;
133
134 // MAC Address of STA
135 tSirMacAddr staMac;
136
137 // Listen interval.
138 tANI_U16 listenInterval;
139
140 // Support for 11e/WMM
141 tANI_U8 wmmEnabled;
142
143 //
144 // U-APSD Flags: 1b per AC
145 // Encoded as follows:
146 // b7 b6 b5 b4 b3 b2 b1 b0
147 // X X X X BE BK VI VO
148 //
149 tANI_U8 uAPSD;
150
151 // Max SP Length
152 tANI_U8 maxSPLen;
153
154 // 11n HT capable STA
155 tANI_U8 htCapable;
156
157 // 11n Green Field preamble support
158 // 0 - Not supported, 1 - Supported
159 // Add it to RA related fields of sta entry in HAL
160 tANI_U8 greenFieldCapable;
161
162 // TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz
163 tANI_U8 txChannelWidthSet;
164
165 // MIMO Power Save
166 tSirMacHTMIMOPowerSaveState mimoPS;
167
168 // RIFS mode: 0 - NA, 1 - Allowed
169 tANI_U8 rifsMode;
170
171 // L-SIG TXOP Protection mechanism
172 // 0 - No Support, 1 - Supported
173 // SG - there is global field.
174 tANI_U8 lsigTxopProtection;
175
176 // delayed ba support
177 tANI_U8 delBASupport;
178 // delayed ba support... TBD
179
180#ifdef ANI_DVT_DEBUG
181 //These 6 fields are used only by DVT driver to pass selected
182 //rates to Softmac through HAL.
183 tANI_U8 primaryRateIndex, secondaryRateIndex, tertiaryRateIndex;
184 tANI_U8 primaryRateIndex40, secondaryRateIndex40, tertiaryRateIndex40;
185#endif
186
187 // FIXME
188 //Add these fields to message
189 tANI_U8 us32MaxAmpduDuration; //in units of 32 us.
190 tANI_U8 maxAmpduSize; // 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k
191 tANI_U8 maxAmpduDensity; // 3 : 0~7 : 2^(11nAMPDUdensity -4)
192 tANI_U8 maxAmsduSize; // 1 : 3839 bytes, 0 : 7935 bytes
193
194 // TC parameters
195 tTCParams staTCParams[STACFG_MAX_TC];
196
197 // Compression and Concat parameters for DPU
198 tANI_U16 deCompEnable;
199 tANI_U16 compEnable;
200 tANI_U16 concatSeqRmv;
201 tANI_U16 concatSeqIns;
202
203
204 //11n Parameters
205
206 /**
207 HT STA should set it to 1 if it is enabled in BSS
208 HT STA should set it to 0 if AP does not support it.
209 This indication is sent to HAL and HAL uses this flag
210 to pickup up appropriate 40Mhz rates.
211 */
212 tANI_U8 fDsssCckMode40Mhz;
213
214
215 //short GI support for 40Mhz packets
216 tANI_U8 fShortGI40Mhz;
217
218 //short GI support for 20Mhz packets
219 tANI_U8 fShortGI20Mhz;
220
221
222
223 /*
224 * All the legacy and airgo supported rates.
225 * These rates are the intersection of peer and self capabilities.
226 */
227 tSirSupportedRates supportedRates;
228
229
230
231
232
233 /*
234 * Following parameters are for returning status and station index from HAL to PE
235 * via response message. HAL does not read them.
236 */
237 // The return status of SIR_HAL_ADD_STA_REQ is reported here
238 eHalStatus status;
239 // Station index; valid only when 'status' field value is eHAL_STATUS_SUCCESS
240 tANI_U8 staIdx;
241
242 //BSSID of BSS to which the station is associated.
243 //This should be filled back in by HAL, and sent back to LIM as part of
244 //the response message, so LIM can cache it in the station entry of hash table.
245 //When station is deleted, LIM will make use of this bssIdx to delete
246 //BSS from hal tables and from softmac.
247 tANI_U8 bssIdx;
248
249 /* this requires change in testDbg. I will change it later after coordinating with Diag team.
250 tANI_U8 fFwdTrigerSOSPtoHost; //trigger to start service period
251 tANI_U8 fFwdTrigerEOSPtoHost; //trigger to end service period
252 */
253
254 //HAL should update the existing STA entry, if this flag is set.
255 //PE will set this flag in case of reassoc, where we want to resue the
256 //the old staID and still return success.
257 tANI_U8 updateSta;
258 //A flag to indicate to HAL if the response message is required.
259 tANI_U8 respReqd;
260
261 /* Robust Management Frame (RMF) enabled/disabled */
262 tANI_U8 rmfEnabled;
263
264 /* The unicast encryption type in the association */
265 tANI_U32 encryptType;
266
267 /*The DPU signatures will be sent eventually to TL to help it determine the
268 association to which a packet belongs to*/
269 /*Unicast DPU index*/
270 tANI_U8 ucUcastSig;
271
272 /*Broadcast DPU index*/
273 tANI_U8 ucBcastSig;
274
275 tANI_U8 sessionId; //PE session id for PE<->HAL interface
276 // HAL just sends back what it receives.
277
278 /*if this is a P2P Capable Sta*/
279 tANI_U8 p2pCapableSta;
280
281#ifdef WLAN_FEATURE_11AC
282 tANI_U8 vhtCapable;
283 tANI_U8 vhtTxChannelWidthSet;
284 tANI_U8 vhtTxBFCapable;
285#endif
286
287 tANI_U8 htLdpcCapable;
288 tANI_U8 vhtLdpcCapable;
289 tANI_U8 smesessionId;
290 tANI_U8 wpa_rsn;
291 tANI_U16 capab_info;
292 tANI_U16 ht_caps;
293 tANI_U32 vht_caps;
294 tSirNwType nwType;
295} tAddStaParams, *tpAddStaParams;
296
297
298typedef struct
299{
300 // Station index
301 tANI_U16 staIdx;
302 tANI_U16 templIdx;
303 tANI_U8 rateIdx;
304
305 // The return status of SIR_HAL_UPDATE_STARATEINFO_REQ is reported here
306 eHalStatus status;
307
308 //A flag to indicate to HAL if the response message is required.
309 tANI_U8 respReqd;
310
311} tUpdateTxCmdTemplParams, *tpUpdateTxCmdTemplParams;
312//FIXME: change the structure name
313
314
315
316
317
318
319
320
321typedef struct
322{
323 // index of STA to delete - this should be the same as the index returned
324 // as part of the AddSta
325 tANI_U16 staIdx;
326 tANI_U16 assocId;
327 eHalStatus status; // Status of SIR_HAL_DELETE_STA_REQ is reported here
328 tANI_U8 respReqd;
329 tANI_U8 sessionId; // PE session id for PE<->HAL interface
330 // PE session id now added to all HAL<->PE transacations
331 // HAL sends it back unmodified.
332 tANI_U8 smesessionId;
333} tDeleteStaParams, * tpDeleteStaParams;
334
335/*
336 * This is used by PE to configure the key information on a given station.
337 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
338 * a preconfigured key from a BSS the station assoicated with; otherwise
339 * a new key descriptor is created based on the key field.
340 */
341typedef struct
342{
343 tANI_U16 staIdx;
344 tAniEdType encType; // Encryption/Decryption type
345 tAniWepType wepType; // valid only for WEP
346 tANI_U8 defWEPIdx; // Default WEP key, valid only for static WEP, must between 0 and 3
347 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS]; // valid only for non-static WEP encyrptions
348 tANI_U8 singleTidRc; // 1=Single TID based Replay Count, 0=Per TID based RC
349 tANI_U8 smesessionId;
350 tSirMacAddr peerMacAddr;
351 /*
352 * Following parameter is for returning status
353 * via response message. HAL does not read them.
354 */
355 eHalStatus status; // status of SIR_HAL_SET_STAKEY_REQ is reported here
356 tANI_U8 sessionId; // PE session id for PE<->HAL interface
357
358 // PE session id now added to all HAL<->PE transacations
359 // HAL sends back response with no modification
360} tSetStaKeyParams, *tpSetStaKeyParams;
361
362//
363// Mesg header is used from tSirMsgQ
364// Mesg Type = SIR_HAL_ADD_BSS_REQ
365//
366typedef struct
367{
368 // MAC Address/BSSID
369 tSirMacAddr bssId;
370#ifdef HAL_SELF_STA_PER_BSS
371 // Self Mac Address
372 tSirMacAddr selfMacAddr;
373#endif
374 // BSS type
375 // FIXME - Is this reqd? Do we want to isolate BSS/IBSS parameters?
376 tSirBssType bssType;
377
378 // AP - 0; STA - 1 ;
379 tANI_U8 operMode;
380
381 // Network type - b/g/a/MixedMode/GreenField/Legacy
382 // TODO - This enum to be updated for HT support
383 // Review FIXME - Why is this needed?
384 tSirNwType nwType;
385
386 tANI_U8 shortSlotTimeSupported;
387 tANI_U8 llaCoexist;
388 tANI_U8 llbCoexist;
389 tANI_U8 llgCoexist;
390 tANI_U8 ht20Coexist;
391 tANI_U8 llnNonGFCoexist;
392 tANI_U8 fLsigTXOPProtectionFullSupport;
393 tANI_U8 fRIFSMode;
394
395 // Beacon Interval
396 tSirMacBeaconInterval beaconInterval;
397
398 // DTIM period
399 tANI_U8 dtimPeriod;
400
401 // CF Param Set
402 // Review FIXME - Does HAL need this?
403 tSirMacCfParamSet cfParamSet;
404
405 // MAC Rate Set
406 // Review FIXME - Does HAL need this?
407 tSirMacRateSet rateSet;
408
409 // 802.11n related HT parameters that are dynamic
410
411 // Enable/Disable HT capabilities
412 tANI_U8 htCapable;
413
414 // Enable/Disable OBSS protection
415 tANI_U8 obssProtEnabled;
416
417 // RMF enabled/disabled
418 tANI_U8 rmfEnabled;
419
420 // HT Operating Mode
421 // Review FIXME - Does HAL need this?
422 tSirMacHTOperatingMode htOperMode;
423
424 // Dual CTS Protection: 0 - Unused, 1 - Used
425 tANI_U8 dualCTSProtection;
426
427 // TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz
428 tANI_U8 txChannelWidthSet;
429
430 // Current Operating Channel
431 tANI_U8 currentOperChannel;
432
433 // Current Extension Channel, if applicable
434 tANI_U8 currentExtChannel;
435
436 // Add a STA entry for "itself" -
437 // On AP - Add the AP itself in an "STA context"
438 // On STA - Add the AP to which this STA is joining in an "STA context"
439 tAddStaParams staContext;
440
441 /*
442 * Following parameters are for returning status and station index from HAL to PE
443 * via response message. HAL does not read them.
444 */
445 // The return status of SIR_HAL_ADD_BSS_REQ is reported here
446 eHalStatus status;
447 // BSS index allocated by HAL.
448 // valid only when 'status' field is eHAL_STATUS_SUCCESS
449 tANI_U16 bssIdx;
450
451 // Broadcast DPU descriptor index allocated by HAL and used for broadcast/multicast packets.
452 // valid only when 'status' field is eHAL_STATUS_SUCCESS
453 tANI_U8 bcastDpuDescIndx;
454
455 // DPU signature to be used for broadcast/multicast packets
456 // valid only when 'status' field is eHAL_STATUS_SUCCESS
457 tANI_U8 bcastDpuSignature;
458
459 // DPU descriptor index allocated by HAL, used for bcast/mcast management packets
460 tANI_U8 mgmtDpuDescIndx;
461
462 // DPU signature to be used for bcast/mcast management packets
463 tANI_U8 mgmtDpuSignature;
464
465 //HAL should update the existing BSS entry, if this flag is set.
466 //PE will set this flag in case of reassoc, where we want to resue the
467 //the old bssID and still return success.
468 tANI_U8 updateBss;
469
470 // Add BSSID info for rxp filter in IBSS mode
471 tSirMacSSid ssId;
472
473 //HAL will send the response message to LIM only when this flag is set.
474 //LIM will set this flag, whereas DVT will not set this flag.
475 tANI_U8 respReqd;
476 tANI_U8 sessionId; // PE session id for PE<->HAL interface
477 // PE session id now added to all HAL<->PE transacations
478 // HAL Sends the sessionId unmodified.
479
480#if defined WLAN_FEATURE_VOWIFI
481 tPowerdBm txMgmtPower; //HAL fills in the tx power used for mgmt frames in this field.
482 tPowerdBm maxTxPower; //max power to be used after applying the power constraint, if any
483#endif
484
485#if defined WLAN_FEATURE_VOWIFI_11R
486 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
487 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
488#endif
489
490 tANI_U8 ucMaxProbeRespRetryLimit; //probe Response Max retries
491 tANI_U8 bHiddenSSIDEn; //To Enable Hidden ssid.
492 tANI_U8 bProxyProbeRespEn; //To Enable Disable FW Proxy Probe Resp
493 tANI_U8 halPersona; //Persona for the BSS can be STA,AP,GO,CLIENT value same as tVOS_CON_MODE
494
495 //Spectrum Management Capability, 1 - Enabled, 0 - Disabled.
496 tANI_U8 bSpectrumMgtEnabled;
497#ifdef WLAN_FEATURE_11AC
498 tANI_U8 vhtCapable;
499 tANI_U8 vhtTxChannelWidthSet;
500#endif
501} tAddBssParams, * tpAddBssParams;
502
503typedef struct
504{
505 tANI_U8 bssIdx;
506 // The return status of SIR_HAL_DELETE_BSS_REQ is reported here
507 eHalStatus status;
508 //HAL will send the response message to LIM only when this flag is set.
509 //LIM will set this flag, whereas DVT will not set this flag.
510 tANI_U8 respReqd;
511 tANI_U8 sessionId; // PE session id for PE<->HAL interface
512 // HAL sends it back unmodified.
513 tSirMacAddr bssid; // Will be removed for PE-HAL integration
514 tANI_U8 smesessionId;
515} tDeleteBssParams, * tpDeleteBssParams;
516
517//
518// UAPSD AC mask: 1b per AC
519// LSB 4 bits for delivery enabled setting. msb 4 bits for trigger enabled settings.
520// Encoded as follows:
521// b7 b6 b5 b4 b3 b2 b1 b0
522// BE BK VI VO BE BK VI VO
523
524typedef struct
525{
526 tANI_U8 staIdx;
527 tANI_U8 uapsdACMask;
528 tANI_U8 maxSpLen;
529} tUpdateUapsdParams, * tpUpdateUapsdParams;
530
531typedef struct sSirScanEntry
532{
533 tANI_U8 bssIdx[HAL_NUM_BSSID];
534 tANI_U8 activeBSScnt;
535}tSirScanEntry, *ptSirScanEntry;
536
537//
538// Mesg header is used from tSirMsgQ
539// Mesg Type = SIR_HAL_INIT_SCAN_REQ
540//
541typedef struct {
542
543 eHalSysMode scanMode;
544
545 tSirMacAddr bssid;
546
547 tANI_U8 notifyBss;
548
549 tANI_U8 useNoA;
550
551 // If this flag is set HAL notifies PE when SMAC returns status.
552 tANI_U8 notifyHost;
553
554 tANI_U8 frameLength;
555 tANI_U8 frameType; // Data NULL or CTS to self
556
557 // Indicates the scan duration (in ms)
558 tANI_U16 scanDuration;
559
560 // For creation of CTS-to-Self and Data-NULL MAC packets
561 tSirMacMgmtHdr macMgmtHdr;
562
563 tSirScanEntry scanEntry;
564
565 // when this flag is set, HAL should check for link traffic prior to scan
566 tSirLinkTrafficCheck checkLinkTraffic;
567
568 /*
569 * Following parameters are for returning status and station index from HAL to PE
570 * via response message. HAL does not read them.
571 */
572 // The return status of SIR_HAL_INIT_SCAN_REQ is reported here
573 eHalStatus status;
574
575} tInitScanParams, * tpInitScanParams;
576
577typedef enum eDelStaReasonCode{
578 HAL_DEL_STA_REASON_CODE_KEEP_ALIVE = 0x1,
579 HAL_DEL_STA_REASON_CODE_TIM_BASED = 0x2,
580 HAL_DEL_STA_REASON_CODE_RA_BASED = 0x3,
581 HAL_DEL_STA_REASON_CODE_UNKNOWN_A2 = 0x4
582}tDelStaReasonCode;
583
584//
585// Msg header is used from tSirMsgQ
586// Msg Type = SIR_LIM_DELETE_STA_CONTEXT_IND
587//
588typedef struct {
589 tANI_U16 assocId;
590 tANI_U16 staId;
591 tSirMacAddr bssId; // TO SUPPORT BT-AMP
592 // HAL copies bssid from the sta table.
593 tSirMacAddr addr2; //
594 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
595} tDeleteStaContext, * tpDeleteStaContext;
596
597
598//
599// Mesg header is used from tSirMsgQ
600// Mesg Type = SIR_HAL_START_SCAN_REQ
601// FIXME - Can we just use tSirMsgQ directly, instead of using this structure?
602//
603typedef struct {
604
605 // Indicates the current scan channel
606 tANI_U8 scanChannel;
607
608 /*
609 * Following parameters are for returning status and station index from HAL to PE
610 * via response message. HAL does not read them.
611 */
612 // The return status of SIR_HAL_START_SCAN_REQ is reported here
613 eHalStatus status;
614
615#if defined WLAN_FEATURE_VOWIFI
616 tANI_U32 startTSF[2];
617 tPowerdBm txMgmtPower; //HAL fills in the tx power used for mgmt frames in this field.
618#endif
619} tStartScanParams, * tpStartScanParams;
620
621//
622// Mesg header is used from tSirMsgQ
623// Mesg Type = SIR_HAL_END_SCAN_REQ
624// FIXME - Can we just use tSirMsgQ directly, instead of using this structure?
625//
626typedef struct {
627
628 // Indicates the current scan channel
629 tANI_U8 scanChannel;
630
631 /*
632 * Following parameters are for returning status and station index from HAL to PE
633 * via response message. HAL does not read them.
634 */
635 // The return status of SIR_HAL_END_SCAN_REQ is reported here
636 eHalStatus status;
637
638} tEndScanParams, * tpEndScanParams;
639
640//
641// Mesg header is used from tSirMsgQ
642// Mesg Type = SIR_HAL_FINISH_SCAN_REQ
643//
644typedef struct {
645
646 // Identifies the operational state of the AP/STA.
647 // In case of the STA, only if the operState is non-zero will the rest of
648 // the parameters that follow be decoded
649 // In case of the AP, all parameters are valid
650 //
651 // 0 - Idle state, 1 - Link Established
652
653 eHalSysMode scanMode;
654
655 tSirMacAddr bssid;
656
657 // Current operating channel
658 tANI_U8 currentOperChannel;
659
660 // If 20/40 MHz is operational, this will indicate the 40 MHz extension
661 // channel in combination with the control channel
662 ePhyChanBondState cbState;
663
664 // For an STA, indicates if a Data NULL frame needs to be sent
665 // to the AP with FrameControl.PwrMgmt bit set to 0
666 tANI_U8 notifyBss;
667
668 tANI_U8 notifyHost;
669
670 tANI_U8 frameLength;
671 tANI_U8 frameType; // Data NULL or CTS to self
672
673 // For creation of CTS-to-Self and Data-NULL MAC packets
674 tSirMacMgmtHdr macMgmtHdr;
675
676 tSirScanEntry scanEntry;
677
678 /*
679 * Following parameters are for returning status and station index from HAL to PE
680 * via response message. HAL does not read them.
681 */
682 // The return status of SIR_HAL_FINISH_SCAN_REQ is reported here
683 eHalStatus status;
684
685} tFinishScanParams, * tpFinishScanParams;
686
687#ifdef FEATURE_OEM_DATA_SUPPORT
688
689#ifndef OEM_DATA_REQ_SIZE
690#define OEM_DATA_REQ_SIZE 134
691#endif
692#ifndef OEM_DATA_RSP_SIZE
693#define OEM_DATA_RSP_SIZE 1968
694#endif
695
696typedef struct
697{
698 tSirMacAddr selfMacAddr;
699 eHalStatus status;
700 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
701} tStartOemDataReq, *tpStartOemDataReq;
702
703typedef struct
704{
705 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
706} tStartOemDataRsp, *tpStartOemDataRsp;
707#endif
708
709typedef struct sBeaconGenStaInfo {
710 tANI_U16 assocId;
711 tANI_U32 staTxAckCnt;
712}tBeaconGenStaInfo, *tpBeaconGenStaInfo;
713//
714// Mesg header is used from tSirMsgQ
715// Mesg Type = SIR_LIM_BEACON_GEN_IND
716//
717
718typedef struct sBeaconGenParams {
719 // Identifies the BSSID for which it is time to generate a beacon
720 tANI_U8 bssIdx;
721 tSirMacAddr bssId;
722#ifdef FIXME_VOLANS
723 tANI_U8 numOfSta; /* Number of stations in power save, who have data pending*/
724 tANI_U8 numOfStaWithoutData; /* Number of stations in power save, who don't have any data pending*/
725 tANI_U8 fBroadcastTrafficPending ;
726 tANI_U8 dtimCount;
727#endif
728 tANI_U8 rsvd[3]; /** Align the Structure to 4 bytes as unalligned access will happen if
729 the staInfo is being Accessed */
730/** NOTE: tBeaconGenStaInfo staInfo[xx]; Depending on the Number of STA in PS, Every time
731 this array is being allocated and piled up at the End*/
732} tBeaconGenParams, * tpBeaconGenParams;
733
734typedef struct {
735 tSirMacAddr bssId;
736 tANI_U8 *beacon; // Beacon data.
737 tANI_U32 beaconLength; //length of the template.
738 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
739 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
740} tSendbeaconParams, * tpSendbeaconParams;
741
742typedef struct sSendProbeRespParams {
743 tSirMacAddr bssId;
744 tANI_U8 *pProbeRespTemplate;
745 tANI_U32 probeRespTemplateLen;
746 tANI_U32 ucProxyProbeReqValidIEBmap[8];
747} tSendProbeRespParams, * tpSendProbeRespParams;
748
749/*
750 * This is used by PE to create a set of WEP keys for a given BSS.
751 */
752typedef struct
753{
754 tANI_U8 bssIdx;
755 tAniEdType encType;
756 tANI_U8 numKeys;
757 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
758 tANI_U8 singleTidRc; // 1=Single TID based Replay Count, 0=Per TID based RC
759 tANI_U8 smesessionId;
760 /*
761 * Following parameter is for returning status
762 * via response message. HAL does not read them.
763 */
764 eHalStatus status; // status of SIR_HAL_SET_BSSKEY_REQ is reported here
765 tANI_U8 sessionId; // PE session id for PE<->HAL interface
766 // HAL sends this unmodified in the response
767} tSetBssKeyParams, *tpSetBssKeyParams;
768
769/*
770 * This is used by PE to Remove the key information on a given station.
771 */
772typedef struct
773{
774 tANI_U16 staIdx;
775 tAniEdType encType; // Encryption/Decryption type
776 tANI_U8 keyId;
777 tANI_BOOLEAN unicast;
778 /*
779 * Following parameter is for returning status
780 * via response message. HAL does not read them.
781 */
782 eHalStatus status; // return status of SIR_HAL_REMOVE_STAKEY_REQ
783 tANI_U8 sessionId; // PE session id for PE<->HAL interface
784 // HAL Sends back the PE session
785 // id unmodified
786} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
787
788/*
789 * This is used by PE to remove keys for a given BSS.
790 */
791typedef struct
792{
793 tANI_U8 bssIdx;
794 tAniEdType encType;
795 tANI_U8 keyId;
796 tANI_U8 wepType;
797 /*
798 * Following parameter is for returning status
799 * via response message. HAL does not read them.
800 */
801 eHalStatus status; // return status of SIR_HAL_REMOVE_BSSKEY_REQ
802 tANI_U8 sessionId; // PE session id for PE<->HAL interface
803 // HAL Sends back the PE session
804 // id unmodified
805} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
806
807typedef struct
808{
809 // index of STA to get the statistics from
810 tANI_U16 staIdx;
811 tANI_U8 encMode;
812 // The return status of SIR_HAL_DPU_STATS_REQ is reported here
813 eHalStatus status;
814 // The return statistics
815 tANI_U32 sendBlocks;
816 tANI_U32 recvBlocks;
817 tANI_U32 replays;
818 tANI_U8 micErrorCnt;
819 tANI_U32 protExclCnt;
820 tANI_U16 formatErrCnt;
821 tANI_U16 unDecryptableCnt;
822 tANI_U32 decryptErrCnt;
823 tANI_U32 decryptOkCnt;
824
825} tDpuStatsParams, * tpDpuStatsParams;
826
827
828/*
829 * Get the DPU signature based on a given staId
830 */
831typedef struct
832{
833 tANI_U16 staIdx;
834 /*
835 * Following parameter is for returning status
836 * via response message. HAL does not read them.
837 */
838 // The return status of SIR_HAL_SET_BSSKEY_REQ is reported here
839 eHalStatus status;
840 tANI_U8 dpuDescIndx;
841 tANI_U8 dpuSignature;
842} tGetDpuParams, *tpGetDpuParams;
843
844
845
846//HAL MSG: SIR_HAL_UPDATE_BEACON_IND
847typedef struct
848{
849
850 tANI_U8 bssIdx;
851
852 //shortPreamble mode. HAL should update all the STA rates when it
853 //receives this message
854 tANI_U8 fShortPreamble;
855 //short Slot time.
856 tANI_U8 fShortSlotTime;
857 //Beacon Interval
858 tANI_U16 beaconInterval;
859 //Protection related
860 tANI_U8 llaCoexist;
861 tANI_U8 llbCoexist;
862 tANI_U8 llgCoexist;
863 tANI_U8 ht20MhzCoexist;
864 tANI_U8 llnNonGFCoexist;
865 tANI_U8 fLsigTXOPProtectionFullSupport;
866 tANI_U8 fRIFSMode;
867
868 tANI_U16 paramChangeBitmap;
869 tANI_U8 smeSessionId;
870}tUpdateBeaconParams, *tpUpdateBeaconParams;
871
872#ifdef WLAN_FEATURE_11AC
873typedef struct
874{
875 tANI_U16 opMode;
876 tANI_U16 staId;
877 tANI_U16 smesessionId;
878 tSirMacAddr peer_mac;
879}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
880#endif
881
882//HAL MSG: SIR_HAL_UPDATE_CF_IND
883typedef struct
884{
885
886 tANI_U8 bssIdx;
887
888 /*
889 * cfpCount indicates how many DTIMs (including the current frame) appear before the next CFP start.
890 * A CFPCount of 0 indicates that the current DTIM marks the start of the CFP.
891 */
892 tANI_U8 cfpCount;
893
894 /* cfpPeriod indicates the number of DTIM intervals between the start of CFPs. */
895 tANI_U8 cfpPeriod;
896
897}tUpdateCFParams, *tpUpdateCFParams;
898
899
900
901//HAL MSG: SIR_HAL_UPDATE_DTIM_IND
902//This message not required, as Softmac is supposed to read these values from the beacon.
903//PE should not look at TIM element
904
905/*
906typedef struct
907{
908 tANI_U8 bssIdx;
909
910
911 //The DTIM Count field indicates how many beacons (including the current frame) appear before the next
912 // DTIM. A DTIM Count of 0 indicates that the current TIM is a DTIM.
913 //
914 tANI_U8 dtimCount;
915
916
917 // The DTIM Period field indicates the number of Beacon intervals between successive DTIMs. If all TIMs are
918 // DTIMs, the DTIM Period field has the value 1. The DTIM Period value 0 is reserved.
919 //
920 tANI_U8 dtimPeriod;
921
922}tUpdateDtimParams, *tpUpdateDtimParams;
923*/
924
925
926//HAL MSG: SIR_HAL_CHNL_SWITCH_REQ
927typedef struct
928{
929 tANI_U8 channelNumber;
930#ifndef WLAN_FEATURE_VOWIFI
931 tANI_U8 localPowerConstraint;
932#endif /* WLAN_FEATURE_VOWIFI */
933 ePhyChanBondState secondaryChannelOffset;
934 tANI_U8 peSessionId;
935#if defined WLAN_FEATURE_VOWIFI
936 tPowerdBm txMgmtPower; //HAL fills in the tx power used for mgmt frames in this field.
937 tPowerdBm maxTxPower;
938#endif
939 tSirMacAddr selfStaMacAddr;
940 //the request has power constraints, this should be applied only to that session
941 /* VO Wifi comment: BSSID is needed to identify which session issued this request. As the
942 request has power constraints, this should be applied only to that session */
943 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
944 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
945 */
946 tSirMacAddr bssId;
947
948 eHalStatus status;
949
950}tSwitchChannelParams, *tpSwitchChannelParams;
951
952typedef void (*tpSetLinkStateCallback)(tpAniSirGlobal pMac, void *msgParam );
953
954typedef struct sLinkStateParams
955{
956 // SIR_HAL_SET_LINK_STATE
957 tSirMacAddr bssid;
958 tSirMacAddr selfMacAddr;
959 tSirLinkState state;
960 tpSetLinkStateCallback callback;
961 void *callbackArg;
962#ifdef WLAN_FEATURE_VOWIFI_11R
963 int ft;
964 void * session;
965#endif
966} tLinkStateParams, * tpLinkStateParams;
967
968
969typedef struct
970{
971 tANI_U16 staIdx;
972 tANI_U16 tspecIdx; //TSPEC handler uniquely identifying a TSPEC for a STA in a BSS
973 tSirMacTspecIE tspec;
974 eHalStatus status;
975 tANI_U8 sessionId; //PE session id for PE<->HAL interface
976} tAddTsParams, *tpAddTsParams;
977
978typedef struct
979{
980 tANI_U16 staIdx;
981 tANI_U16 tspecIdx; //TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS
982 tSirMacAddr bssId; //TO SUPPORT BT-AMP
983
984} tDelTsParams, *tpDelTsParams;
985
986#ifdef WLAN_FEATURE_VOWIFI_11R
987
988#define HAL_QOS_NUM_TSPEC_MAX 2
989#define HAL_QOS_NUM_AC_MAX 4
990
991typedef struct
992{
993 tANI_U16 staIdx;
994 tANI_U16 tspecIdx; //TSPEC handler uniquely identifying a TSPEC for a STA in a BSS
995 tSirMacTspecIE tspec[HAL_QOS_NUM_AC_MAX];
996 eHalStatus status[HAL_QOS_NUM_AC_MAX];
997 tANI_U8 sessionId; //PE session id for PE<->HAL interface
998}tAggrAddTsParams, *tpAggrAddTsParams;
999
1000#endif /* WLAN_FEATURE_VOWIFI_11R */
1001
1002
1003typedef tSirRetStatus (*tHalMsgCallback)(tpAniSirGlobal pMac, tANI_U32 mesgId, void *mesgParam );
1004
1005
1006typedef struct
1007{
1008 tANI_U16 bssIdx;
1009 tANI_BOOLEAN highPerformance;
1010 tSirMacEdcaParamRecord acbe; // best effort
1011 tSirMacEdcaParamRecord acbk; // background
1012 tSirMacEdcaParamRecord acvi; // video
1013 tSirMacEdcaParamRecord acvo; // voice
1014} tEdcaParams, *tpEdcaParams;
1015
1016/*
1017* Function Prototypes
1018*/
1019
1020eHalStatus halMsg_setPromiscMode(tpAniSirGlobal pMac);
1021
1022
1023//
1024// Mesg header is used from tSirMsgQ
1025// Mesg Type = SIR_HAL_ADDBA_REQ
1026//
1027typedef struct sAddBAParams
1028{
1029
1030 // Station Index
1031 tANI_U16 staIdx;
1032
1033 // Peer MAC Address
1034 tSirMacAddr peerMacAddr;
1035
1036 // ADDBA Action Frame dialog token
1037 // HAL will not interpret this object
1038 tANI_U8 baDialogToken;
1039
1040 // TID for which the BA is being setup
1041 // This identifies the TC or TS of interest
1042 tANI_U8 baTID;
1043
1044 // 0 - Delayed BA (Not supported)
1045 // 1 - Immediate BA
1046 tANI_U8 baPolicy;
1047
1048 // Indicates the number of buffers for this TID (baTID)
1049 // NOTE - This is the requested buffer size. When this
1050 // is processed by HAL and subsequently by HDD, it is
1051 // possible that HDD may change this buffer size. Any
1052 // change in the buffer size should be noted by PE and
1053 // advertized appropriately in the ADDBA response
1054 tANI_U16 baBufferSize;
1055
1056 // BA timeout in TU's
1057 // 0 means no timeout will occur
1058 tANI_U16 baTimeout;
1059
1060 // b0..b3 - Fragment Number - Always set to 0
1061 // b4..b15 - Starting Sequence Number of first MSDU
1062 // for which this BA is setup
1063 tANI_U16 baSSN;
1064
1065 // ADDBA direction
1066 // 1 - Originator
1067 // 0 - Recipient
1068 tANI_U8 baDirection;
1069
1070 //
1071 // Following parameters are for returning status from
1072 // HAL to PE via response message. HAL does not read them
1073 //
1074 // The return status of SIR_HAL_ADDBA_REQ is reported
1075 // in the SIR_HAL_ADDBA_RSP message
1076 eHalStatus status;
1077
1078 // Indicating to HAL whether a response message is required.
1079 tANI_U8 respReqd;
1080 tANI_U8 sessionId; // PE session id for PE<->HAL interface
1081 // HAL Sends back the PE session
1082 // id unmodified
1083
1084} tAddBAParams, * tpAddBAParams;
1085
1086
1087//
1088// Mesg header is used from tSirMsgQ
1089// Mesg Type = SIR_HAL_DELBA_IND
1090//
1091typedef struct sDelBAParams
1092{
1093
1094 // Station Index
1095 tANI_U16 staIdx;
1096
1097 // TID for which the BA session is being deleted
1098 tANI_U8 baTID;
1099
1100 // DELBA direction
1101 // 1 - Originator
1102 // 0 - Recipient
1103 tANI_U8 baDirection;
1104
1105 // FIXME - Do we need a response for this?
1106 // Maybe just the IND/REQ will suffice?
1107 //
1108 // Following parameters are for returning status from
1109 // HAL to PE via response message. HAL does not read them
1110 //
1111 // The return status of SIR_HAL_DELBA_REQ is reported
1112 // in the SIR_HAL_DELBA_RSP message
1113 //eHalStatus status;
1114
1115} tDelBAParams, * tpDelBAParams;
1116
1117
1118//
1119// Mesg header is used from tSirMsgQ
1120// Mesg Type = SIR_HAL_SET_MIMOPS_REQ
1121//
1122typedef struct sSet_MIMOPS
1123{
1124 // Station Index
1125 tANI_U16 staIdx;
1126
1127 // MIMO Power Save State
1128 tSirMacHTMIMOPowerSaveState htMIMOPSState;
1129 // The return status of SIR_HAL_SET_MIMOPS_REQ is reported
1130 // in the SIR_HAL_SET_MIMOPS_RSP message
1131 eHalStatus status;
1132 tANI_U8 fsendRsp;
1133
1134} tSetMIMOPS, * tpSetMIMOPS;
1135
1136
1137//
1138// Mesg header is used from tSirMsgQ
1139// Mesg Type = SIR_HAL_EXIT_BMPS_REQ
1140//
1141typedef struct sExitBmpsParams
1142{
1143 tANI_U8 sendDataNull;
1144 eHalStatus status;
1145 tANI_U8 bssIdx;
1146} tExitBmpsParams, *tpExitBmpsParams;
1147
1148//
1149// Mesg header is used from tSirMsgQ
1150// Mesg Type = SIR_HAL_ENTER_UAPSD_REQ
1151//
1152typedef struct sUapsdParams
1153{
1154 tANI_U8 bkDeliveryEnabled:1;
1155 tANI_U8 beDeliveryEnabled:1;
1156 tANI_U8 viDeliveryEnabled:1;
1157 tANI_U8 voDeliveryEnabled:1;
1158 tANI_U8 bkTriggerEnabled:1;
1159 tANI_U8 beTriggerEnabled:1;
1160 tANI_U8 viTriggerEnabled:1;
1161 tANI_U8 voTriggerEnabled:1;
1162 eHalStatus status;
1163 tANI_U8 bssIdx;
1164}tUapsdParams, *tpUapsdParams;
1165
1166//
1167// Mesg header is used from tSirMsgQ
1168// Mesg Type = SIR_HAL_EXIT_UAPSD_REQ
1169//
1170typedef struct sExitUapsdParams
1171{
1172 eHalStatus status;
1173 tANI_U8 bssIdx;
1174}tExitUapsdParams, *tpExitUapsdParams;
1175
1176//
1177// Mesg header is used from tSirMsgQ
1178// Mesg Type = SIR_LIM_DEL_BA_IND
1179//
1180typedef struct sBADeleteParams
1181{
1182
1183 // Station Index
1184 tANI_U16 staIdx;
1185
1186 // Peer MAC Address, whose BA session has timed out
1187 tSirMacAddr peerMacAddr;
1188
1189 // TID for which a BA session timeout is being triggered
1190 tANI_U8 baTID;
1191
1192 // DELBA direction
1193 // 1 - Originator
1194 // 0 - Recipient
1195 tANI_U8 baDirection;
1196
1197 tANI_U32 reasonCode;
1198
1199 tSirMacAddr bssId; // TO SUPPORT BT-AMP
1200 // HAL copies the sta bssid to this.
1201} tBADeleteParams, * tpBADeleteParams;
1202
1203
1204// Mesg Type = SIR_LIM_ADD_BA_IND
1205typedef struct sBaActivityInd
1206{
1207 tANI_U16 baCandidateCnt;
1208 //baCandidateCnt is followed by BA Candidate List ( tAddBaCandidate)
1209
1210 tSirMacAddr bssId; // TO SUPPORT BT-AMP
1211} tBaActivityInd, * tpBaActivityInd;
1212
1213
1214typedef struct tHalIndCB
1215{
1216
1217 tHalMsgCallback pHalIndCB;
1218
1219}tHalIndCB,*tpHalIndCB;
1220
1221/** Max number of bytes required for stations bitmap aligned at 4 bytes boundary */
1222#define HALMSG_NUMBYTES_STATION_BITMAP(x) (((x / 32) + ((x % 32)?1:0)) * 4)
1223
1224typedef struct sControlTxParams
1225{
1226 tANI_BOOLEAN stopTx;
1227 /* Master flag to stop or resume all transmission, Once this flag is set,
1228 * softmac doesnt look for any other details.
1229 */
1230 tANI_U8 fCtrlGlobal;
1231 /* If this flag is set, staBitmap[] is valid */
1232 tANI_U8 ctrlSta;
1233 /* If this flag is set, bssBitmap and beaconBitmap is valid */
1234 tANI_U8 ctrlBss;
1235
1236 /* When ctrlBss is set, this bitmap contains bitmap of BSS indices to be
1237 * stopped for resumed for transmission.
1238 * This is 32 bit bitmap, not array of bytes.
1239 */
1240 tANI_U32 bssBitmap;
1241 /* When ctrlBss is set, this bitmap contains bitmap of BSS indices to be
1242 * stopped for resumed for beacon transmission.
1243 */
1244 tANI_U32 beaconBitmap;
1245
1246 /**
1247 * Memory for the station bitmap will be allocated later based on
1248 * the number of station supported.
1249 */
1250} tTxControlParams, * tpTxControlParams;
1251
1252typedef struct sEnterBmpsParams
1253{
1254 //TBTT value derived from the last beacon
1255 tANI_U8 bssIdx;
1256 tANI_U64 tbtt;
1257 tANI_U8 dtimCount;
1258 //DTIM period given to HAL during association may not be valid,
1259 //if association is based on ProbeRsp instead of beacon.
1260 tANI_U8 dtimPeriod;
1261
1262 // For CCX and 11R Roaming
1263 tANI_U8 bRssiFilterEnable;
1264 tANI_U32 rssiFilterPeriod;
1265 tANI_U32 numBeaconPerRssiAverage;
1266
1267 eHalStatus status;
1268 tANI_U8 respReqd;
1269}tEnterBmpsParams, *tpEnterBmpsParams;
1270
1271//BMPS response
1272typedef struct sEnterBmpsRspParams
1273{
1274 /* success or failure */
1275 tANI_U32 status;
1276 tANI_U8 bssIdx;
1277}tEnterBmpsRspParams, *tpEnterBmpsRspParams;
1278//
1279// Mesg header is used from tSirMsgQ
1280// Mesg Type = SIR_HAL_SET_MAX_TX_POWER_REQ
1281//
1282typedef struct sMaxTxPowerParams
1283{
1284 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
1285 //the request has power constraints, this should be applied only to that session
1286 tSirMacAddr selfStaMacAddr;
1287 //In request,
1288 //power == MaxTx power to be used.
1289 //In response,
1290 //power == tx power used for management frames.
1291 tPowerdBm power;
1292}tMaxTxPowerParams, *tpMaxTxPowerParams;
1293
1294typedef struct sAddStaSelfParams
1295{
1296 tSirMacAddr selfMacAddr;
1297 tANI_U32 type;
1298 tANI_U32 subType;
1299 tANI_U8 sessionId;
1300 tANI_U32 status;
1301}tAddStaSelfParams, *tpAddStaSelfParams;
1302
1303typedef struct sAbortScanParams
1304{
1305 tANI_U8 SessionId;
1306}tAbortScanParams, *tpAbortScanParams;
1307
1308typedef struct sDelStaSelfParams
1309{
1310 tSirMacAddr selfMacAddr;
1311 tANI_U8 sessionId;
1312 tANI_U32 status;
1313}tDelStaSelfParams, *tpDelStaSelfParams;
1314
1315typedef struct sP2pPsParams
1316{
1317 tANI_U8 opp_ps;
1318 tANI_U32 ctWindow;
1319 tANI_U8 count;
1320 tANI_U32 duration;
1321 tANI_U32 interval;
1322 tANI_U32 single_noa_duration;
1323 tANI_U8 psSelection;
1324}tP2pPsParams, *tpP2pPsParams;
1325
1326static inline void halGetTxTSFtimer(tpAniSirGlobal pMac,
1327 tSirMacTimeStamp *pTime)
1328{
1329}
1330
1331extern void SysProcessMmhMsg(tpAniSirGlobal pMac, tSirMsgQ* pMsg);
1332
1333/* Beacon Filtering data structures */
1334typedef __ani_attr_pre_packed struct sBeaconFilterMsg
1335{
1336 tANI_U16 capabilityInfo;
1337 tANI_U16 capabilityMask;
1338 tANI_U16 beaconInterval;
1339 tANI_U16 ieNum;
1340 tANI_U8 bssIdx;
1341 tANI_U8 reserved;
1342} __ani_attr_packed tBeaconFilterMsg, *tpBeaconFilterMsg;
1343
1344typedef __ani_attr_pre_packed struct sEidByteInfo
1345{
1346 tANI_U8 offset;
1347 tANI_U8 value;
1348 tANI_U8 bitMask;
1349 tANI_U8 ref;
1350} __ani_attr_packed tEidByteInfo, *tpEidByteInfo;
1351
1352
1353/* The above structure would be followed by multiple of below mentioned
1354structure */
1355typedef __ani_attr_pre_packed struct sBeaconFilterIe
1356{
1357 tANI_U8 elementId;
1358 tANI_U8 checkIePresence;
1359 tEidByteInfo byte;
1360} __ani_attr_packed tBeaconFilterIe, *tpBeaconFilterIe;
1361
1362typedef __ani_attr_pre_packed struct sRemBeaconFilterMsg
1363{
1364 tANI_U8 ucIeCount;
1365 tANI_U8 ucRemIeId[1];
1366} __ani_attr_packed tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
1367
1368#endif /* _HALMSGAPI_H_ */
1369