blob: 562dad3c029f84a6f38e95f92eb712cab81a3f52 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Abhishek Singh02605092017-10-25 14:06:12 +05302 * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
Kiet Lam0fb93dd2014-02-19 00:32:59 -08003 *
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.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080020 */
Kiet Lam0fb93dd2014-02-19 00:32:59 -080021
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Jeff Johnson295189b2012-06-20 16:38:30 -070028#if !defined( __SMEINSIDE_H )
29#define __SMEINSIDE_H
30
31
32/**=========================================================================
33
34 \file smeInside.h
35
36 \brief prototype for SME structures and APIs used insside SME
37
Jeff Johnson295189b2012-06-20 16:38:30 -070038
39 ========================================================================*/
40
41/* $Header$ */
42
43/*--------------------------------------------------------------------------
44 Include Files
45 ------------------------------------------------------------------------*/
46#include "vos_status.h"
47#include "vos_lock.h"
48#include "vos_trace.h"
49#include "vos_memory.h"
50#include "vos_types.h"
51#include "sirApi.h"
52#include "csrInternal.h"
53#include "sme_QosApi.h"
54#include "smeQosInternal.h"
55
56
Jeff Johnsone7245742012-09-05 17:12:55 -070057#ifdef FEATURE_OEM_DATA_SUPPORT
58#include "oemDataInternal.h"
59#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070060
61#if defined WLAN_FEATURE_VOWIFI
62#include "sme_RrmApi.h"
63#endif
64
65
66/*--------------------------------------------------------------------------
67 Type declarations
68 ------------------------------------------------------------------------*/
69
Gopichand Nakkala976e3252013-01-03 15:45:56 -080070#define SME_TOTAL_COMMAND 30
Abhishek Singh6b27f072015-09-10 14:46:33 +053071#define SME_START_CHAN_STEP 4
Jeff Johnson295189b2012-06-20 16:38:30 -070072
73typedef struct sGenericPmcCmd
74{
75 tANI_U32 size; //sizeof the data in the union, if any
76 tRequestFullPowerReason fullPowerReason;
77 tANI_BOOLEAN fReleaseWhenDone; //if TRUE, the command shall not put back to the queue, free te memory instead.
78 union
79 {
80 tExitBmpsInfo exitBmpsInfo;
81 tSirSmeWowlEnterParams enterWowlInfo;
82 }u;
83} tGenericPmcCmd;
84
85
86typedef struct sGenericQosCmd
87{
88 sme_QosWmmTspecInfo tspecInfo;
89 sme_QosEdcaAcType ac;
90 v_U8_t tspec_mask;
91} tGenericQosCmd;
92
Jeff Johnson295189b2012-06-20 16:38:30 -070093typedef struct sRemainChlCmd
94{
95 tANI_U8 chn;
96 tANI_U8 phyMode;
97 tANI_U32 duration;
Gopichand Nakkala924e4552013-05-08 19:18:14 +053098 tANI_U8 isP2PProbeReqAllowed;
Jeff Johnson295189b2012-06-20 16:38:30 -070099 void* callback;
100 void* callbackCtx;
101}tRemainChlCmd;
102
103typedef struct sNoACmd
104{
105 tP2pPsConfig NoA;
106} tNoACmd;
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800107#ifdef FEATURE_WLAN_TDLS
108typedef struct TdlsSendMgmtInfo
109{
110 tSirMacAddr peerMac;
111 tANI_U8 frameType;
112 tANI_U8 dialog;
113 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -0800114 tANI_U8 responder;
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +0530115 tANI_U32 peerCapability;
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800116 tANI_U8 *buf;
117 tANI_U8 len;
118} tTdlsSendMgmtCmdInfo;
119
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530120typedef struct TdlsLinkEstablishInfo
121{
122 tSirMacAddr peerMac;
123 tANI_U8 uapsdQueues;
124 tANI_U8 maxSp;
125 tANI_U8 isBufSta;
Naresh Jayaramdff88f92014-02-12 21:44:29 +0530126 tANI_U8 isOffChannelSupported;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530127 tANI_U8 isResponder;
Naresh Jayaramdff88f92014-02-12 21:44:29 +0530128 tANI_U8 supportedChannelsLen;
129 tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
130 tANI_U8 supportedOperClassesLen;
131 tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530132} tTdlsLinkEstablishCmdInfo;
133
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800134typedef struct TdlsAddStaInfo
135{
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800136 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800137 tSirMacAddr peerMac;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800138 tANI_U16 capability;
139 tANI_U8 extnCapability[SIR_MAC_MAX_EXTN_CAP];
140 tANI_U8 supportedRatesLen;
141 tANI_U8 supportedRates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -0700142 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800143 tSirHTCap HTCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -0700144 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800145 tSirVHTCap VHTCap;
146 tANI_U8 uapsdQueues;
147 tANI_U8 maxSp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800148} tTdlsAddStaCmdInfo;
149
150typedef struct TdlsDelStaInfo
151{
152 tSirMacAddr peerMac;
153} tTdlsDelStaCmdInfo;
Atul Mittalc0f739f2014-07-31 13:47:47 +0530154
155// tdlsoffchan
156typedef struct TdlsChanSwitchInfo
157{
158 tSirMacAddr peerMac;
159 tANI_U8 tdlsOffCh;
160 tANI_U8 tdlsOffChBwOffset;
161 tANI_U8 tdlsSwMode;
162} tTdlsChanSwitchCmdInfo;
163
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800164/*
165 * TDLS cmd info, CMD from SME to PE.
166 */
167typedef struct s_tdls_cmd
168{
169 tANI_U32 size;
170 union
171 {
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530172 tTdlsLinkEstablishCmdInfo tdlsLinkEstablishCmdInfo;
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800173 tTdlsSendMgmtCmdInfo tdlsSendMgmtCmdInfo;
174 tTdlsAddStaCmdInfo tdlsAddStaCmdInfo;
175 tTdlsDelStaCmdInfo tdlsDelStaCmdInfo;
Atul Mittalc0f739f2014-07-31 13:47:47 +0530176 tTdlsChanSwitchCmdInfo tdlsChanSwitchCmdInfo; //tdlsoffchan
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800177 }u;
178} tTdlsCmd;
179#endif /* FEATURE_WLAN_TDLS */
Jeff Johnson295189b2012-06-20 16:38:30 -0700180
181typedef struct tagSmeCmd
182{
183 tListElem Link;
184 eSmeCommandType command;
185 tANI_U32 sessionId;
186 union
187 {
188 tScanCmd scanCmd;
189 tRoamCmd roamCmd;
190 tWmStatusChangeCmd wmStatusChangeCmd;
191 tSetKeyCmd setKeyCmd;
192 tRemoveKeyCmd removeKeyCmd;
193 tGenericPmcCmd pmcCmd;
194 tGenericQosCmd qosCmd;
Jeff Johnsone7245742012-09-05 17:12:55 -0700195#ifdef FEATURE_OEM_DATA_SUPPORT
196 tOemDataCmd oemDataCmd;
197#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700198 tRemainChlCmd remainChlCmd;
199 tNoACmd NoACmd;
Jeff Johnson295189b2012-06-20 16:38:30 -0700200 tAddStaForSessionCmd addStaSessionCmd;
201 tDelStaForSessionCmd delStaSessionCmd;
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800202#ifdef FEATURE_WLAN_TDLS
203 tTdlsCmd tdlsCmd;
204#endif
Hanumantha Reddy Pothula28b1e652015-02-02 21:10:13 +0530205 tSirPNOScanReq pnoInfo;
Siddharth Bhald8a95e82015-02-12 20:14:52 +0530206 tSirSpoofMacAddrReq macAddrSpoofCmd;
Siddharth Bhal64246172015-02-27 01:04:37 +0530207 tAniGetFrameLogReq getFramelogCmd;
Abhishek Singh99a31be2015-12-10 10:37:44 +0530208 struct s_ani_set_tx_max_pwr set_tx_max_pwr;
Srinivas Dasaria3f11c02015-03-20 13:15:20 +0530209 tpNanRequest pNanReq;
Padma, Santhosh Kumar98b5d252016-10-17 17:30:41 +0530210 struct csr_set_tx_max_pwr_per_band set_tx_max_pwr_per_band;
Padma, Santhosh Kumar11567cd2016-11-10 18:14:53 +0530211 tpSirUpdateChanList chan_list;
Ajit Vaishya19ce45d2020-04-18 19:11:04 +0530212 tpRoamParams RoamParams;
Sourav Mohapatra6334d0b2020-05-27 12:16:05 +0530213 bool olpc_mode_enable;
Dundi Raviteja453d6f92020-09-16 11:54:27 +0530214#ifdef FEATURE_WLAN_SW_PTA
215 struct sir_sw_pta_req *sw_pta_req;
216#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700217 }u;
218}tSmeCmd;
219
220
221
222/*--------------------------------------------------------------------------
223 Internal to SME
224 ------------------------------------------------------------------------*/
225
226//To get a command buffer
227//Return: NULL if there no more command buffer left
228tSmeCmd *smeGetCommandBuffer( tpAniSirGlobal pMac );
229void smePushCommand( tpAniSirGlobal pMac, tSmeCmd *pCmd, tANI_BOOLEAN fHighPriority );
230void smeProcessPendingQueue( tpAniSirGlobal pMac );
231void smeReleaseCommand(tpAniSirGlobal pMac, tSmeCmd *pCmd);
Madan Mohan Koyyalamudi21255992013-08-01 18:00:25 +0530232void purgeSmeSessionCmdList(tpAniSirGlobal pMac, tANI_U32 sessionId,
Abhishek Singh7b2d0812016-04-28 11:44:29 +0530233 tDblLinkList *pList, bool flush_all);
Padma, Santhosh Kumar9093b202015-07-21 15:37:38 +0530234tANI_U32 sme_get_sessionid_from_activeList(tpAniSirGlobal pMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700235tANI_BOOLEAN smeCommandPending(tpAniSirGlobal pMac);
236tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
237//this function is used to abort a command where the normal processing of the command
238//is terminated without going through the normal path. it is here to take care of callbacks for
239//the command, if applicable.
240void pmcAbortCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand, tANI_BOOLEAN fStopping );
241tANI_BOOLEAN qosProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
Abhishek Singh6b27f072015-09-10 14:46:33 +0530242eHalStatus csrIsValidChannel(tpAniSirGlobal pMac, tANI_U8 chnNum);
243tANI_BOOLEAN csrRoamIsValid40MhzChannel(tpAniSirGlobal pMac, tANI_U8 channel);
Jeff Johnson295189b2012-06-20 16:38:30 -0700244eHalStatus csrProcessScanCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
245eHalStatus csrRoamProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
246void csrRoamProcessWmStatusChangeCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
247void csrReinitRoamCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
248void csrReinitWmStatusChangeCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
249void csrReinitSetKeyCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
250void csrReinitRemoveKeyCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
251eHalStatus csrRoamProcessSetKeyCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
252eHalStatus csrRoamProcessRemoveKeyCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
253void csrReleaseCommandSetKey(tpAniSirGlobal pMac, tSmeCmd *pCommand);
254void csrReleaseCommandRemoveKey(tpAniSirGlobal pMac, tSmeCmd *pCommand);
255//eHalStatus csrRoamIssueSetKeyCommand( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 roamId );
256eHalStatus csrRoamIssueRemoveKeyCommand( tpAniSirGlobal pMac, tANI_U32 sessionId,
257 tCsrRoamRemoveKey *pRemoveKey, tANI_U32 roamId );
258eHalStatus csrIsFullPowerNeeded( tpAniSirGlobal pMac, tSmeCmd *pCommand, tRequestFullPowerReason *pReason,
259 tANI_BOOLEAN *pfNeedPower);
Abhishek Singh7b2d0812016-04-28 11:44:29 +0530260bool csr_is_disconnect_full_power_cmd(tSmeCmd *command);
Jeff Johnson295189b2012-06-20 16:38:30 -0700261void csrAbortCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand, tANI_BOOLEAN fStopping );
262
263eHalStatus sme_AcquireGlobalLock( tSmeStruct *psSme);
264eHalStatus sme_ReleaseGlobalLock( tSmeStruct *psSme);
265
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +0530266/* ---------------------------------------------------------------------------
267 \fn sme_SetCfgScanControlList
268 \brief API to set Scan Control List
269 \param hHal - The handle returned by macOpen.
270 \param countryCode - Pointer to the countryCode
271 \param pChannelList - Pointer to the valid channel list
272 \return eHalStatus
273 ---------------------------------------------------------------------------*/
274eHalStatus sme_SetCfgScanControlList(tHalHandle hHal, tANI_U8 *countryCode,
275 tCsrChannel *pChannelList);
276
Jeff Johnsone7245742012-09-05 17:12:55 -0700277#ifdef FEATURE_OEM_DATA_SUPPORT
278eHalStatus oemData_ProcessOemDataReqCommand(tpAniSirGlobal pMac, tSmeCmd *pCommand);
279#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700280
281eHalStatus csrProcessAddStaSessionCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
282eHalStatus csrProcessAddStaSessionRsp( tpAniSirGlobal pMac, tANI_U8 *pMsg);
283eHalStatus csrProcessDelStaSessionCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
Siddharth Bhald8a95e82015-02-12 20:14:52 +0530284eHalStatus csrProcessMacAddrSpoofCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
Jeff Johnson295189b2012-06-20 16:38:30 -0700285eHalStatus csrProcessDelStaSessionRsp( tpAniSirGlobal pMac, tANI_U8 *pMsg);
Siddharth Bhal64246172015-02-27 01:04:37 +0530286eHalStatus csrProcessGetFrameLogCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
Jeff Johnson295189b2012-06-20 16:38:30 -0700287
288#ifdef WLAN_NS_OFFLOAD
289/* ---------------------------------------------------------------------------
290 \fn pmcSetNSOffload
291 \brief Set the host offload feature.
292 \param hHal - The handle returned by macOpen.
293 \param pRequest - Pointer to the offload request.
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -0700294 \param sessionId . Session index of the session
Jeff Johnson295189b2012-06-20 16:38:30 -0700295 \return eHalStatus
296 eHAL_STATUS_FAILURE Cannot set the offload.
297 eHAL_STATUS_SUCCESS Request accepted.
298 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -0700299eHalStatus pmcSetNSOffload (tHalHandle hHal, tpSirHostOffloadReq pRequest, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700300#endif //WLAN_NS_OFFLOAD
301
302#ifdef FEATURE_WLAN_SCAN_PNO
303eHalStatus pmcSetPreferredNetworkList(tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext);
304eHalStatus pmcUpdateScanParams(tHalHandle hHal, tCsrConfig *pRequest, tCsrChannel *pChannelList, tANI_U8 b11dResolved);
305eHalStatus pmcSetRssiFilter(tHalHandle hHal, v_U8_t rssiThreshold);
306#endif // FEATURE_WLAN_SCAN_PNO
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -0800307eHalStatus pmcSetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced);
Jeff Johnson295189b2012-06-20 16:38:30 -0700308
309tANI_BOOLEAN csrRoamGetConcurrencyConnectStatusForBmps(tpAniSirGlobal pMac);
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800310#ifdef FEATURE_WLAN_TDLS
311eHalStatus csrTdlsSendMgmtReq(tHalHandle hHal, tANI_U8 sessionId, tCsrTdlsSendMgmt *tdlsSendMgmt);
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530312VOS_STATUS csrTdlsSendLinkEstablishParams(tHalHandle hHal,
313 tANI_U8 sessionId,
Anand N Sunkadc205d952015-07-30 15:36:03 +0530314#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
315 const tSirMacAddr peerMac,
316#else
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530317 tSirMacAddr peerMac,
Anand N Sunkadc205d952015-07-30 15:36:03 +0530318#endif
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530319 tCsrTdlsLinkEstablishParams *tdlsLinkEstablishParams);
Anand N Sunkadb3ab97d2015-07-29 09:58:13 +0530320eHalStatus csrTdlsAddPeerSta(tHalHandle hHal, tANI_U8 sessionId,
321#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
322 const tSirMacAddr peerMac
323#else
324 tSirMacAddr peerMac
325#endif
326 );
327eHalStatus csrTdlsChangePeerSta(tHalHandle hHal, tANI_U8 sessionId,
328#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
329 const tSirMacAddr peerMac,
330#else
331 tSirMacAddr peerMac,
332#endif
333 tCsrStaParams *pstaParams);
Anand N Sunkadc205d952015-07-30 15:36:03 +0530334eHalStatus csrTdlsDelPeerSta(tHalHandle hHal, tANI_U8 sessionId,
335#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
336 const tSirMacAddr peerMac
337#else
338 tSirMacAddr peerMac
339#endif
340 );
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800341eHalStatus csrTdlsProcessCmd(tpAniSirGlobal pMac,tSmeCmd *pCommand );
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530342eHalStatus csrTdlsProcessLinkEstablish( tpAniSirGlobal pMac, tSmeCmd *cmd );
Atul Mittalc0f739f2014-07-31 13:47:47 +0530343eHalStatus csrTdlsProcessChanSwitchReq(tpAniSirGlobal pMac, tSmeCmd *cmd ); //tdlsoffchan
344eHalStatus tdlsMsgProcessor(tpAniSirGlobal pMac,v_U16_t msg_type, void *pMsgBuf);
345VOS_STATUS csrTdlsSendChanSwitchReq(tHalHandle hHal,
346 tANI_U8 sessionId,
347 tSirMacAddr peerMac,
348 tANI_S32 tdlsOffCh,
349 tANI_S32 tdlsOffChBwOffset,
350 tANI_U8 tdlsSwMode);
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800351#endif /* FEATURE_WLAN_TDLS */
352
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800353#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700354eHalStatus csrFlushCfgBgScanRoamChannelList(tpAniSirGlobal pMac);
Srinivas Girigowda100eb322013-03-15 16:48:20 -0700355eHalStatus csrCreateBgScanRoamChannelList(tpAniSirGlobal pMac,
356 const tANI_U8 *pChannelList,
357 const tANI_U8 numChannels);
Srinivas Girigowdade697412013-02-14 16:31:48 -0800358eHalStatus csrUpdateBgScanConfigIniChannelList(tpAniSirGlobal pMac, eCsrBand eBand);
Srinivas Girigowdade697412013-02-14 16:31:48 -0800359#endif
360
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800361#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700362eHalStatus csrCreateRoamScanChannelList(tpAniSirGlobal pMac,
363 tANI_U8 *pChannelList,
364 tANI_U8 numChannels,
365 const eCsrBand eBand);
366#endif
Kalikinkar Dharaa4988972013-10-28 13:39:54 -0700367void activeListCmdTimeoutHandle(void *userData);
Srinivas Girigowdade697412013-02-14 16:31:48 -0800368
Kanchanapally, Vidyullatha2ed7bde2014-12-29 12:18:36 +0530369void csrGetStaticUapsdMask(tpAniSirGlobal pMac, tANI_U8 *staticUapsdMask);
Abhishek Singh02605092017-10-25 14:06:12 +0530370/**
371 * csr_roam_send_chan_sw_ie_request() - Request to transmit CSA IE
372 * @mac_ctx: Global MAC context
373 * @bssid: BSSID
374 * @new_chan: Channel on which to send the IE
375 * @cb_mode: cb mode
376 *
377 * This function sends request to transmit channel switch announcement
378 * IE to lower layers
379 *
380 * Return: success or failure
381 **/
382VOS_STATUS csr_roam_send_chan_sw_ie_request(tpAniSirGlobal mac_ctx,
383 tCsrBssid bssid, uint8_t new_chan, uint8_t cb_mode);
384
Abhishek Singh550aa8c2017-10-30 17:34:53 +0530385/**
386 * csr_roam_channel_change_req() - Post channel change request to LIM
387 * @mac_ctx: Global MAC context
388 * @bssid: BSSID
389 * @new_chan: Channel on which to send the IE
390 * @cb_mode: cb mode
391 * @profile: ap profile
392 *
393 * Return: VOS_STATUS
394 **/
395VOS_STATUS csr_roam_channel_change_req(tpAniSirGlobal mac_ctx,
396 tCsrBssid bssid, uint8_t new_chan, uint8_t cb_mode ,tCsrRoamProfile *profile);
Kanchanapally, Vidyullatha2ed7bde2014-12-29 12:18:36 +0530397
Jeff Johnson295189b2012-06-20 16:38:30 -0700398#endif //#if !defined( __SMEINSIDE_H )