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