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