1643 lines
46 KiB
C
1643 lines
46 KiB
C
|
/*
|
||
|
* Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||
|
*
|
||
|
*
|
||
|
* Permission to use, copy, modify, and/or distribute this software for
|
||
|
* any purpose with or without fee is hereby granted, provided that the
|
||
|
* above copyright notice and this permission notice appear in all
|
||
|
* copies.
|
||
|
*
|
||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||
|
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* This file was originally distributed by Qualcomm Atheros, Inc.
|
||
|
* under proprietary terms before Copyright ownership was assigned
|
||
|
* to the Linux Foundation.
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef _HALMSGAPI_H_
|
||
|
#define _HALMSGAPI_H_
|
||
|
|
||
|
#include "halTypes.h"
|
||
|
#include "sirApi.h"
|
||
|
#include "sirParams.h"
|
||
|
|
||
|
#define HAL_NUM_BSSID 2
|
||
|
/* operMode in ADD BSS message */
|
||
|
#define BSS_OPERATIONAL_MODE_AP 0
|
||
|
#define BSS_OPERATIONAL_MODE_STA 1
|
||
|
#define BSS_OPERATIONAL_MODE_IBSS 2
|
||
|
|
||
|
/* STA entry type in add sta message */
|
||
|
#define STA_ENTRY_SELF 0
|
||
|
#define STA_ENTRY_OTHER 1
|
||
|
#define STA_ENTRY_BSSID 2
|
||
|
#define STA_ENTRY_BCAST 3 //Special station id for transmitting broadcast frames.
|
||
|
#define STA_ENTRY_PEER STA_ENTRY_OTHER
|
||
|
#ifdef FEATURE_WLAN_TDLS
|
||
|
#define STA_ENTRY_TDLS_PEER 4
|
||
|
#endif /* FEATURE_WLAN_TDLS */
|
||
|
|
||
|
#define STA_ENTRY_TRANSMITTER STA_ENTRY_SELF
|
||
|
#define STA_ENTRY_RECEIVER STA_ENTRY_OTHER
|
||
|
|
||
|
#define HAL_STA_INVALID_IDX 0xFF
|
||
|
#define HAL_BSS_INVALID_IDX 0xFF
|
||
|
|
||
|
#define HAL_BSSPERSONA_INVALID_IDX 0xFF
|
||
|
|
||
|
#define WLAN_BSS_PROTECTION_ON 1
|
||
|
#define WLAN_BSS_PROTECTION_OFF 0
|
||
|
|
||
|
/* Station index allocation after Broadcast station */
|
||
|
#define HAL_MAX_NUM_BCAST_STATIONS 1
|
||
|
#define HAL_MIN_BCAST_STA_INDEX ((HAL_MAX_NUM_BCAST_STATIONS>0)?0:HAL_STA_INVALID_IDX)
|
||
|
#define HAL_MAX_BCAST_STA_INDEX ((HAL_MAX_NUM_BCAST_STATIONS>0)?(HAL_MAX_NUM_BCAST_STATIONS - 1):HAL_STA_INVALID_IDX)
|
||
|
#define HAL_MIN_STA_INDEX ((HAL_MAX_BCAST_STA_INDEX!=HAL_STA_INVALID_IDX)?(HAL_MAX_BCAST_STA_INDEX+1):0)
|
||
|
#define HAL_MAX_STA_INDEX (HAL_NUM_STA)
|
||
|
|
||
|
/* Compilation flags for enabling disabling selfSta and bcastSta per BSS */
|
||
|
#define HAL_SELF_STA_PER_BSS 1
|
||
|
#define HAL_BCAST_STA_PER_BSS 1
|
||
|
|
||
|
//invalid channel id.
|
||
|
#define HAL_INVALID_CHANNEL_ID 0
|
||
|
|
||
|
/* BSS index used when no BSS is associated with the station. For example,
|
||
|
* driver creates only one self station without valid BSS while scanning.
|
||
|
* Then this index is used to tell softmac that BSS is not valid.
|
||
|
*/
|
||
|
#define BSSIDX_INVALID 254
|
||
|
|
||
|
#ifdef SAP_AUTH_OFFLOAD
|
||
|
#define MAX_CONNECT_REQ_LENGTH 512
|
||
|
#endif
|
||
|
|
||
|
#define HAL_IS_VALID_BSS_INDEX(pMac, bssIdx) ((BSSIDX_INVALID != (bssIdx)) && ((bssIdx) < (pMac)->hal.memMap.maxBssids))
|
||
|
|
||
|
// Beacon structure
|
||
|
typedef __ani_attr_pre_packed struct sAniBeaconStruct
|
||
|
{
|
||
|
tANI_U32 beaconLength; // Indicates the beacon length
|
||
|
tSirMacMgmtHdr macHdr; // MAC Header for beacon
|
||
|
// Beacon body follows here
|
||
|
} __ani_attr_packed tAniBeaconStruct, *tpAniBeaconStruct;
|
||
|
|
||
|
// probeRsp template structure
|
||
|
typedef __ani_attr_pre_packed struct sAniProbeRspStruct
|
||
|
{
|
||
|
tSirMacMgmtHdr macHdr; // MAC Header for probeRsp
|
||
|
// probeRsp body follows here
|
||
|
} __ani_attr_packed tAniProbeRspStruct, *tpAniProbeRspStruct;
|
||
|
|
||
|
|
||
|
// Per TC parameters
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 disableTx;
|
||
|
tANI_U8 disableRx;
|
||
|
tANI_U8 rxCompBA; // 1: expect to see frames with compressed BA coming from this peer MAC
|
||
|
tANI_U8 rxBApolicy; // immediate ACK or delayed ACK for frames from this peer MAC
|
||
|
tANI_U8 txCompBA; // 1: using compressed BA to send to this peer MAC
|
||
|
tANI_U8 txBApolicy; // immediate ACK or delayed ACK for frames to this peer MAC
|
||
|
tANI_U8 rxUseBA;
|
||
|
tANI_U8 txUseBA;
|
||
|
tANI_U8 rxBufferSize;
|
||
|
tANI_U8 txBufferSize;
|
||
|
tANI_U16 txBAWaitTimeout;
|
||
|
tANI_U16 rxBAWaitTimeout;
|
||
|
} tTCParams;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
// First two fields bssid and assocId are used to find staid for sta.
|
||
|
// BSSID of STA
|
||
|
tSirMacAddr bssId;
|
||
|
|
||
|
// ASSOC ID, as assigned by PE/LIM. This needs to be assigned
|
||
|
// on a per BSS basis
|
||
|
tANI_U16 assocId;
|
||
|
|
||
|
// Field to indicate if this is sta entry for itself STA adding entry for itself
|
||
|
// or remote (AP adding STA after successful association.
|
||
|
// This may or may not be required in production driver.
|
||
|
tANI_U8 staType; // 0 - Self, 1 other/remote, 2 - bssid
|
||
|
|
||
|
tANI_U8 shortPreambleSupported;
|
||
|
|
||
|
// MAC Address of STA
|
||
|
tSirMacAddr staMac;
|
||
|
|
||
|
// Listen interval.
|
||
|
tANI_U16 listenInterval;
|
||
|
|
||
|
// Support for 11e/WMM
|
||
|
tANI_U8 wmmEnabled;
|
||
|
|
||
|
//
|
||
|
// U-APSD Flags: 1b per AC
|
||
|
// Encoded as follows:
|
||
|
// b7 b6 b5 b4 b3 b2 b1 b0
|
||
|
// X X X X BE BK VI VO
|
||
|
//
|
||
|
tANI_U8 uAPSD;
|
||
|
|
||
|
// Max SP Length
|
||
|
tANI_U8 maxSPLen;
|
||
|
|
||
|
// 11n HT capable STA
|
||
|
tANI_U8 htCapable;
|
||
|
|
||
|
// 11n Green Field preamble support
|
||
|
// 0 - Not supported, 1 - Supported
|
||
|
// Add it to RA related fields of sta entry in HAL
|
||
|
tANI_U8 greenFieldCapable;
|
||
|
|
||
|
// TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz
|
||
|
tANI_U8 txChannelWidthSet;
|
||
|
|
||
|
// MIMO Power Save
|
||
|
tSirMacHTMIMOPowerSaveState mimoPS;
|
||
|
|
||
|
// RIFS mode: 0 - NA, 1 - Allowed
|
||
|
tANI_U8 rifsMode;
|
||
|
|
||
|
// L-SIG TXOP Protection mechanism
|
||
|
// 0 - No Support, 1 - Supported
|
||
|
// SG - there is global field.
|
||
|
tANI_U8 lsigTxopProtection;
|
||
|
|
||
|
// delayed ba support
|
||
|
tANI_U8 delBASupport;
|
||
|
// delayed ba support... TBD
|
||
|
|
||
|
|
||
|
// FIXME
|
||
|
//Add these fields to message
|
||
|
tANI_U8 us32MaxAmpduDuration; //in units of 32 us.
|
||
|
tANI_U8 maxAmpduSize; // 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k
|
||
|
tANI_U8 maxAmpduDensity; // 3 : 0~7 : 2^(11nAMPDUdensity -4)
|
||
|
tANI_U8 maxAmsduSize; // 1 : 3839 bytes, 0 : 7935 bytes
|
||
|
|
||
|
// TC parameters
|
||
|
tTCParams staTCParams[STACFG_MAX_TC];
|
||
|
|
||
|
// Compression and Concat parameters for DPU
|
||
|
tANI_U16 deCompEnable;
|
||
|
tANI_U16 compEnable;
|
||
|
tANI_U16 concatSeqRmv;
|
||
|
tANI_U16 concatSeqIns;
|
||
|
|
||
|
|
||
|
//11n Parameters
|
||
|
|
||
|
/**
|
||
|
HT STA should set it to 1 if it is enabled in BSS
|
||
|
HT STA should set it to 0 if AP does not support it.
|
||
|
This indication is sent to HAL and HAL uses this flag
|
||
|
to pickup up appropriate 40Mhz rates.
|
||
|
*/
|
||
|
tANI_U8 fDsssCckMode40Mhz;
|
||
|
|
||
|
|
||
|
//short GI support for 40Mhz packets
|
||
|
tANI_U8 fShortGI40Mhz;
|
||
|
|
||
|
//short GI support for 20Mhz packets
|
||
|
tANI_U8 fShortGI20Mhz;
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* All the legacy and airgo supported rates.
|
||
|
* These rates are the intersection of peer and self capabilities.
|
||
|
*/
|
||
|
tSirSupportedRates supportedRates;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Following parameters are for returning status and station index from HAL to PE
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_ADD_STA_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
// Station index; valid only when 'status' field value is eHAL_STATUS_SUCCESS
|
||
|
tANI_U8 staIdx;
|
||
|
|
||
|
//BSSID of BSS to which the station is associated.
|
||
|
//This should be filled back in by HAL, and sent back to LIM as part of
|
||
|
//the response message, so LIM can cache it in the station entry of hash table.
|
||
|
//When station is deleted, LIM will make use of this bssIdx to delete
|
||
|
//BSS from hal tables and from softmac.
|
||
|
tANI_U8 bssIdx;
|
||
|
|
||
|
/* this requires change in testDbg. I will change it later after coordinating with Diag team.
|
||
|
tANI_U8 fFwdTrigerSOSPtoHost; //trigger to start service period
|
||
|
tANI_U8 fFwdTrigerEOSPtoHost; //trigger to end service period
|
||
|
*/
|
||
|
|
||
|
//HAL should update the existing STA entry, if this flag is set.
|
||
|
//PE will set this flag in case of reassoc, where we want to resue the
|
||
|
//the old staID and still return success.
|
||
|
tANI_U8 updateSta;
|
||
|
//A flag to indicate to HAL if the response message is required.
|
||
|
tANI_U8 respReqd;
|
||
|
|
||
|
/* Robust Management Frame (RMF) enabled/disabled */
|
||
|
tANI_U8 rmfEnabled;
|
||
|
|
||
|
/* The unicast encryption type in the association */
|
||
|
tANI_U32 encryptType;
|
||
|
|
||
|
/*The DPU signatures will be sent eventually to TL to help it determine the
|
||
|
association to which a packet belongs to*/
|
||
|
/*Unicast DPU index*/
|
||
|
tANI_U8 ucUcastSig;
|
||
|
|
||
|
/*Broadcast DPU index*/
|
||
|
tANI_U8 ucBcastSig;
|
||
|
|
||
|
tANI_U8 sessionId; //PE session id for PE<->HAL interface
|
||
|
// HAL just sends back what it receives.
|
||
|
|
||
|
/*if this is a P2P Capable Sta*/
|
||
|
tANI_U8 p2pCapableSta;
|
||
|
|
||
|
/*CSA offload enable flag */
|
||
|
tANI_U8 csaOffloadEnable;
|
||
|
|
||
|
#ifdef WLAN_FEATURE_11AC
|
||
|
tANI_U8 vhtCapable;
|
||
|
tANI_U8 vhtTxChannelWidthSet;
|
||
|
tANI_U8 vhtSupportedRxNss;
|
||
|
tANI_U8 vhtTxBFCapable;
|
||
|
tANI_U8 vhtTxMUBformeeCapable;
|
||
|
tANI_U8 enableVhtpAid;
|
||
|
tANI_U8 enableVhtGid;
|
||
|
#endif
|
||
|
tANI_U8 enableAmpduPs;
|
||
|
tANI_U8 enableHtSmps;
|
||
|
tANI_U8 htSmpsconfig;
|
||
|
|
||
|
tANI_U8 htLdpcCapable;
|
||
|
tANI_U8 vhtLdpcCapable;
|
||
|
tANI_U8 smesessionId;
|
||
|
tANI_U8 wpa_rsn;
|
||
|
tANI_U16 capab_info;
|
||
|
tANI_U16 ht_caps;
|
||
|
tANI_U32 vht_caps;
|
||
|
tSirNwType nwType;
|
||
|
tPowerdBm maxTxPower;
|
||
|
/*
|
||
|
* Peer Atim Info, Valid only
|
||
|
* for IBSS Mode.
|
||
|
*/
|
||
|
tANI_U8 atimIePresent;
|
||
|
tANI_U32 peerAtimWindowLength;
|
||
|
tANI_U8 nonRoamReassoc;
|
||
|
uint32_t nss; /* Number of spatial streams supported */
|
||
|
tANI_U8 max_amsdu_num;
|
||
|
} tAddStaParams, *tpAddStaParams;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
// Station index
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U16 templIdx;
|
||
|
tANI_U8 rateIdx;
|
||
|
|
||
|
// The return status of SIR_HAL_UPDATE_STARATEINFO_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
|
||
|
//A flag to indicate to HAL if the response message is required.
|
||
|
tANI_U8 respReqd;
|
||
|
|
||
|
} tUpdateTxCmdTemplParams, *tpUpdateTxCmdTemplParams;
|
||
|
//FIXME: change the structure name
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
// index of STA to delete - this should be the same as the index returned
|
||
|
// as part of the AddSta
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U16 assocId;
|
||
|
eHalStatus status; // Status of SIR_HAL_DELETE_STA_REQ is reported here
|
||
|
tANI_U8 respReqd;
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// PE session id now added to all HAL<->PE transacations
|
||
|
// HAL sends it back unmodified.
|
||
|
tANI_U8 smesessionId;
|
||
|
tANI_U8 staType;
|
||
|
tSirMacAddr staMac;
|
||
|
} tDeleteStaParams, * tpDeleteStaParams;
|
||
|
|
||
|
/*
|
||
|
* This is used by PE to configure the key information on a given station.
|
||
|
* When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
|
||
|
* a preconfigured key from a BSS the station assoicated with; otherwise
|
||
|
* a new key descriptor is created based on the key field.
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
tAniEdType encType; // Encryption/Decryption type
|
||
|
tAniWepType wepType; // valid only for WEP
|
||
|
tANI_U8 defWEPIdx; // Default WEP key, valid only for static WEP, must between 0 and 3
|
||
|
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS]; // valid only for non-static WEP encyrptions
|
||
|
tANI_U8 singleTidRc; // 1=Single TID based Replay Count, 0=Per TID based RC
|
||
|
tANI_U8 smesessionId;
|
||
|
tSirMacAddr peerMacAddr;
|
||
|
/*
|
||
|
* Following parameter is for returning status
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
eHalStatus status; // status of SIR_HAL_SET_STAKEY_REQ is reported here
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
|
||
|
// PE session id now added to all HAL<->PE transacations
|
||
|
// HAL sends back response with no modification
|
||
|
tANI_U8 sendRsp;
|
||
|
} tSetStaKeyParams, *tpSetStaKeyParams;
|
||
|
|
||
|
typedef struct sLimMlmSetKeysReq
|
||
|
{
|
||
|
tSirMacAddr peerMacAddr;
|
||
|
tANI_U8 sessionId; //Added For BT-AMP Support
|
||
|
tANI_U8 smesessionId; // Added for drivers based on wmi interface
|
||
|
tANI_U16 aid;
|
||
|
tAniEdType edType; // Encryption/Decryption type
|
||
|
tANI_U8 numKeys;
|
||
|
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
|
||
|
} tLimMlmSetKeysReq, *tpLimMlmSetKeysReq;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_ADD_BSS_REQ
|
||
|
//
|
||
|
typedef struct
|
||
|
{
|
||
|
// MAC Address/BSSID
|
||
|
tSirMacAddr bssId;
|
||
|
#ifdef HAL_SELF_STA_PER_BSS
|
||
|
// Self Mac Address
|
||
|
tSirMacAddr selfMacAddr;
|
||
|
#endif
|
||
|
// BSS type
|
||
|
// FIXME - Is this reqd? Do we want to isolate BSS/IBSS parameters?
|
||
|
tSirBssType bssType;
|
||
|
|
||
|
// AP - 0; STA - 1 ;
|
||
|
tANI_U8 operMode;
|
||
|
|
||
|
// Network type - b/g/a/MixedMode/GreenField/Legacy
|
||
|
// TODO - This enum to be updated for HT support
|
||
|
// Review FIXME - Why is this needed?
|
||
|
tSirNwType nwType;
|
||
|
|
||
|
tANI_U8 shortSlotTimeSupported;
|
||
|
tANI_U8 llaCoexist;
|
||
|
tANI_U8 llbCoexist;
|
||
|
tANI_U8 llgCoexist;
|
||
|
tANI_U8 ht20Coexist;
|
||
|
tANI_U8 llnNonGFCoexist;
|
||
|
tANI_U8 fLsigTXOPProtectionFullSupport;
|
||
|
tANI_U8 fRIFSMode;
|
||
|
|
||
|
// Beacon Interval
|
||
|
tSirMacBeaconInterval beaconInterval;
|
||
|
|
||
|
// DTIM period
|
||
|
tANI_U8 dtimPeriod;
|
||
|
|
||
|
// CF Param Set
|
||
|
// Review FIXME - Does HAL need this?
|
||
|
tSirMacCfParamSet cfParamSet;
|
||
|
|
||
|
// MAC Rate Set
|
||
|
// Review FIXME - Does HAL need this?
|
||
|
tSirMacRateSet rateSet;
|
||
|
|
||
|
// 802.11n related HT parameters that are dynamic
|
||
|
|
||
|
// Enable/Disable HT capabilities
|
||
|
tANI_U8 htCapable;
|
||
|
|
||
|
// Enable/Disable OBSS protection
|
||
|
tANI_U8 obssProtEnabled;
|
||
|
|
||
|
// RMF enabled/disabled
|
||
|
tANI_U8 rmfEnabled;
|
||
|
|
||
|
// HT Operating Mode
|
||
|
// Review FIXME - Does HAL need this?
|
||
|
tSirMacHTOperatingMode htOperMode;
|
||
|
|
||
|
// Dual CTS Protection: 0 - Unused, 1 - Used
|
||
|
tANI_U8 dualCTSProtection;
|
||
|
|
||
|
// TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz
|
||
|
tANI_U8 txChannelWidthSet;
|
||
|
|
||
|
// Current Operating Channel
|
||
|
tANI_U8 currentOperChannel;
|
||
|
|
||
|
// Current Extension Channel, if applicable
|
||
|
tANI_U8 currentExtChannel;
|
||
|
|
||
|
// Add a STA entry for "itself" -
|
||
|
// On AP - Add the AP itself in an "STA context"
|
||
|
// On STA - Add the AP to which this STA is joining in an "STA context"
|
||
|
tAddStaParams staContext;
|
||
|
|
||
|
/*
|
||
|
* Following parameters are for returning status and station index from HAL to PE
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_ADD_BSS_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
// BSS index allocated by HAL.
|
||
|
// valid only when 'status' field is eHAL_STATUS_SUCCESS
|
||
|
tANI_U16 bssIdx;
|
||
|
|
||
|
// Broadcast DPU descriptor index allocated by HAL and used for broadcast/multicast packets.
|
||
|
// valid only when 'status' field is eHAL_STATUS_SUCCESS
|
||
|
tANI_U8 bcastDpuDescIndx;
|
||
|
|
||
|
// DPU signature to be used for broadcast/multicast packets
|
||
|
// valid only when 'status' field is eHAL_STATUS_SUCCESS
|
||
|
tANI_U8 bcastDpuSignature;
|
||
|
|
||
|
// DPU descriptor index allocated by HAL, used for bcast/mcast management packets
|
||
|
tANI_U8 mgmtDpuDescIndx;
|
||
|
|
||
|
// DPU signature to be used for bcast/mcast management packets
|
||
|
tANI_U8 mgmtDpuSignature;
|
||
|
|
||
|
//HAL should update the existing BSS entry, if this flag is set.
|
||
|
//PE will set this flag in case of reassoc, where we want to resue the
|
||
|
//the old bssID and still return success.
|
||
|
tANI_U8 updateBss;
|
||
|
|
||
|
// Add BSSID info for rxp filter in IBSS mode
|
||
|
tSirMacSSid ssId;
|
||
|
|
||
|
//HAL will send the response message to LIM only when this flag is set.
|
||
|
//LIM will set this flag, whereas DVT will not set this flag.
|
||
|
tANI_U8 respReqd;
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// PE session id now added to all HAL<->PE transacations
|
||
|
// HAL Sends the sessionId unmodified.
|
||
|
|
||
|
#if defined WLAN_FEATURE_VOWIFI
|
||
|
tPowerdBm txMgmtPower; //HAL fills in the tx power used for mgmt frames in this field.
|
||
|
tPowerdBm maxTxPower; //max power to be used after applying the power constraint, if any
|
||
|
#endif
|
||
|
|
||
|
#if defined WLAN_FEATURE_VOWIFI_11R
|
||
|
tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
|
||
|
tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
|
||
|
#endif
|
||
|
|
||
|
tANI_U8 ucMaxProbeRespRetryLimit; //probe Response Max retries
|
||
|
tANI_U8 bHiddenSSIDEn; //To Enable Hidden ssid.
|
||
|
tANI_U8 bProxyProbeRespEn; //To Enable Disable FW Proxy Probe Resp
|
||
|
tANI_U8 halPersona; //Persona for the BSS can be STA,AP,GO,CLIENT value same as tVOS_CON_MODE
|
||
|
|
||
|
//Spectrum Management Capability, 1 - Enabled, 0 - Disabled.
|
||
|
tANI_U8 bSpectrumMgtEnabled;
|
||
|
#ifdef WLAN_FEATURE_11AC
|
||
|
tANI_U8 vhtCapable;
|
||
|
tANI_U8 vhtTxChannelWidthSet;
|
||
|
#endif
|
||
|
tANI_U8 reassocReq; // Set only during roaming reassociation
|
||
|
tANI_U16 chainMask;
|
||
|
tANI_U16 smpsMode;
|
||
|
tANI_U8 dot11_mode;
|
||
|
tANI_U8 nonRoamReassoc;
|
||
|
uint8_t wps_state;
|
||
|
uint8_t nss_2g;
|
||
|
uint8_t nss_5g;
|
||
|
} tAddBssParams, * tpAddBssParams;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 bssIdx;
|
||
|
// The return status of SIR_HAL_DELETE_BSS_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
//HAL will send the response message to LIM only when this flag is set.
|
||
|
//LIM will set this flag, whereas DVT will not set this flag.
|
||
|
tANI_U8 respReqd;
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// HAL sends it back unmodified.
|
||
|
tSirMacAddr bssid; // Will be removed for PE-HAL integration
|
||
|
tANI_U8 smesessionId;
|
||
|
} tDeleteBssParams, * tpDeleteBssParams;
|
||
|
|
||
|
//
|
||
|
// UAPSD AC mask: 1b per AC
|
||
|
// LSB 4 bits for delivery enabled setting. msb 4 bits for trigger enabled settings.
|
||
|
// Encoded as follows:
|
||
|
// b7 b6 b5 b4 b3 b2 b1 b0
|
||
|
// BE BK VI VO BE BK VI VO
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 staIdx;
|
||
|
tANI_U8 uapsdACMask;
|
||
|
tANI_U8 maxSpLen;
|
||
|
} tUpdateUapsdParams, * tpUpdateUapsdParams;
|
||
|
|
||
|
typedef struct sSirScanEntry
|
||
|
{
|
||
|
tANI_U8 bssIdx[HAL_NUM_BSSID];
|
||
|
tANI_U8 activeBSScnt;
|
||
|
}tSirScanEntry, *ptSirScanEntry;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_INIT_SCAN_REQ
|
||
|
//
|
||
|
typedef struct {
|
||
|
|
||
|
eHalSysMode scanMode;
|
||
|
|
||
|
tSirMacAddr bssid;
|
||
|
|
||
|
tANI_U8 notifyBss;
|
||
|
|
||
|
tANI_U8 useNoA;
|
||
|
|
||
|
// If this flag is set HAL notifies PE when SMAC returns status.
|
||
|
tANI_U8 notifyHost;
|
||
|
|
||
|
tANI_U8 frameLength;
|
||
|
tANI_U8 frameType; // Data NULL or CTS to self
|
||
|
|
||
|
// Indicates the scan duration (in ms)
|
||
|
tANI_U16 scanDuration;
|
||
|
|
||
|
// For creation of CTS-to-Self and Data-NULL MAC packets
|
||
|
tSirMacMgmtHdr macMgmtHdr;
|
||
|
|
||
|
tSirScanEntry scanEntry;
|
||
|
|
||
|
// when this flag is set, HAL should check for link traffic prior to scan
|
||
|
tSirLinkTrafficCheck checkLinkTraffic;
|
||
|
|
||
|
/*
|
||
|
* Following parameters are for returning status and station index from HAL to PE
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_INIT_SCAN_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
|
||
|
} tInitScanParams, * tpInitScanParams;
|
||
|
|
||
|
typedef enum eDelStaReasonCode{
|
||
|
HAL_DEL_STA_REASON_CODE_KEEP_ALIVE = 0x1,
|
||
|
HAL_DEL_STA_REASON_CODE_TIM_BASED = 0x2,
|
||
|
HAL_DEL_STA_REASON_CODE_RA_BASED = 0x3,
|
||
|
HAL_DEL_STA_REASON_CODE_UNKNOWN_A2 = 0x4
|
||
|
}tDelStaReasonCode;
|
||
|
|
||
|
typedef enum eSmpsModeValue{
|
||
|
STATIC_SMPS_MODE = 0x0,
|
||
|
DYNAMIC_SMPS_MODE = 0x1,
|
||
|
SMPS_MODE_RESERVED = 0x2,
|
||
|
SMPS_MODE_DISABLED = 0x3
|
||
|
}tSmpsModeValue;
|
||
|
|
||
|
//
|
||
|
// Msg header is used from tSirMsgQ
|
||
|
// Msg Type = SIR_LIM_DELETE_STA_CONTEXT_IND
|
||
|
//
|
||
|
typedef struct {
|
||
|
bool is_tdls;
|
||
|
tANI_U8 vdev_id;
|
||
|
tANI_U16 assocId;
|
||
|
tANI_U16 staId;
|
||
|
tSirMacAddr bssId; // TO SUPPORT BT-AMP
|
||
|
// HAL copies bssid from the sta table.
|
||
|
tSirMacAddr addr2; //
|
||
|
tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
|
||
|
tANI_S8 rssi;
|
||
|
} tDeleteStaContext, * tpDeleteStaContext;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_START_SCAN_REQ
|
||
|
// FIXME - Can we just use tSirMsgQ directly, instead of using this structure?
|
||
|
//
|
||
|
typedef struct {
|
||
|
|
||
|
// Indicates the current scan channel
|
||
|
tANI_U8 scanChannel;
|
||
|
|
||
|
/*
|
||
|
* Following parameters are for returning status and station index from HAL to PE
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_START_SCAN_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
|
||
|
#if defined WLAN_FEATURE_VOWIFI
|
||
|
tANI_U32 startTSF[2];
|
||
|
tPowerdBm txMgmtPower; //HAL fills in the tx power used for mgmt frames in this field.
|
||
|
#endif
|
||
|
} tStartScanParams, * tpStartScanParams;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_END_SCAN_REQ
|
||
|
// FIXME - Can we just use tSirMsgQ directly, instead of using this structure?
|
||
|
//
|
||
|
typedef struct {
|
||
|
|
||
|
// Indicates the current scan channel
|
||
|
tANI_U8 scanChannel;
|
||
|
|
||
|
/*
|
||
|
* Following parameters are for returning status and station index from HAL to PE
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_END_SCAN_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
|
||
|
} tEndScanParams, * tpEndScanParams;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_FINISH_SCAN_REQ
|
||
|
//
|
||
|
typedef struct {
|
||
|
|
||
|
// Identifies the operational state of the AP/STA.
|
||
|
// In case of the STA, only if the operState is non-zero will the rest of
|
||
|
// the parameters that follow be decoded
|
||
|
// In case of the AP, all parameters are valid
|
||
|
//
|
||
|
// 0 - Idle state, 1 - Link Established
|
||
|
|
||
|
eHalSysMode scanMode;
|
||
|
|
||
|
tSirMacAddr bssid;
|
||
|
|
||
|
// Current operating channel
|
||
|
tANI_U8 currentOperChannel;
|
||
|
|
||
|
// If 20/40 MHz is operational, this will indicate the 40 MHz extension
|
||
|
// channel in combination with the control channel
|
||
|
ePhyChanBondState cbState;
|
||
|
|
||
|
// For an STA, indicates if a Data NULL frame needs to be sent
|
||
|
// to the AP with FrameControl.PwrMgmt bit set to 0
|
||
|
tANI_U8 notifyBss;
|
||
|
|
||
|
tANI_U8 notifyHost;
|
||
|
|
||
|
tANI_U8 frameLength;
|
||
|
tANI_U8 frameType; // Data NULL or CTS to self
|
||
|
|
||
|
// For creation of CTS-to-Self and Data-NULL MAC packets
|
||
|
tSirMacMgmtHdr macMgmtHdr;
|
||
|
|
||
|
tSirScanEntry scanEntry;
|
||
|
|
||
|
/*
|
||
|
* Following parameters are for returning status and station index from HAL to PE
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_FINISH_SCAN_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
|
||
|
} tFinishScanParams, * tpFinishScanParams;
|
||
|
|
||
|
#ifdef FEATURE_OEM_DATA_SUPPORT
|
||
|
|
||
|
#ifndef OEM_DATA_REQ_SIZE
|
||
|
#define OEM_DATA_REQ_SIZE 280
|
||
|
#endif
|
||
|
#ifndef OEM_DATA_RSP_SIZE
|
||
|
#define OEM_DATA_RSP_SIZE 1724
|
||
|
#endif
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tSirMacAddr selfMacAddr;
|
||
|
eHalStatus status;
|
||
|
uint8_t data_len;
|
||
|
uint8_t *data;
|
||
|
} tStartOemDataReq, *tpStartOemDataReq;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
bool target_rsp;
|
||
|
tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
|
||
|
} tStartOemDataRsp, *tpStartOemDataRsp;
|
||
|
#endif
|
||
|
|
||
|
typedef struct sBeaconGenStaInfo {
|
||
|
tANI_U16 assocId;
|
||
|
tANI_U32 staTxAckCnt;
|
||
|
}tBeaconGenStaInfo, *tpBeaconGenStaInfo;
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_LIM_BEACON_GEN_IND
|
||
|
//
|
||
|
|
||
|
typedef struct sBeaconGenParams {
|
||
|
// Identifies the BSSID for which it is time to generate a beacon
|
||
|
tANI_U8 bssIdx;
|
||
|
tSirMacAddr bssId;
|
||
|
#ifdef FIXME_VOLANS
|
||
|
tANI_U8 numOfSta; /* Number of stations in power save, who have data pending*/
|
||
|
tANI_U8 numOfStaWithoutData; /* Number of stations in power save, who don't have any data pending*/
|
||
|
tANI_U8 fBroadcastTrafficPending ;
|
||
|
tANI_U8 dtimCount;
|
||
|
#endif
|
||
|
tANI_U8 rsvd[3]; /** Align the Structure to 4 bytes as unalligned access will happen if
|
||
|
the staInfo is being Accessed */
|
||
|
/** NOTE: tBeaconGenStaInfo staInfo[xx]; Depending on the Number of STA in PS, Every time
|
||
|
this array is being allocated and piled up at the End*/
|
||
|
} tBeaconGenParams, * tpBeaconGenParams;
|
||
|
|
||
|
typedef struct {
|
||
|
tSirMacAddr bssId;
|
||
|
tANI_U8 *beacon; // Beacon data.
|
||
|
tANI_U32 beaconLength; //length of the template.
|
||
|
tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
|
||
|
tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
|
||
|
} tSendbeaconParams, * tpSendbeaconParams;
|
||
|
|
||
|
typedef struct sSendProbeRespParams {
|
||
|
tSirMacAddr bssId;
|
||
|
tANI_U8 *pProbeRespTemplate;
|
||
|
tANI_U32 probeRespTemplateLen;
|
||
|
tANI_U32 ucProxyProbeReqValidIEBmap[8];
|
||
|
} tSendProbeRespParams, * tpSendProbeRespParams;
|
||
|
|
||
|
/*
|
||
|
* This is used by PE to create a set of WEP keys for a given BSS.
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 bssIdx;
|
||
|
tAniEdType encType;
|
||
|
tANI_U8 numKeys;
|
||
|
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
|
||
|
tANI_U8 singleTidRc; // 1=Single TID based Replay Count, 0=Per TID based RC
|
||
|
tANI_U8 smesessionId;
|
||
|
/*
|
||
|
* Following parameter is for returning status
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
eHalStatus status; // status of SIR_HAL_SET_BSSKEY_REQ is reported here
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// HAL sends this unmodified in the response
|
||
|
} tSetBssKeyParams, *tpSetBssKeyParams;
|
||
|
|
||
|
/*
|
||
|
* This is used by PE to Remove the key information on a given station.
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
tAniEdType encType; // Encryption/Decryption type
|
||
|
tANI_U8 keyId;
|
||
|
tANI_BOOLEAN unicast;
|
||
|
/*
|
||
|
* Following parameter is for returning status
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
eHalStatus status; // return status of SIR_HAL_REMOVE_STAKEY_REQ
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// HAL Sends back the PE session
|
||
|
// id unmodified
|
||
|
} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
|
||
|
|
||
|
/*
|
||
|
* This is used by PE to remove keys for a given BSS.
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 bssIdx;
|
||
|
tAniEdType encType;
|
||
|
tANI_U8 keyId;
|
||
|
tANI_U8 wepType;
|
||
|
/*
|
||
|
* Following parameter is for returning status
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
eHalStatus status; // return status of SIR_HAL_REMOVE_BSSKEY_REQ
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// HAL Sends back the PE session
|
||
|
// id unmodified
|
||
|
} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
// index of STA to get the statistics from
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U8 encMode;
|
||
|
// The return status of SIR_HAL_DPU_STATS_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
// The return statistics
|
||
|
tANI_U32 sendBlocks;
|
||
|
tANI_U32 recvBlocks;
|
||
|
tANI_U32 replays;
|
||
|
tANI_U8 micErrorCnt;
|
||
|
tANI_U32 protExclCnt;
|
||
|
tANI_U16 formatErrCnt;
|
||
|
tANI_U16 unDecryptableCnt;
|
||
|
tANI_U32 decryptErrCnt;
|
||
|
tANI_U32 decryptOkCnt;
|
||
|
|
||
|
} tDpuStatsParams, * tpDpuStatsParams;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Get the DPU signature based on a given staId
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
/*
|
||
|
* Following parameter is for returning status
|
||
|
* via response message. HAL does not read them.
|
||
|
*/
|
||
|
// The return status of SIR_HAL_SET_BSSKEY_REQ is reported here
|
||
|
eHalStatus status;
|
||
|
tANI_U8 dpuDescIndx;
|
||
|
tANI_U8 dpuSignature;
|
||
|
} tGetDpuParams, *tpGetDpuParams;
|
||
|
|
||
|
|
||
|
|
||
|
//HAL MSG: SIR_HAL_UPDATE_BEACON_IND
|
||
|
typedef struct
|
||
|
{
|
||
|
|
||
|
tANI_U8 bssIdx;
|
||
|
|
||
|
//shortPreamble mode. HAL should update all the STA rates when it
|
||
|
//receives this message
|
||
|
tANI_U8 fShortPreamble;
|
||
|
//short Slot time.
|
||
|
tANI_U8 fShortSlotTime;
|
||
|
//Beacon Interval
|
||
|
tANI_U16 beaconInterval;
|
||
|
//Protection related
|
||
|
tANI_U8 llaCoexist;
|
||
|
tANI_U8 llbCoexist;
|
||
|
tANI_U8 llgCoexist;
|
||
|
tANI_U8 ht20MhzCoexist;
|
||
|
tANI_U8 llnNonGFCoexist;
|
||
|
tANI_U8 fLsigTXOPProtectionFullSupport;
|
||
|
tANI_U8 fRIFSMode;
|
||
|
|
||
|
tANI_U16 paramChangeBitmap;
|
||
|
tANI_U8 smeSessionId;
|
||
|
}tUpdateBeaconParams, *tpUpdateBeaconParams;
|
||
|
|
||
|
#ifdef WLAN_FEATURE_11AC
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 opMode;
|
||
|
tANI_U16 staId;
|
||
|
tANI_U16 smesessionId;
|
||
|
tSirMacAddr peer_mac;
|
||
|
}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 rxNss;
|
||
|
tANI_U16 staId;
|
||
|
tANI_U16 smesessionId;
|
||
|
tSirMacAddr peer_mac;
|
||
|
}tUpdateRxNss, *tpUpdateRxNss;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U32 membership;
|
||
|
tANI_U16 staId;
|
||
|
tANI_U16 smesessionId;
|
||
|
tSirMacAddr peer_mac;
|
||
|
}tUpdateMembership, *tpUpdateMembership;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U32 userPos;
|
||
|
tANI_U16 staId;
|
||
|
tANI_U16 smesessionId;
|
||
|
tSirMacAddr peer_mac;
|
||
|
}tUpdateUserPos, *tpUpdateUserPos;
|
||
|
|
||
|
#endif
|
||
|
|
||
|
//HAL MSG: SIR_HAL_UPDATE_CF_IND
|
||
|
typedef struct
|
||
|
{
|
||
|
|
||
|
tANI_U8 bssIdx;
|
||
|
|
||
|
/*
|
||
|
* cfpCount indicates how many DTIMs (including the current frame) appear before the next CFP start.
|
||
|
* A CFPCount of 0 indicates that the current DTIM marks the start of the CFP.
|
||
|
*/
|
||
|
tANI_U8 cfpCount;
|
||
|
|
||
|
/* cfpPeriod indicates the number of DTIM intervals between the start of CFPs. */
|
||
|
tANI_U8 cfpPeriod;
|
||
|
|
||
|
}tUpdateCFParams, *tpUpdateCFParams;
|
||
|
|
||
|
|
||
|
|
||
|
//HAL MSG: SIR_HAL_UPDATE_DTIM_IND
|
||
|
//This message not required, as Softmac is supposed to read these values from the beacon.
|
||
|
//PE should not look at TIM element
|
||
|
|
||
|
/*
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 bssIdx;
|
||
|
|
||
|
|
||
|
//The DTIM Count field indicates how many beacons (including the current frame) appear before the next
|
||
|
// DTIM. A DTIM Count of 0 indicates that the current TIM is a DTIM.
|
||
|
//
|
||
|
tANI_U8 dtimCount;
|
||
|
|
||
|
|
||
|
// The DTIM Period field indicates the number of Beacon intervals between successive DTIMs. If all TIMs are
|
||
|
// DTIMs, the DTIM Period field has the value 1. The DTIM Period value 0 is reserved.
|
||
|
//
|
||
|
tANI_U8 dtimPeriod;
|
||
|
|
||
|
}tUpdateDtimParams, *tpUpdateDtimParams;
|
||
|
*/
|
||
|
|
||
|
|
||
|
//HAL MSG: SIR_HAL_CHNL_SWITCH_REQ
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U8 channelNumber;
|
||
|
#ifndef WLAN_FEATURE_VOWIFI
|
||
|
tANI_U8 localPowerConstraint;
|
||
|
#endif /* WLAN_FEATURE_VOWIFI */
|
||
|
ePhyChanBondState secondaryChannelOffset;
|
||
|
tANI_U8 peSessionId;
|
||
|
#if defined WLAN_FEATURE_VOWIFI
|
||
|
tPowerdBm txMgmtPower; //HAL fills in the tx power used for mgmt frames in this field.
|
||
|
tPowerdBm maxTxPower;
|
||
|
#endif
|
||
|
tSirMacAddr selfStaMacAddr;
|
||
|
//the request has power constraints, this should be applied only to that session
|
||
|
/* VO Wifi comment: BSSID is needed to identify which session issued this request. As the
|
||
|
request has power constraints, this should be applied only to that session */
|
||
|
/* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
|
||
|
* by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
|
||
|
*/
|
||
|
tSirMacAddr bssId;
|
||
|
|
||
|
eHalStatus status;
|
||
|
|
||
|
tANI_U16 chainMask;
|
||
|
|
||
|
tANI_U16 smpsMode;
|
||
|
|
||
|
tANI_U8 isDfsChannel;
|
||
|
|
||
|
tANI_U8 vhtCapable;
|
||
|
|
||
|
tANI_U8 dot11_mode;
|
||
|
|
||
|
uint8_t restart_on_chan_switch;
|
||
|
}tSwitchChannelParams, *tpSwitchChannelParams;
|
||
|
|
||
|
typedef struct CSAOffloadParams {
|
||
|
tANI_U8 channel;
|
||
|
tANI_U8 switchmode;
|
||
|
tANI_U8 sec_chan_offset;
|
||
|
tANI_U8 new_ch_width; /* New channel width */
|
||
|
tANI_U8 new_op_class; /* New operating class */
|
||
|
tANI_U8 new_ch_freq_seg1; /* Channel Center frequency 1 */
|
||
|
tANI_U8 new_ch_freq_seg2; /* Channel Center frequency 2 */
|
||
|
tANI_U32 ies_present_flag; /* WMI_CSA_EVENT_IES_PRESENT_FLAG */
|
||
|
tSirMacAddr bssId;
|
||
|
}*tpCSAOffloadParams, tCSAOffloadParams;
|
||
|
|
||
|
typedef void (*tpSetLinkStateCallback)(tpAniSirGlobal pMac, void *msgParam,
|
||
|
bool status);
|
||
|
|
||
|
typedef struct sLinkStateParams
|
||
|
{
|
||
|
// SIR_HAL_SET_LINK_STATE
|
||
|
tSirMacAddr bssid;
|
||
|
tSirMacAddr selfMacAddr;
|
||
|
tSirLinkState state;
|
||
|
tpSetLinkStateCallback callback;
|
||
|
void *callbackArg;
|
||
|
#ifdef WLAN_FEATURE_VOWIFI_11R
|
||
|
int ft;
|
||
|
void * session;
|
||
|
#endif
|
||
|
v_BOOL_t status;
|
||
|
} tLinkStateParams, * tpLinkStateParams;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U16 tspecIdx; //TSPEC handler uniquely identifying a TSPEC for a STA in a BSS
|
||
|
tSirMacTspecIE tspec;
|
||
|
eHalStatus status;
|
||
|
tANI_U8 sessionId; //PE session id for PE<->HAL interface
|
||
|
#ifdef FEATURE_WLAN_ESE
|
||
|
tANI_U16 tsm_interval; // TSM interval period passed from lim to wda
|
||
|
#endif
|
||
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||
|
tANI_U8 setRICparams;
|
||
|
#endif
|
||
|
uint8_t sme_session_id;
|
||
|
} tAddTsParams, *tpAddTsParams;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U16 tspecIdx; //TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS
|
||
|
tSirMacAddr bssId; //TO SUPPORT BT-AMP
|
||
|
tANI_U8 sessionId;
|
||
|
tANI_U8 userPrio;
|
||
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||
|
tSirDeltsReqInfo delTsInfo;
|
||
|
tANI_U8 setRICparams;
|
||
|
#endif
|
||
|
} tDelTsParams, *tpDelTsParams;
|
||
|
|
||
|
#ifdef WLAN_FEATURE_VOWIFI_11R
|
||
|
|
||
|
#define HAL_QOS_NUM_TSPEC_MAX 2
|
||
|
#define HAL_QOS_NUM_AC_MAX 4
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U16 tspecIdx; //TSPEC handler uniquely identifying a TSPEC for a STA in a BSS
|
||
|
tSirMacTspecIE tspec[HAL_QOS_NUM_AC_MAX];
|
||
|
eHalStatus status[HAL_QOS_NUM_AC_MAX];
|
||
|
tANI_U8 sessionId; //PE session id for PE<->HAL interface
|
||
|
}tAggrAddTsParams, *tpAggrAddTsParams;
|
||
|
|
||
|
#endif /* WLAN_FEATURE_VOWIFI_11R */
|
||
|
|
||
|
|
||
|
typedef tSirRetStatus (*tHalMsgCallback)(tpAniSirGlobal pMac, tANI_U32 mesgId, void *mesgParam );
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
tANI_U16 bssIdx;
|
||
|
tSirMacEdcaParamRecord acbe; // best effort
|
||
|
tSirMacEdcaParamRecord acbk; // background
|
||
|
tSirMacEdcaParamRecord acvi; // video
|
||
|
tSirMacEdcaParamRecord acvo; // voice
|
||
|
} tEdcaParams, *tpEdcaParams;
|
||
|
|
||
|
/*
|
||
|
* Function Prototypes
|
||
|
*/
|
||
|
|
||
|
eHalStatus halMsg_setPromiscMode(tpAniSirGlobal pMac);
|
||
|
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_ADDBA_REQ
|
||
|
//
|
||
|
typedef struct sAddBAParams
|
||
|
{
|
||
|
|
||
|
// Station Index
|
||
|
tANI_U16 staIdx;
|
||
|
|
||
|
// Peer MAC Address
|
||
|
tSirMacAddr peerMacAddr;
|
||
|
|
||
|
// ADDBA Action Frame dialog token
|
||
|
// HAL will not interpret this object
|
||
|
tANI_U8 baDialogToken;
|
||
|
|
||
|
// TID for which the BA is being setup
|
||
|
// This identifies the TC or TS of interest
|
||
|
tANI_U8 baTID;
|
||
|
|
||
|
// 0 - Delayed BA (Not supported)
|
||
|
// 1 - Immediate BA
|
||
|
tANI_U8 baPolicy;
|
||
|
|
||
|
// Indicates the number of buffers for this TID (baTID)
|
||
|
// NOTE - This is the requested buffer size. When this
|
||
|
// is processed by HAL and subsequently by HDD, it is
|
||
|
// possible that HDD may change this buffer size. Any
|
||
|
// change in the buffer size should be noted by PE and
|
||
|
// advertized appropriately in the ADDBA response
|
||
|
tANI_U16 baBufferSize;
|
||
|
|
||
|
// BA timeout in TU's
|
||
|
// 0 means no timeout will occur
|
||
|
tANI_U16 baTimeout;
|
||
|
|
||
|
// b0..b3 - Fragment Number - Always set to 0
|
||
|
// b4..b15 - Starting Sequence Number of first MSDU
|
||
|
// for which this BA is setup
|
||
|
tANI_U16 baSSN;
|
||
|
|
||
|
// ADDBA direction
|
||
|
// 1 - Originator
|
||
|
// 0 - Recipient
|
||
|
tANI_U8 baDirection;
|
||
|
|
||
|
//
|
||
|
// Following parameters are for returning status from
|
||
|
// HAL to PE via response message. HAL does not read them
|
||
|
//
|
||
|
// The return status of SIR_HAL_ADDBA_REQ is reported
|
||
|
// in the SIR_HAL_ADDBA_RSP message
|
||
|
eHalStatus status;
|
||
|
|
||
|
// Indicating to HAL whether a response message is required.
|
||
|
tANI_U8 respReqd;
|
||
|
tANI_U8 sessionId; // PE session id for PE<->HAL interface
|
||
|
// HAL Sends back the PE session
|
||
|
// id unmodified
|
||
|
|
||
|
} tAddBAParams, * tpAddBAParams;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_DELBA_IND
|
||
|
//
|
||
|
typedef struct sDelBAParams
|
||
|
{
|
||
|
|
||
|
// Station Index
|
||
|
tANI_U16 staIdx;
|
||
|
|
||
|
// TID for which the BA session is being deleted
|
||
|
tANI_U8 baTID;
|
||
|
|
||
|
// DELBA direction
|
||
|
// 1 - Originator
|
||
|
// 0 - Recipient
|
||
|
tANI_U8 baDirection;
|
||
|
|
||
|
// FIXME - Do we need a response for this?
|
||
|
// Maybe just the IND/REQ will suffice?
|
||
|
//
|
||
|
// Following parameters are for returning status from
|
||
|
// HAL to PE via response message. HAL does not read them
|
||
|
//
|
||
|
// The return status of SIR_HAL_DELBA_REQ is reported
|
||
|
// in the SIR_HAL_DELBA_RSP message
|
||
|
//eHalStatus status;
|
||
|
|
||
|
} tDelBAParams, * tpDelBAParams;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_SET_MIMOPS_REQ
|
||
|
//
|
||
|
typedef struct sSet_MIMOPS
|
||
|
{
|
||
|
// Station Index
|
||
|
tANI_U16 staIdx;
|
||
|
|
||
|
// MIMO Power Save State
|
||
|
tSirMacHTMIMOPowerSaveState htMIMOPSState;
|
||
|
// The return status of SIR_HAL_SET_MIMOPS_REQ is reported
|
||
|
// in the SIR_HAL_SET_MIMOPS_RSP message
|
||
|
eHalStatus status;
|
||
|
tANI_U8 fsendRsp;
|
||
|
|
||
|
tSirMacAddr peerMac;
|
||
|
tANI_U8 sessionId;
|
||
|
} tSetMIMOPS, * tpSetMIMOPS;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_EXIT_BMPS_REQ
|
||
|
//
|
||
|
typedef struct sExitBmpsParams
|
||
|
{
|
||
|
tANI_U8 sendDataNull;
|
||
|
eHalStatus status;
|
||
|
tANI_U8 bssIdx;
|
||
|
} tExitBmpsParams, *tpExitBmpsParams;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_ENTER_UAPSD_REQ
|
||
|
//
|
||
|
typedef struct sUapsdParams
|
||
|
{
|
||
|
tANI_U8 bkDeliveryEnabled:1;
|
||
|
tANI_U8 beDeliveryEnabled:1;
|
||
|
tANI_U8 viDeliveryEnabled:1;
|
||
|
tANI_U8 voDeliveryEnabled:1;
|
||
|
tANI_U8 bkTriggerEnabled:1;
|
||
|
tANI_U8 beTriggerEnabled:1;
|
||
|
tANI_U8 viTriggerEnabled:1;
|
||
|
tANI_U8 voTriggerEnabled:1;
|
||
|
eHalStatus status;
|
||
|
tANI_U8 bssIdx;
|
||
|
}tUapsdParams, *tpUapsdParams;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_EXIT_UAPSD_REQ
|
||
|
//
|
||
|
typedef struct sExitUapsdParams
|
||
|
{
|
||
|
eHalStatus status;
|
||
|
tANI_U8 bssIdx;
|
||
|
}tExitUapsdParams, *tpExitUapsdParams;
|
||
|
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_LIM_DEL_BA_IND
|
||
|
//
|
||
|
typedef struct sBADeleteParams
|
||
|
{
|
||
|
|
||
|
// Station Index
|
||
|
tANI_U16 staIdx;
|
||
|
|
||
|
// Peer MAC Address, whose BA session has timed out
|
||
|
tSirMacAddr peerMacAddr;
|
||
|
|
||
|
// TID for which a BA session timeout is being triggered
|
||
|
tANI_U8 baTID;
|
||
|
|
||
|
// DELBA direction
|
||
|
// 1 - Originator
|
||
|
// 0 - Recipient
|
||
|
tANI_U8 baDirection;
|
||
|
|
||
|
tANI_U32 reasonCode;
|
||
|
|
||
|
tSirMacAddr bssId; // TO SUPPORT BT-AMP
|
||
|
// HAL copies the sta bssid to this.
|
||
|
} tBADeleteParams, * tpBADeleteParams;
|
||
|
|
||
|
|
||
|
// Mesg Type = SIR_LIM_ADD_BA_IND
|
||
|
typedef struct sBaActivityInd
|
||
|
{
|
||
|
tANI_U16 baCandidateCnt;
|
||
|
//baCandidateCnt is followed by BA Candidate List ( tAddBaCandidate)
|
||
|
|
||
|
tSirMacAddr bssId; // TO SUPPORT BT-AMP
|
||
|
} tBaActivityInd, * tpBaActivityInd;
|
||
|
|
||
|
|
||
|
// Mesg Type = SIR_LIM_IBSS_PEER_INACTIVITY_IND
|
||
|
typedef struct sIbssPeerInactivityInd
|
||
|
{
|
||
|
tANI_U8 bssIdx;
|
||
|
tANI_U8 staIdx;
|
||
|
tSirMacAddr staAddr;
|
||
|
}tIbssPeerInactivityInd, *tpIbssPeerInactivityInd;
|
||
|
|
||
|
|
||
|
typedef struct tHalIndCB
|
||
|
{
|
||
|
|
||
|
tHalMsgCallback pHalIndCB;
|
||
|
|
||
|
}tHalIndCB,*tpHalIndCB;
|
||
|
|
||
|
/** Max number of bytes required for stations bitmap aligned at 4 bytes boundary */
|
||
|
#define HALMSG_NUMBYTES_STATION_BITMAP(x) (((x / 32) + ((x % 32)?1:0)) * 4)
|
||
|
|
||
|
typedef struct sControlTxParams
|
||
|
{
|
||
|
tANI_BOOLEAN stopTx;
|
||
|
/* Master flag to stop or resume all transmission, Once this flag is set,
|
||
|
* softmac doesnt look for any other details.
|
||
|
*/
|
||
|
tANI_U8 fCtrlGlobal;
|
||
|
/* If this flag is set, staBitmap[] is valid */
|
||
|
tANI_U8 ctrlSta;
|
||
|
/* If this flag is set, bssBitmap and beaconBitmap is valid */
|
||
|
tANI_U8 ctrlBss;
|
||
|
|
||
|
/* When ctrlBss is set, this bitmap contains bitmap of BSS indices to be
|
||
|
* stopped for resumed for transmission.
|
||
|
* This is 32 bit bitmap, not array of bytes.
|
||
|
*/
|
||
|
tANI_U32 bssBitmap;
|
||
|
/* When ctrlBss is set, this bitmap contains bitmap of BSS indices to be
|
||
|
* stopped for resumed for beacon transmission.
|
||
|
*/
|
||
|
tANI_U32 beaconBitmap;
|
||
|
|
||
|
/**
|
||
|
* Memory for the station bitmap will be allocated later based on
|
||
|
* the number of station supported.
|
||
|
*/
|
||
|
} tTxControlParams, * tpTxControlParams;
|
||
|
|
||
|
typedef struct sEnterBmpsParams
|
||
|
{
|
||
|
//TBTT value derived from the last beacon
|
||
|
tANI_U8 bssIdx;
|
||
|
tANI_U64 tbtt;
|
||
|
tANI_U8 dtimCount;
|
||
|
//DTIM period given to HAL during association may not be valid,
|
||
|
//if association is based on ProbeRsp instead of beacon.
|
||
|
tANI_U8 dtimPeriod;
|
||
|
|
||
|
// For ESE and 11R Roaming
|
||
|
tANI_U8 bRssiFilterEnable;
|
||
|
tANI_U32 rssiFilterPeriod;
|
||
|
tANI_U32 numBeaconPerRssiAverage;
|
||
|
|
||
|
eHalStatus status;
|
||
|
tANI_U8 respReqd;
|
||
|
}tEnterBmpsParams, *tpEnterBmpsParams;
|
||
|
|
||
|
//BMPS response
|
||
|
typedef struct sEnterBmpsRspParams
|
||
|
{
|
||
|
/* success or failure */
|
||
|
tANI_U32 status;
|
||
|
tANI_U8 bssIdx;
|
||
|
}tEnterBmpsRspParams, *tpEnterBmpsRspParams;
|
||
|
//
|
||
|
// Mesg header is used from tSirMsgQ
|
||
|
// Mesg Type = SIR_HAL_SET_MAX_TX_POWER_REQ
|
||
|
//
|
||
|
typedef struct sMaxTxPowerParams
|
||
|
{
|
||
|
tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
|
||
|
//the request has power constraints, this should be applied only to that session
|
||
|
tSirMacAddr selfStaMacAddr;
|
||
|
//In request,
|
||
|
//power == MaxTx power to be used.
|
||
|
//In response,
|
||
|
//power == tx power used for management frames.
|
||
|
tPowerdBm power;
|
||
|
tVOS_CON_MODE dev_mode;
|
||
|
}tMaxTxPowerParams, *tpMaxTxPowerParams;
|
||
|
|
||
|
typedef struct sMaxTxPowerPerBandParams
|
||
|
{
|
||
|
eCsrBand bandInfo;
|
||
|
tPowerdBm power;
|
||
|
}tMaxTxPowerPerBandParams, *tpMaxTxPowerPerBandParams;
|
||
|
|
||
|
typedef struct sAddStaSelfParams
|
||
|
{
|
||
|
tSirMacAddr selfMacAddr;
|
||
|
tVOS_CON_MODE currDeviceMode;
|
||
|
tANI_U32 type;
|
||
|
tANI_U32 subType;
|
||
|
tANI_U8 sessionId;
|
||
|
tANI_U32 status;
|
||
|
tANI_U16 pkt_err_disconn_th;
|
||
|
uint8_t nss_2g;
|
||
|
uint8_t nss_5g;
|
||
|
}tAddStaSelfParams, *tpAddStaSelfParams;
|
||
|
|
||
|
/**
|
||
|
* struct set_ie_param - set IE params structure
|
||
|
* @pdev_id: pdev id
|
||
|
* @ie_type: IE type
|
||
|
* @nss: Nss value
|
||
|
* @ie_len: IE length
|
||
|
* @*ie_ptr: Pointer to IE data
|
||
|
*
|
||
|
* Holds the set pdev IE req data.
|
||
|
*/
|
||
|
struct set_ie_param {
|
||
|
uint8_t pdev_id;
|
||
|
uint8_t ie_type;
|
||
|
uint8_t nss;
|
||
|
uint8_t ie_len;
|
||
|
uint8_t *ie_ptr;
|
||
|
};
|
||
|
|
||
|
#define DOT11_HT_IE 1
|
||
|
#define DOT11_VHT_IE 2
|
||
|
|
||
|
#ifdef FEATURE_WLAN_TDLS
|
||
|
|
||
|
#define HAL_TDLS_MAX_SUPP_CHANNELS 128
|
||
|
#define HAL_TDLS_MAX_SUPP_OPER_CLASSES 32
|
||
|
|
||
|
typedef struct {
|
||
|
tANI_U8 isPeerResponder;
|
||
|
tANI_U8 peerUapsdQueue;
|
||
|
tANI_U8 peerMaxSp;
|
||
|
tANI_U8 peerBuffStaSupport;
|
||
|
tANI_U8 peerOffChanSupport;
|
||
|
tANI_U8 peerCurrOperClass;
|
||
|
tANI_U8 selfCurrOperClass;
|
||
|
tANI_U8 peerChanLen;
|
||
|
tSirUpdateChanParam peerChan[HAL_TDLS_MAX_SUPP_CHANNELS];
|
||
|
tANI_U8 peerOperClassLen;
|
||
|
tANI_U8 peerOperClass[HAL_TDLS_MAX_SUPP_OPER_CLASSES];
|
||
|
tANI_U8 prefOffChanNum;
|
||
|
tANI_U8 prefOffChanBandwidth;
|
||
|
tANI_U8 opClassForPrefOffChan;
|
||
|
} tTdlsPeerCapParams;
|
||
|
|
||
|
typedef struct sTdlsPeerStateParams
|
||
|
{
|
||
|
tANI_U32 vdevId;
|
||
|
tSirMacAddr peerMacAddr;
|
||
|
tANI_U32 peerState;
|
||
|
tTdlsPeerCapParams peerCap;
|
||
|
}tTdlsPeerStateParams;
|
||
|
|
||
|
typedef struct sTdlsChanSwitchParams
|
||
|
{
|
||
|
tANI_U32 vdevId;
|
||
|
tSirMacAddr peerMacAddr;
|
||
|
tANI_U16 tdlsOffChBwOffset;/* Target Off Channel Bandwidth offset */
|
||
|
tANI_U8 tdlsOffCh; /* Target Off Channel */
|
||
|
tANI_U8 tdlsSwMode; /* TDLS Off Channel Mode */
|
||
|
tANI_U8 operClass; /* Operating class corresponding to target channel */
|
||
|
tANI_U8 is_responder;/* responder or initiator */
|
||
|
}tTdlsChanSwitchParams;
|
||
|
#endif /* FEATURE_WLAN_TDLS */
|
||
|
|
||
|
typedef struct sAbortScanParams
|
||
|
{
|
||
|
tANI_U8 SessionId;
|
||
|
}tAbortScanParams, *tpAbortScanParams;
|
||
|
|
||
|
typedef struct sDelStaSelfParams
|
||
|
{
|
||
|
tSirMacAddr selfMacAddr;
|
||
|
tANI_U8 sessionId;
|
||
|
tANI_U32 status;
|
||
|
}tDelStaSelfParams, *tpDelStaSelfParams;
|
||
|
|
||
|
typedef struct sP2pPsParams
|
||
|
{
|
||
|
tANI_U8 opp_ps;
|
||
|
tANI_U32 ctWindow;
|
||
|
tANI_U8 count;
|
||
|
tANI_U32 duration;
|
||
|
tANI_U32 interval;
|
||
|
tANI_U32 single_noa_duration;
|
||
|
tANI_U8 psSelection;
|
||
|
tANI_U8 sessionId;
|
||
|
}tP2pPsParams, *tpP2pPsParams;
|
||
|
|
||
|
#define HAL_MAX_SUPP_CHANNELS 128
|
||
|
#define HAL_MAX_SUPP_OPER_CLASSES 32
|
||
|
|
||
|
typedef struct sTdlsLinkEstablishParams
|
||
|
{
|
||
|
tANI_U16 staIdx;
|
||
|
tANI_U8 isResponder;
|
||
|
tANI_U8 uapsdQueues;
|
||
|
tANI_U8 maxSp;
|
||
|
tANI_U8 isBufsta;
|
||
|
tANI_U8 isOffChannelSupported;
|
||
|
tANI_U8 peerCurrOperClass;
|
||
|
tANI_U8 selfCurrOperClass;
|
||
|
tANI_U8 validChannelsLen;
|
||
|
tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
|
||
|
tANI_U8 validOperClassesLen;
|
||
|
tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
|
||
|
tANI_U32 status;
|
||
|
}tTdlsLinkEstablishParams, *tpTdlsLinkEstablishParams;
|
||
|
|
||
|
typedef struct tHalHiddenSsidVdevRestart
|
||
|
{
|
||
|
tANI_U8 ssidHidden;
|
||
|
tANI_U8 sessionId;
|
||
|
}tHalHiddenSsidVdevRestart,*tpHalHiddenSsidVdevRestart;
|
||
|
|
||
|
static inline void halGetTxTSFtimer(tpAniSirGlobal pMac,
|
||
|
tSirMacTimeStamp *pTime)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
extern void SysProcessMmhMsg(tpAniSirGlobal pMac, tSirMsgQ* pMsg);
|
||
|
|
||
|
/* Beacon Filtering data structures */
|
||
|
typedef __ani_attr_pre_packed struct sBeaconFilterMsg
|
||
|
{
|
||
|
tANI_U16 capabilityInfo;
|
||
|
tANI_U16 capabilityMask;
|
||
|
tANI_U16 beaconInterval;
|
||
|
tANI_U16 ieNum;
|
||
|
tANI_U8 bssIdx;
|
||
|
tANI_U8 reserved;
|
||
|
} __ani_attr_packed tBeaconFilterMsg, *tpBeaconFilterMsg;
|
||
|
|
||
|
typedef __ani_attr_pre_packed struct sEidByteInfo
|
||
|
{
|
||
|
tANI_U8 offset;
|
||
|
tANI_U8 value;
|
||
|
tANI_U8 bitMask;
|
||
|
tANI_U8 ref;
|
||
|
} __ani_attr_packed tEidByteInfo, *tpEidByteInfo;
|
||
|
|
||
|
|
||
|
/* The above structure would be followed by multiple of below mentioned
|
||
|
structure */
|
||
|
typedef __ani_attr_pre_packed struct sBeaconFilterIe
|
||
|
{
|
||
|
tANI_U8 elementId;
|
||
|
tANI_U8 checkIePresence;
|
||
|
tEidByteInfo byte;
|
||
|
} __ani_attr_packed tBeaconFilterIe, *tpBeaconFilterIe;
|
||
|
|
||
|
typedef __ani_attr_pre_packed struct sRemBeaconFilterMsg
|
||
|
{
|
||
|
tANI_U8 ucIeCount;
|
||
|
tANI_U8 ucRemIeId[1];
|
||
|
} __ani_attr_packed tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
|
||
|
|
||
|
typedef __ani_attr_pre_packed struct sDisableIntraBssFwd
|
||
|
{
|
||
|
tANI_U16 sessionId;
|
||
|
tANI_BOOLEAN disableintrabssfwd;
|
||
|
} __ani_attr_packed tDisableIntraBssFwd, *tpDisableIntraBssFwd;
|
||
|
|
||
|
#ifdef WLAN_FEATURE_STATS_EXT
|
||
|
typedef struct sStatsExtRequest
|
||
|
{
|
||
|
tANI_U32 vdev_id;
|
||
|
tANI_U32 request_data_len;
|
||
|
tANI_U8 request_data[];
|
||
|
} tStatsExtRequest, *tpStatsExtRequest;
|
||
|
#endif
|
||
|
|
||
|
#ifdef WLAN_FEATURE_NAN
|
||
|
typedef struct sNanRequest
|
||
|
{
|
||
|
tANI_U16 request_data_len;
|
||
|
tANI_U8 request_data[];
|
||
|
} tNanRequest, *tpNanRequest;
|
||
|
#endif
|
||
|
|
||
|
#ifdef SAP_AUTH_OFFLOAD
|
||
|
struct sap_offload_add_sta_req
|
||
|
{
|
||
|
tANI_U32 assoc_id;
|
||
|
tANI_U32 conn_req_len;
|
||
|
tANI_U8 conn_req[MAX_CONNECT_REQ_LENGTH];
|
||
|
};
|
||
|
struct sap_offload_del_sta_req
|
||
|
{
|
||
|
tANI_U32 assoc_id;
|
||
|
tANI_U32 reason_code;
|
||
|
tANI_U32 flags;
|
||
|
tSirMacAddr sta_mac;
|
||
|
};
|
||
|
#endif /* SAP_AUTH_OFFLOAD */
|
||
|
|
||
|
#ifdef WLAN_FEATURE_APFIND
|
||
|
struct hal_apfind_request
|
||
|
{
|
||
|
u_int16_t request_data_len;
|
||
|
u_int8_t request_data[];
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
#endif /* _HALMSGAPI_H_ */
|