blob: a8eafaa348a432e8efe363d20f04c4ed494e4329 [file] [log] [blame]
/*
* Copyright (c) 2012-2017 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.
*/
#if !defined( __LIM_SESSION_H )
#define __LIM_SESSION_H
#ifdef WLAN_FEATURE_FILS_SK
#include "lim_fils_defs.h"
#endif
/**=========================================================================
\file limSession.h
\brief prototype for lim Session related APIs
\author Sunit Bhatia
========================================================================*/
/* Powersave Offload Implementation */
typedef enum ePowersaveState
{
PMM_FULL_POWER,
PMM_POWER_SAVE
}tPowersaveState;
/* Master Structure: This will be part of PE Session Entry */
typedef struct sPowersaveoffloadInfo
{
tPowersaveState psstate;
tANI_U8 bcnmiss;
}tPowersaveoffloadInfo, tpPowersaveoffloadInfo;
#ifdef WLAN_FEATURE_11W
/*
* This struct is needed for handling of ASSOC RSP with TRY AGAIN LATER
* It stores the context and state machine setting for MLM so that it can
* go back send ASSOC REQ frame again after the timer has expired.
*/
typedef struct tagComebackTimerInfo
{
tpAniSirGlobal pMac;
tANI_U8 sessionID;
tLimMlmStates limPrevMlmState; /* Previous MLM State */
tLimSmeStates limMlmState; /* MLM State */
} tComebackTimerInfo;
#endif /* WLAN_FEATURE_11W */
/*--------------------------------------------------------------------------
Include Files
------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------
Preprocessor definitions and constants
------------------------------------------------------------------------*/
#define NUM_WEP_KEYS 4
// Maximum allowable size of a beacon frame
#define SCH_MAX_BEACON_SIZE 512
#define SCH_MAX_PROBE_RESP_SIZE 512
#define SCH_PROTECTION_RESET_TIME 4000
/*--------------------------------------------------------------------------
Type declarations
------------------------------------------------------------------------*/
typedef struct
{
tSirMacBeaconInterval beaconInterval;
tANI_U8 fShortPreamble;
tANI_U8 llaCoexist;
tANI_U8 llbCoexist;
tANI_U8 llgCoexist;
tANI_U8 ht20Coexist;
tANI_U8 llnNonGFCoexist;
tANI_U8 fRIFSMode;
tANI_U8 fLsigTXOPProtectionFullSupport;
tANI_U8 gHTObssMode;
}tBeaconParams, *tpBeaconParams;
typedef struct sPESession // Added to Support BT-AMP
{
/* To check session table is in use or free*/
tANI_U8 available;
tANI_U16 peSessionId;
tANI_U8 smeSessionId;
tANI_U16 transactionId;
//In AP role: BSSID and selfMacAddr will be the same.
//In STA role: they will be different
tSirMacAddr bssId;
tSirMacAddr selfMacAddr;
tSirMacSSid ssId;
tANI_U8 bssIdx;
tANI_U8 valid;
tLimMlmStates limMlmState; //MLM State
tLimMlmStates limPrevMlmState; //Previous MLM State
tLimSmeStates limSmeState; //SME State
tLimSmeStates limPrevSmeState; //Previous SME State
tLimSystemRole limSystemRole;
tSirBssType bssType;
tANI_U8 operMode; // AP - 0; STA - 1 ;
tSirNwType nwType;
tpSirSmeStartBssReq pLimStartBssReq; //handle to smestart bss req
bool osen_association;
bool wps_registration;
tpSirSmeJoinReq pLimJoinReq; // handle to sme join req
tpSirSmeJoinReq pLimReAssocReq; //handle to sme reassoc req
tpLimMlmJoinReq pLimMlmJoinReq; //handle to MLM join Req
#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
void *pLimMlmReassocRetryReq; //keep reasoc req for retry
#endif
void *pLimMlmReassocReq; //handle to MLM reassoc Req
tANI_U16 channelChangeReasonCode;
tANI_U8 dot11mode;
tANI_U8 htCapability;
/* Supported Channel Width Set: 0-20MHz 1 - 40MHz */
tANI_U8 htSupportedChannelWidthSet;
/* Recommended Tx Width Set
* 0 - use 20 MHz channel (control channel)
* 1 - use channel width enabled under Supported Channel Width Set
*/
tANI_U8 htRecommendedTxWidthSet;
/* Identifies the 40 MHz extension channel */
ePhyChanBondState htSecondaryChannelOffset;
tSirRFBand limRFBand;
tANI_U8 limIbssActive; //TO SUPPORT CONCURRENCY
/* These global varibales moved to session Table to support BT-AMP : Oct 9th review */
tAniAuthType limCurrentAuthType;
tANI_U16 limCurrentBssCaps;
tANI_U8 limCurrentBssQosCaps;
tANI_U16 limCurrentBssPropCap;
tANI_U8 limSentCapsChangeNtf;
tANI_U16 limAID;
/* Parameters For Reassociation */
tSirMacAddr limReAssocbssId;
tSirMacChanNum limReassocChannelId;
/* CB paramaters required/duplicated for Reassoc since re-assoc mantains its own params in lim */
tANI_U8 reAssocHtSupportedChannelWidthSet;
tANI_U8 reAssocHtRecommendedTxWidthSet;
ePhyChanBondState reAssocHtSecondaryChannelOffset;
tSirMacSSid limReassocSSID;
tANI_U16 limReassocBssCaps;
tANI_U8 limReassocBssQosCaps;
tANI_U16 limReassocBssPropCap;
// Assoc or ReAssoc Response Data/Frame
void *limAssocResponseData;
/** BSS Table parameters **/
/*
* staId: Start BSS: this is the Sta Id for the BSS.
* Join: this is the selfStaId
* In both cases above, the peer STA ID wll be stored in dph hash table.
*/
tANI_U16 staId;
tANI_U16 statypeForBss; //to know session is for PEER or SELF
tANI_U8 shortSlotTimeSupported;
tANI_U8 dtimPeriod;
tSirMacRateSet rateSet;
tSirMacRateSet extRateSet;
tSirMacHTOperatingMode htOperMode;
tANI_U8 currentOperChannel;
tANI_U8 currentReqChannel;
tANI_U8 LimRxedBeaconCntDuringHB;
//Time stamp of the last beacon received from the BSS to which STA is connected.
tANI_U64 lastBeaconTimeStamp;
//RX Beacon count for the current BSS to which STA is connected.
tANI_U32 currentBssBeaconCnt;
tANI_U8 lastBeaconDtimCount;
tANI_U8 lastBeaconDtimPeriod;
tANI_U32 bcnLen;
tANI_U8 *beacon; //Used to store last beacon / probe response before assoc.
tANI_U32 assocReqLen;
tANI_U8 *assocReq; //Used to store association request frame sent out while associating.
tANI_U32 assocRspLen;
tANI_U8 *assocRsp; //Used to store association response received while associating
tAniSirDph dph;
void * *parsedAssocReq; //Used to store parsed assoc req from various requesting station
#ifdef WLAN_FEATURE_VOWIFI_11R
tANI_U32 RICDataLen; //Used to store the Ric data received in the assoc response
tANI_U8 *ricData;
#endif
#ifdef FEATURE_WLAN_ESE
tANI_U32 tspecLen; //Used to store the TSPEC IEs received in the assoc response
tANI_U8 *tspecIes;
#endif
tANI_U32 encryptType;
tANI_BOOLEAN bTkipCntrMeasActive; // Used to keep record of TKIP counter measures start/stop
tANI_U8 gLimProtectionControl; //used for 11n protection
tANI_U8 gHTNonGFDevicesPresent;
//protection related config cache
tCfgProtection cfgProtection;
// Number of legacy STAs associated
tLimProtStaParams gLim11bParams;
// Number of 11A STAs associated
tLimProtStaParams gLim11aParams;
// Number of non-ht non-legacy STAs associated
tLimProtStaParams gLim11gParams;
//Number of nonGf STA associated
tLimProtStaParams gLimNonGfParams;
//Number of HT 20 STAs associated
tLimProtStaParams gLimHt20Params;
//Number of Lsig Txop not supported STAs associated
tLimProtStaParams gLimLsigTxopParams;
// Number of STAs that do not support short preamble
tLimNoShortParams gLimNoShortParams;
// Number of STAs that do not support short slot time
tLimNoShortSlotParams gLimNoShortSlotParams;
// OLBC parameters
tLimProtStaParams gLimOlbcParams;
// OLBC parameters
tLimProtStaParams gLimOverlap11gParams;
tLimProtStaParams gLimOverlap11aParams;
tLimProtStaParams gLimOverlapHt20Params;
tLimProtStaParams gLimOverlapNonGfParams;
//cache for each overlap
tCacheParams protStaCache[LIM_PROT_STA_CACHE_SIZE];
tANI_U8 privacy;
tAniAuthType authType;
tSirKeyMaterial WEPKeyMaterial[NUM_WEP_KEYS];
tDot11fIERSN gStartBssRSNIe;
tDot11fIEWPA gStartBssWPAIe;
tSirAPWPSIEs APWPSIEs;
tANI_U8 apUapsdEnable;
tSirWPSPBCSession *pAPWPSPBCSession;
tANI_U32 DefProbeRspIeBitmap[8];
tANI_U32 proxyProbeRspEn;
tDot11fProbeResponse probeRespFrame;
tANI_U8 ssidHidden;
tANI_BOOLEAN fwdWPSPBCProbeReq;
tANI_U8 wps_state;
tANI_U8 limQosEnabled:1; //11E
tANI_U8 limWmeEnabled:1; //WME
tANI_U8 limWsmEnabled:1; //WSM
tANI_U8 limHcfEnabled:1;
tANI_U8 lim11dEnabled:1;
#ifdef WLAN_FEATURE_11W
tANI_U8 limRmfEnabled:1; //11W
#endif
tANI_U32 lim11hEnable;
tPowerdBm maxTxPower; //MIN (Regulatory and local power constraint)
tVOS_CON_MODE pePersona;
#if defined WLAN_FEATURE_VOWIFI
tPowerdBm txMgmtPower;
#endif
#ifdef WLAN_FEATURE_VOWIFI_11R
tAniBool is11Rconnection;
#endif
#ifdef FEATURE_WLAN_ESE
tAniBool isESEconnection;
tEsePEContext eseContext;
#endif
#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
tAniBool isFastTransitionEnabled;
#endif
#ifdef FEATURE_WLAN_LFR
tAniBool isFastRoamIniFeatureEnabled;
#endif
tSirNoAParam p2pNoA;
tSirP2PNoaAttr p2pGoPsUpdate;
tANI_U32 defaultAuthFailureTimeout;
tSirP2PNoaStart p2pGoPsNoaStartInd;
/* EDCA QoS parameters
* gLimEdcaParams - These EDCA parameters are used locally on AP or STA.
* If STA, then these are values taken from the Assoc Rsp when associating,
* or Beacons/Probe Response after association. If AP, then these are
* values originally set locally on AP.
*
* gLimEdcaParamsBC - These EDCA parameters are use by AP to broadcast
* to other STATIONs in the BSS.
*
* gLimEdcaParamsActive: These EDCA parameters are what's actively being
* used on station. Specific AC values may be downgraded depending on
* admission control for that particular AC.
*/
tSirMacEdcaParamRecord gLimEdcaParams[MAX_NUM_AC]; //used locally
tSirMacEdcaParamRecord gLimEdcaParamsBC[MAX_NUM_AC]; //used for broadcast
tSirMacEdcaParamRecord gLimEdcaParamsActive[MAX_NUM_AC];
tANI_U8 gLimEdcaParamSetCount;
tBeaconParams beaconParams;
#ifdef WLAN_FEATURE_11AC
tANI_U8 vhtCapability;
tANI_U8 vhtTxChannelWidthSet;
tLimOperatingModeInfo gLimOperatingMode;
tANI_U8 vhtCapabilityPresentInBeacon;
tANI_U8 apCenterChan;
tANI_U8 apChanWidth;
tANI_U8 txBFIniFeatureEnabled;
tANI_U8 txMuBformee;
tANI_U8 enableVhtpAid;
tANI_U8 enableVhtGid;
#endif
tLimWiderBWChannelSwitchInfo gLimWiderBWChannelSwitch;
tANI_U8 enableAmpduPs;
tANI_U8 enableHtSmps;
tANI_U8 htSmpsvalue;
tANI_U8 spectrumMgtEnabled;
/* *********************11H related*****************************/
tLimSpecMgmtInfo gLimSpecMgmt;
// CB Primary/Secondary Channel Switch Info
tLimChannelSwitchInfo gLimChannelSwitch;
/* *********************End 11H related*****************************/
uint8_t lim_sub20_channel_switch_bandwidth;
/*Flag to Track Status/Indicate HBFailure on this session */
tANI_BOOLEAN LimHBFailureStatus;
tANI_U32 gLimPhyMode;
tANI_U8 amsduSupportedInBA;
tANI_U8 txLdpcIniFeatureEnabled;
/**
* Following is the place holder for free peer index pool.
* A non-zero value indicates that peer index is available
* for assignment.
*/
tANI_U8 *gpLimPeerIdxpool;
tANI_U8 freePeerIdxHead;
tANI_U8 freePeerIdxTail;
tANI_U16 gLimNumOfCurrentSTAs;
#ifdef FEATURE_WLAN_TDLS
tANI_U32 peerAIDBitmap[2];
bool tdls_prohibited;
bool tdls_chan_swit_prohibited;
#endif
tANI_BOOLEAN fWaitForProbeRsp;
tANI_BOOLEAN fIgnoreCapsChange;
tANI_BOOLEAN fDeauthReceived;
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM
tANI_S8 rssi;
#endif
tANI_U8 max_amsdu_num;
tANI_U8 isCoalesingInIBSSAllowed;
tSirHTConfig htConfig;
/*
* Place holder for StartBssReq message
* received by SME state machine
*/
tANI_U8 gLimCurrentBssUapsd;
/* Used on STA, this is a static UAPSD mask setting
* derived from SME_JOIN_REQ and SME_REASSOC_REQ. If a
* particular AC bit is set, it means the AC is both
* trigger enabled and delivery enabled.
*/
tANI_U8 gUapsdPerAcBitmask;
/* Used on STA, this is a dynamic UPASD mask setting
* derived from AddTS Rsp and DelTS frame. If a
* particular AC bit is set, it means AC is trigger
* enabled.
*/
tANI_U8 gUapsdPerAcTriggerEnableMask;
/* Used on STA, dynamic UPASD mask setting
* derived from AddTS Rsp and DelTs frame. If
* a particular AC bit is set, it means AC is
* delivery enabled.
*/
tANI_U8 gUapsdPerAcDeliveryEnableMask;
/* Flag to skip CSA IE processing when CSA
* offload is enabled.
*/
tANI_U8 csaOffloadEnable;
/* Used on STA for AC downgrade. This is a dynamic mask
* setting which keep tracks of ACs being admitted.
* If bit is set to 0: That partiular AC is not admitted
* If bit is set to 1: That particular AC is admitted
*/
tANI_U8 gAcAdmitMask[SIR_MAC_DIRECTION_DIRECT];
/* Power Save Off load Parameters */
tPowersaveoffloadInfo pmmOffloadInfo;
/* SMPS mode */
tANI_U8 smpsMode;
tANI_U8 chainMask;
/* Flag to indicate Chan Sw announcement is required */
tANI_U8 dfsIncludeChanSwIe;
/* Flag to indicate Chan Wrapper Element is required */
tANI_U8 dfsIncludeChanWrapperIe;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
tANI_U8 cc_switch_mode;
#endif
tANI_BOOLEAN isCiscoVendorAP;
tSirAddIeParams addIeParams;
tANI_U8 *pSchProbeRspTemplate;
// Beginning portion of the beacon frame to be written to TFP
tANI_U8 *pSchBeaconFrameBegin;
// Trailing portion of the beacon frame to be written to TFP
tANI_U8 *pSchBeaconFrameEnd;
// Size of the beginning portion
tANI_U16 schBeaconOffsetBegin;
// Size of the trailing portion
tANI_U16 schBeaconOffsetEnd;
tANI_BOOLEAN isOSENConnection;
/* DSCP to UP mapping for HS 2.0 */
tSirQosMapSet QosMapSet;
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
tANI_BOOLEAN bRoamSynchInProgress;
#endif
#if defined WLAN_FEATURE_VOWIFI_11R
/* Fast Transition (FT) */
tftPEContext ftPEContext;
#endif
tANI_BOOLEAN isNonRoamReassoc;
#ifdef WLAN_FEATURE_11W
vos_timer_t pmfComebackTimer;
tComebackTimerInfo pmfComebackTimerInfo;
#endif /* WLAN_FEATURE_11W */
tANI_U8 isKeyInstalled;
/* timer for reseting protection fileds at regular intervals */
vos_timer_t protection_fields_reset_timer;
void *mac_ctx;
/*
* variable to store state of various protection struct like
* gLimOlbcParams, gLimOverlap11gParams, gLimOverlapHt20Params etc
*/
tANI_U16 old_protection_state;
tSirMacAddr prev_ap_bssid;
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
/* tells if Q2Q IE, from another MDM device in AP MCC mode was recvd */
bool sap_advertise_avoid_ch_ie;
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
uint8_t sap_dot11mc;
#ifdef FEATURE_WLAN_ESE
uint8_t is_ese_version_ie_present;
#endif
/* HS 2.0 Indication */
tDot11fIEhs20vendor_ie hs20vendor_ie;
/* flag to indicate country code in beacon */
tANI_U8 countryInfoPresent;
uint8_t vdev_nss;
bool roaming_in_progress;
bool add_bss_failed;
/* Supported NSS is intersection of self and peer NSS */
bool supported_nss_1x1;
bool is_ext_caps_present;
tDot11fIEHTCaps ht_caps;
tDot11fIEVHTCaps vht_caps;
tDot11fIEHTInfo ht_operation;
tDot11fIEVHTOperation vht_operation;
bool is_vendor_specific_vhtcaps;
uint8_t vendor_specific_vht_ie_type;
uint8_t vendor_specific_vht_ie_sub_type;
bool vendor_vht_for_24ghz_sap;
uint16_t beacon_tx_rate;
uint8_t *access_policy_vendor_ie;
uint8_t access_policy;
uint8_t sap_sub20_channelwidth;
uint8_t sub20_channelwidth;
uint8_t vht_channel_width;
/* Number of STAs that do not support ECSA capability */
uint8_t lim_non_ecsa_cap_num;
uint32_t sta_auth_retries_for_code17;
bool force_24ghz_in_ht20;
#ifdef WLAN_FEATURE_FILS_SK
struct pe_fils_session *fils_info;
#endif
} tPESession, *tpPESession;
/*-------------------------------------------------------------------------
Function declarations and documenation
------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------
\brief peCreateSession() - creates a new PE session given the BSSID
This function returns the session context and the session ID if the
session corresponding to the passed BSSID is found in the PE session
table.
\param pMac - pointer to global adapter context
\param bssid - BSSID of the new session
\param sessionId - session ID is returned here, if session is
created.
\param bssType - bss type of new session to do conditional
memory allocation.
\return tpPESession - pointer to the session context or NULL if
session can not be created.
\sa
--------------------------------------------------------------------------*/
tpPESession peCreateSession(tpAniSirGlobal pMac,
tANI_U8 *bssid,
tANI_U8* sessionId,
tANI_U16 numSta,
tSirBssType bssType);
/*--------------------------------------------------------------------------
\brief peFindSessionByBssid() - looks up the PE session given the BSSID.
This function returns the session context and the session ID if the session
corresponding to the given BSSID is found in the PE session table.
\param pMac - pointer to global adapter context
\param bssid - BSSID of the session
\param sessionId -session ID is returned here, if session is found.
\return tpPESession - pointer to the session context or NULL if session is not found.
\sa
--------------------------------------------------------------------------*/
tpPESession peFindSessionByBssid(tpAniSirGlobal pMac, tANI_U8* bssid, tANI_U8* sessionId);
/*--------------------------------------------------------------------------
\brief peFindSessionByBssIdx() - looks up the PE session given the bssIdx.
This function returns the session context if the session
corresponding to the given bssIdx is found in the PE session table.
\param pMac - pointer to global adapter context
\param bssIdx - bss index of the session
\return tpPESession - pointer to the session context or NULL if session is not found.
\sa
--------------------------------------------------------------------------*/
tpPESession peFindSessionByBssIdx(tpAniSirGlobal pMac, tANI_U8 bssIdx);
/*--------------------------------------------------------------------------
\brief peFindSessionByPeerSta() - looks up the PE session given the Peer Station Address.
This function returns the session context and the session ID if the session
corresponding to the given destination address is found in the PE session table.
\param pMac - pointer to global adapter context
\param sa - Peer STA Address of the session
\param sessionId -session ID is returned here, if session is found.
\return tpPESession - pointer to the session context or NULL if session is not found.
\sa
--------------------------------------------------------------------------*/
tpPESession peFindSessionByPeerSta(tpAniSirGlobal pMac, tANI_U8* sa, tANI_U8* sessionId);
/*--------------------------------------------------------------------------
\brief peFindSessionBySessionId() - looks up the PE session given the session ID.
This function returns the session context if the session
corresponding to the given session ID is found in the PE session table.
\param pMac - pointer to global adapter context
\param sessionId -session ID for which session context needs to be looked up.
\return tpPESession - pointer to the session context or NULL if session is not found.
\sa
--------------------------------------------------------------------------*/
tpPESession peFindSessionBySessionId(tpAniSirGlobal pMac , tANI_U8 sessionId);
/*--------------------------------------------------------------------------
\brief peFindSessionByBssid() - looks up the PE session given staid.
This function returns the session context and the session ID if the session
corresponding to the given StaId is found in the PE session table.
\param pMac - pointer to global adapter context
\param staid - StaId of the session
\param sessionId - session ID is returned here, if session is found.
\return tpPESession - pointer to the session context or NULL if session is not found.
--------------------------------------------------------------------------*/
tpPESession peFindSessionByStaId(tpAniSirGlobal pMac, tANI_U8 staid, tANI_U8* sessionId);
/*--------------------------------------------------------------------------
\brief peDeleteSession() - deletes the PE session given the session ID.
\param pMac - pointer to global adapter context
\param sessionId -session ID of the session which needs to be deleted.
\sa
--------------------------------------------------------------------------*/
void peDeleteSession(tpAniSirGlobal pMac, tpPESession psessionEntry);
/**
* pe_find_session_by_sme_session_id() - looks up the PE session for given sme
* session id
* @mac_ctx: pointer to global adapter context
* @sme_session_id: sme session id
*
* looks up the PE session for given sme session id
*
* Return: pe session entry for given sme session if found else NULL
*/
tpPESession pe_find_session_by_sme_session_id(tpAniSirGlobal mac_ctx,
uint8_t sme_session_id);
uint8_t pe_count_session_with_sme_session_id(tpAniSirGlobal mac_ctx,
uint8_t sme_session_id);
int pe_get_active_session_count(tpAniSirGlobal mac_ctx);
#ifdef WLAN_FEATURE_FILS_SK
/**
* pe_delete_fils_info: API to delete fils session info
* @session: pe session
*
* Return: void
*/
void pe_delete_fils_info(tpPESession session);
#endif
#endif //#if !defined( __LIM_SESSION_H )