blob: 3ffd334a52562058ba01e3b8a594fd64902e2c61 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Siddharth Bhald8a95e82015-02-12 20:14:52 +05302 * Copyright (c) 2012-2015 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.
20 */
21
22/*
Kiet Lama7f454d2014-07-24 12:04:06 -070023 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
Kiet Lam0fb93dd2014-02-19 00:32:59 -080026 */
27
Jeff Johnson295189b2012-06-20 16:38:30 -070028
Kiet Lama7f454d2014-07-24 12:04:06 -070029
30
Jeff Johnson295189b2012-06-20 16:38:30 -070031#if !defined( __SME_API_H )
32#define __SME_API_H
33
34
35/**=========================================================================
36
37 \file smeApi.h
38
39 \brief prototype for SME APIs
40
Jeff Johnson295189b2012-06-20 16:38:30 -070041
42 ========================================================================*/
43
44/* $Header$ */
45
46/*--------------------------------------------------------------------------
47 Include Files
48 ------------------------------------------------------------------------*/
49#include "ccmApi.h"
50#include "csrApi.h"
51#include "pmcApi.h"
52#include "vos_mq.h"
53#include "vos_lock.h"
54#include "halTypes.h"
55#include "sirApi.h"
56#include "btcApi.h"
57#include "vos_nvitem.h"
58#include "p2p_Api.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070059
Jeff Johnsone7245742012-09-05 17:12:55 -070060#ifdef FEATURE_OEM_DATA_SUPPORT
61#include "oemDataApi.h"
62#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070063
64#if defined WLAN_FEATURE_VOWIFI
65#include "smeRrmInternal.h"
66#endif
Srinivas Dasari030bad32015-02-18 23:23:54 +053067#include "nan_Api.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070068
69/*--------------------------------------------------------------------------
70 Preprocessor definitions and constants
71 ------------------------------------------------------------------------*/
72
73#define SME_SUMMARY_STATS 1
74#define SME_GLOBAL_CLASSA_STATS 2
75#define SME_GLOBAL_CLASSB_STATS 4
76#define SME_GLOBAL_CLASSC_STATS 8
77#define SME_GLOBAL_CLASSD_STATS 16
78#define SME_PER_STA_STATS 32
79
80#define SME_INVALID_COUNTRY_CODE "XX"
81
Sudhir Sattayappa Kohalli37620692013-08-05 14:02:26 -070082//Macro to disable split scan
83#define SME_DISABLE_SPLIT_SCAN 255
Padma, Santhosh Kumar859d3712014-11-13 18:00:41 +053084
85//Macro to indicate invalid no of tspecs
86#define INVALID_TSPEC 100
87
Jeff Johnson295189b2012-06-20 16:38:30 -070088/*--------------------------------------------------------------------------
89 Type declarations
90 ------------------------------------------------------------------------*/
91typedef struct _smeConfigParams
92{
93 tCsrConfigParam csrConfig;
94#if defined WLAN_FEATURE_VOWIFI
95 tRrmConfigParam rrmConfig;
96#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -070097#if defined FEATURE_WLAN_LFR
98 tANI_U8 isFastRoamIniFeatureEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -080099 tANI_U8 MAWCEnabled;
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700100#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800101#if defined FEATURE_WLAN_ESE
102 tANI_U8 isEseIniFeatureEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -0700103#endif
104#if defined WLAN_FEATURE_P2P_INTERNAL
105 tP2PConfigParam p2pConfig;
106#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800107#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowda100eb322013-03-15 16:48:20 -0700108 tANI_U8 isFastTransitionEnabled;
109 tANI_U8 RoamRssiDiff;
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -0700110 tANI_BOOLEAN isWESModeEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -0700111#endif
Gopichand Nakkala86e42662013-06-11 17:44:11 +0530112 tANI_BOOLEAN fScanOffload;
krunal soni5afa96c2013-09-06 22:19:02 -0700113 tANI_U8 isAmsduSupportInAMPDU;
Tushnim Bhattacharyyaed4d0c22014-01-30 11:56:44 -0800114 tANI_U32 fEnableDebugLog;
Rashmi Ramanna68b309c2014-05-20 11:52:22 +0530115 tANI_U32 fDeferIMPSTime;
Chandrasekaran, Manishekar5cb0acd2014-12-23 20:06:52 +0530116 tANI_U8 fBtcEnableIndTimerVal;
Jeff Johnson295189b2012-06-20 16:38:30 -0700117} tSmeConfigParams, *tpSmeConfigParams;
118
Sunil Duttc69bccb2014-05-26 21:30:20 +0530119#ifdef WLAN_FEATURE_LINK_LAYER_STATS
120
121/* ---------------------------------------------------------------------------
122 \fn sme_LLStatsSetReq
123 \brief API to set link layer stats request to FW
124 \param hHal - The handle returned by macOpen.
125
126 \Param pStatsReq - a pointer to a caller allocated object of
127 typedef struct tSirLLStatsSetReq, signifying the parameters to link layer
128 stats set.
129
130 \return eHalStatus
131 ---------------------------------------------------------------------------*/
132eHalStatus sme_LLStatsSetReq(tHalHandle hHal, tSirLLStatsSetReq *pStatsReq);
133
134/* ---------------------------------------------------------------------------
135 \fn sme_LLStatsGetReq
136 \brief API to get link layer stats request to FW
137 \param hHal - The handle returned by macOpen.
138
139 \Param pStatsReq - a pointer to a caller allocated object of
140 typedef struct tSirLLStatsGetReq, signifying the parameters to link layer
141 stats get.
142
143 \return eHalStatus
144 ---------------------------------------------------------------------------*/
145eHalStatus sme_LLStatsGetReq(tHalHandle hHal, tSirLLStatsGetReq *pStatsReq);
146
147/* ---------------------------------------------------------------------------
148 \fn sme_LLStatsClearReq
149 \brief API to clear link layer stats request to FW
150 \param hHal - The handle returned by macOpen.
151
152 \Param pStatsReq - a pointer to a caller allocated object of
153 typedef struct tSirLLStatsClearReq, signifying the parameters to link layer
154 stats clear.
155
156 \return eHalStatus
157 ---------------------------------------------------------------------------*/
158eHalStatus sme_LLStatsClearReq(tHalHandle hHal, tSirLLStatsClearReq *pStatsReq);
159
160/* ---------------------------------------------------------------------------
161 \fn sme_SetLinkLayerStatsIndCB
162 \brief API to trigger Link Layer stats result indications from from FW
163 \param hHal - The handle returned by macOpen.
Sunil Duttc69bccb2014-05-26 21:30:20 +0530164 \param callbackRoutine - HDD callback which needs to be invoked after
165 getting get Link Layer Statistics results from FW
Sunil Duttc69bccb2014-05-26 21:30:20 +0530166 \return eHalStatus
167 ---------------------------------------------------------------------------*/
168eHalStatus
169sme_SetLinkLayerStatsIndCB
170(
Dino Mycled3d50022014-07-07 12:58:25 +0530171 tHalHandle hHal,
172 void (*callbackRoutine) (void *callbackCtx, int indType, void *pRsp,
173 tANI_U8 *macAddr)
Sunil Duttc69bccb2014-05-26 21:30:20 +0530174);
175
176
177#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
178
Dino Mycle2c198072014-06-10 10:15:52 +0530179#ifdef WLAN_FEATURE_EXTSCAN
180/* ---------------------------------------------------------------------------
181 \fn sme_GetValidChannelsByBand
182 \brief SME API to fetch all valid channel filtered by band
183 \param hHal
184 \param wifiBand: RF band information
185 \param aValidChannels: Array to store channel info
186 \param len: number of channels
187 \- return eHalStatus
188 -------------------------------------------------------------------------*/
189eHalStatus sme_GetValidChannelsByBand (tHalHandle hHal, tANI_U8 wifiBand,
190 tANI_U32 *aValidChannels, tANI_U8 *pNumChannels);
191
192/* ---------------------------------------------------------------------------
193 \fn sme_EXTScanGetCapabilities
194 \brief SME API to fetch Extented Scan capabilities
195 \param hHal
196 \param pReq: Extented Scan capabilities structure
197 \- return eHalStatus
198 -------------------------------------------------------------------------*/
199eHalStatus sme_EXTScanGetCapabilities (tHalHandle hHal,
200 tSirGetEXTScanCapabilitiesReqParams *pReq);
201
202/* ---------------------------------------------------------------------------
203 \fn sme_EXTScanStart
204 \brief SME API to issue Extented Scan start
205 \param hHal
206 \param pStartCmd: Extented Scan start structure
207 \- return eHalStatus
208 -------------------------------------------------------------------------*/
209eHalStatus sme_EXTScanStart (tHalHandle hHal,
210 tSirEXTScanStartReqParams *pStartCmd);
211
212/* ---------------------------------------------------------------------------
213 \fn sme_EXTScanStop
214 \brief SME API to issue Extented Scan stop
215 \param hHal
216 \param pStopReq: Extented Scan stop structure
217 \- return eHalStatus
218 -------------------------------------------------------------------------*/
219eHalStatus sme_EXTScanStop(tHalHandle hHal, tSirEXTScanStopReqParams *pStopReq);
220
221/* ---------------------------------------------------------------------------
222 \fn sme_SetBssHotlist
223 \brief SME API to set BSSID hotlist
224 \param hHal
225 \param pSetHotListReq: Extented Scan set hotlist structure
226 \- return eHalStatus
227 -------------------------------------------------------------------------*/
228eHalStatus sme_SetBssHotlist (tHalHandle hHal,
229 tSirEXTScanSetBssidHotListReqParams *pSetHotListReq);
230
231/* ---------------------------------------------------------------------------
232 \fn sme_ResetBssHotlist
233 \brief SME API to reset BSSID hotlist
234 \param hHal
235 \param pSetHotListReq: Extented Scan set hotlist structure
236 \- return eHalStatus
237 -------------------------------------------------------------------------*/
238eHalStatus sme_ResetBssHotlist (tHalHandle hHal,
239 tSirEXTScanResetBssidHotlistReqParams *pResetReq);
240
241/* ---------------------------------------------------------------------------
242 \fn sme_SetSignificantChange
243 \brief SME API to set significant change
244 \param hHal
245 \param pSetSignificantChangeReq: Extented Scan set significant
246 change structure
247 \- return eHalStatus
248 -------------------------------------------------------------------------*/
249eHalStatus sme_SetSignificantChange (tHalHandle hHal,
250 tSirEXTScanSetSignificantChangeReqParams* pSetSignificantChangeReq);
251
252/* ---------------------------------------------------------------------------
253 \fn sme_ResetSignificantChange
254 \brief SME API to reset significant change
255 \param hHal
256 \param pResetReq: Extented Scan reset significant change structure
257 \- return eHalStatus
258 -------------------------------------------------------------------------*/
259eHalStatus sme_ResetSignificantChange (tHalHandle hHal,
260 tSirEXTScanResetSignificantChangeReqParams *pResetReq);
261
262/* ---------------------------------------------------------------------------
263 \fn sme_getCachedResults
264 \brief SME API to get cached results
265 \param hHal
266 \param pCachedResultsReq: Extented Scan get cached results structure
267 \- return eHalStatus
268 -------------------------------------------------------------------------*/
269eHalStatus sme_getCachedResults (tHalHandle hHal,
270 tSirEXTScanGetCachedResultsReqParams *pCachedResultsReq);
271
272/* ---------------------------------------------------------------------------
273 \fn sme_EXTScanRegisterCallback
274 \brief SME API to register Extented Scan notification callback
275 \param pEXTScanIndCb
276 \- return void
277 -------------------------------------------------------------------------*/
278eHalStatus sme_EXTScanRegisterCallback (tHalHandle hHal,
279 void (*pEXTScanIndCb)(void *, const tANI_U16, void *),
280 void *);
281
282#endif /* WLAN_FEATURE_EXTSCAN */
Siddharth Bhald8a95e82015-02-12 20:14:52 +0530283/* ---------------------------------------------------------------------------
284 \fn sme_SpoofMacAddrReq
285 \brief SME API to send Spoof Mac Addr req to HAL
286 \param macaddr: mac address to be sent
287 \- return eHalStatus
288 -------------------------------------------------------------------------*/
289eHalStatus sme_SpoofMacAddrReq(tHalHandle hHal, v_MACADDR_t *macaddr);
Dino Mycle2c198072014-06-10 10:15:52 +0530290
Madan Mohan Koyyalamudi48101412013-09-11 23:09:37 +0530291typedef enum
292{
293 eSME_ROAM_TRIGGER_NONE = 0,
294 eSME_ROAM_TRIGGER_SCAN = 1,
295 eSME_ROAM_TRIGGER_FAST_ROAM = 2,
296 eSME_ROAM_TRIGGER_MAX
297} tSmeFastRoamTrigger;
Jeff Johnson295189b2012-06-20 16:38:30 -0700298
299/*-------------------------------------------------------------------------
Sushant Kaushike0d2cce2014-04-10 14:36:07 +0530300 Function declarations and documentation.
Jeff Johnson295189b2012-06-20 16:38:30 -0700301 ------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -0700302/*--------------------------------------------------------------------------
303
304 \brief sme_Open() - Initialze all SME modules and put them at idle state
305
306 The function initializes each module inside SME, PMC, CCM, CSR, etc. . Upon
307 successfully return, all modules are at idle state ready to start.
308
309 smeOpen must be called before any other SME APIs can be involved.
310 smeOpen must be called after macOpen.
311
312 \param hHal - The handle returned by macOpen.
313
314 \return eHAL_STATUS_SUCCESS - SME is successfully initialized.
315
316 Other status means SME is failed to be initialized
317 \sa
318
319 --------------------------------------------------------------------------*/
320eHalStatus sme_Open(tHalHandle hHal);
321
322/*--------------------------------------------------------------------------
323
324 \brief sme_Close() - Release all SME modules and their resources.
325
326 The function release each module in SME, PMC, CCM, CSR, etc. . Upon
327 return, all modules are at closed state.
328
329 No SME APIs can be involved after sme_Close except sme_Open.
330 sme_Close must be called before macClose.
331
332 \param hHal - The handle returned by macOpen.
333
334 \return eHAL_STATUS_SUCCESS - SME is successfully close.
335
336 Other status means SME is failed to be closed but caller still cannot
337 call any other SME functions except smeOpen.
338 \sa
339
340 --------------------------------------------------------------------------*/
341eHalStatus sme_Close(tHalHandle hHal);
342
343/*--------------------------------------------------------------------------
Hema Aparna Medicharlaa6cf65e2015-06-01 16:23:28 +0530344
345 \brief sme_PreClose() - Stop SME resources prior to final sme_Stop.
346
347 The function stops resources in SME, PMC, CCM, CSR, etc. as needed
348 to handle fast closure during SSR/unload-load cases.
349
350 \param hHal - The handle returned by macOpen.
351 \return v_VOID_t
352
353 \sa
354
355 --------------------------------------------------------------------------*/
356v_VOID_t sme_PreClose(tHalHandle hHal);
357
358/*--------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -0700359
360 \brief sme_Start() - Put all SME modules at ready state.
361
362 The function starts each module in SME, PMC, CCM, CSR, etc. . Upon
363 successfully return, all modules are ready to run.
364
365 \param hHal - The handle returned by macOpen.
366
367 \return eHAL_STATUS_SUCCESS - SME is ready.
368
369 Other status means SME is failed to start.
370 \sa
371
372 --------------------------------------------------------------------------*/
373eHalStatus sme_Start(tHalHandle hHal);
374
375/*--------------------------------------------------------------------------
376
377 \brief sme_Stop() - Stop all SME modules and put them at idle state
378
379 The function stops each module in SME, PMC, CCM, CSR, etc. . Upon
380 return, all modules are at idle state ready to start.
381
382
383 \param hHal - The handle returned by macOpen.
384
Kiet Lama72a2322013-11-15 11:18:11 +0530385 \param tHalStopType - reason for stopping
Jeff Johnson295189b2012-06-20 16:38:30 -0700386
387 \return eHAL_STATUS_SUCCESS - SME is stopped.
388
389 Other status means SME is failed to stop but caller should still consider
390 SME is stopped.
391 \sa
392
393 --------------------------------------------------------------------------*/
Kiet Lama72a2322013-11-15 11:18:11 +0530394eHalStatus sme_Stop(tHalHandle hHal, tHalStopType stopType);
Jeff Johnson295189b2012-06-20 16:38:30 -0700395
396
397/*--------------------------------------------------------------------------
398
399 \brief sme_OpenSession() - Open a session for scan/roam operation.
400
401 This is a synchronous API.
402
403
404 \param hHal - The handle returned by macOpen.
405 \param callback - A pointer to the function caller specifies for roam/connect status indication
406 \param pContext - The context passed with callback
407 \param pSelfMacAddr - Caller allocated memory filled with self MAC address (6 bytes)
408 \param pbSessionId - pointer to a caller allocated buffer for returned session ID
409
410 \return eHAL_STATUS_SUCCESS - session is opened. sessionId returned.
411
412 Other status means SME is failed to open the session.
413 eHAL_STATUS_RESOURCES - no more session available.
414 \sa
415
416 --------------------------------------------------------------------------*/
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700417eHalStatus sme_OpenSession(tHalHandle hHal, csrRoamCompleteCallback callback,
418 void *pContext, tANI_U8 *pSelfMacAddr,
419 tANI_U8 *pbSessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700420
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700421/*--------------------------------------------------------------------------
422
423 \brief sme_SetCurrDeviceMode() - Sets the current operating device mode.
424 \param hHal - The handle returned by macOpen.
425 \param currDeviceMode - Current operating device mode.
426 --------------------------------------------------------------------------*/
427
428void sme_SetCurrDeviceMode (tHalHandle hHal, tVOS_CON_MODE currDeviceMode);
Jeff Johnson295189b2012-06-20 16:38:30 -0700429
430/*--------------------------------------------------------------------------
431
432 \brief sme_CloseSession() - Open a session for scan/roam operation.
433
434 This is a synchronous API.
435
436
437 \param hHal - The handle returned by macOpen.
438
439 \param sessionId - A previous opened session's ID.
440
441 \return eHAL_STATUS_SUCCESS - session is closed.
442
443 Other status means SME is failed to open the session.
444 eHAL_STATUS_INVALID_PARAMETER - session is not opened.
445 \sa
446
447 --------------------------------------------------------------------------*/
448eHalStatus sme_CloseSession(tHalHandle hHal, tANI_U8 sessionId,
449 csrRoamSessionCloseCallback callback, void *pContext);
450
451
452
453/*--------------------------------------------------------------------------
454
455 \brief sme_UpdateConfig() - Change configurations for all SME moduels
456
457 The function updates some configuration for modules in SME, CCM, CSR, etc
458 during SMEs close -> open sequence.
459
460 Modules inside SME apply the new configuration at the next transaction.
461
462
463 \param hHal - The handle returned by macOpen.
464 \Param pSmeConfigParams - a pointer to a caller allocated object of
465 typedef struct _smeConfigParams.
466
467 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
468
469 Other status means SME is failed to update the config parameters.
470 \sa
471
472 --------------------------------------------------------------------------*/
473eHalStatus sme_UpdateConfig(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
474
475#ifdef FEATURE_WLAN_SCAN_PNO
476/*--------------------------------------------------------------------------
477
478 \brief sme_UpdateChannelConfig() - Update channel configuration in RIVA.
479
480 It is used at driver start up to inform RIVA of the default channel
481 configuration.
482
483 This is a synchronuous call
484
485 \param hHal - The handle returned by macOpen.
486
487 \return eHAL_STATUS_SUCCESS - SME update the channel config successfully.
488
489 Other status means SME is failed to update the channel config.
490 \sa
491
492 --------------------------------------------------------------------------*/
493eHalStatus sme_UpdateChannelConfig(tHalHandle hHal);
494
495#endif // FEATURE_WLAN_SCAN_PNLO
Jeff Johnson295189b2012-06-20 16:38:30 -0700496/*--------------------------------------------------------------------------
Abhishek Singhf644b272014-08-21 02:59:39 +0530497
498 \brief sme_UpdateChannelList() - Update channel List in FW.
499
500
501 \param hHal - The handle returned by macOpen.
502
503 \return eHAL_STATUS_SUCCESS - SME update the channel config successfully.
504
505 Other status means SME is failed to update the channel config.
506 \sa
507
508 --------------------------------------------------------------------------*/
509eHalStatus sme_UpdateChannelList(tHalHandle hHal);
510
511/*--------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -0700512
513 \brief sme_set11dinfo() - Set the 11d information about valid channels
514 and there power using information from nvRAM
515 This function is called only for AP.
516
517 This is a synchronuous call
518
519 \param hHal - The handle returned by macOpen.
520 \Param pSmeConfigParams - a pointer to a caller allocated object of
521 typedef struct _smeConfigParams.
522
523 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
524
525 Other status means SME is failed to update the config parameters.
526 \sa
527--------------------------------------------------------------------------*/
528
529eHalStatus sme_set11dinfo(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
530
531/*--------------------------------------------------------------------------
532
533 \brief sme_getSoftApDomain() - Get the current regulatory domain of softAp.
534
535 This is a synchronuous call
536
537 \param hHal - The handle returned by HostapdAdapter.
538 \Param v_REGDOMAIN_t - The current Regulatory Domain requested for SoftAp.
539
540 \return eHAL_STATUS_SUCCESS - SME successfully completed the request.
541
542 Other status means, failed to get the current regulatory domain.
543 \sa
544--------------------------------------------------------------------------*/
545
546eHalStatus sme_getSoftApDomain(tHalHandle hHal, v_REGDOMAIN_t *domainIdSoftAp);
547
548eHalStatus sme_setRegInfo(tHalHandle hHal, tANI_U8 *apCntryCode);
549
Jeff Johnson295189b2012-06-20 16:38:30 -0700550
551/* ---------------------------------------------------------------------------
552 \fn sme_ChangeConfigParams
553 \brief The SME API exposed for HDD to provide config params to SME during
554 SMEs stop -> start sequence.
555
556 If HDD changed the domain that will cause a reset. This function will
557 provide the new set of 11d information for the new domain. Currrently this
558 API provides info regarding 11d only at reset but we can extend this for
559 other params (PMC, QoS) which needs to be initialized again at reset.
560
561 This is a synchronuous call
562
563 \param hHal - The handle returned by macOpen.
564
565 \Param
566 pUpdateConfigParam - a pointer to a structure (tCsrUpdateConfigParam) that
567 currently provides 11d related information like Country code,
568 Regulatory domain, valid channel list, Tx power per channel, a
569 list with active/passive scan allowed per valid channel.
570
571 \return eHalStatus
572 ---------------------------------------------------------------------------*/
573eHalStatus sme_ChangeConfigParams(tHalHandle hHal,
574 tCsrUpdateConfigParam *pUpdateConfigParam);
575
576/*--------------------------------------------------------------------------
577
578 \brief sme_HDDReadyInd() - SME sends eWNI_SME_SYS_READY_IND to PE to inform that the NIC
579 is ready tio run.
580
581 The function is called by HDD at the end of initialization stage so PE/HAL can enable the NIC
582 to running state.
583
584
585 \param hHal - The handle returned by macOpen.
586
587 \return eHAL_STATUS_SUCCESS - eWNI_SME_SYS_READY_IND is sent to PE successfully.
588
589 Other status means SME failed to send the message to PE.
590 \sa
591
592 --------------------------------------------------------------------------*/
593eHalStatus sme_HDDReadyInd(tHalHandle hHal);
594
595
596/*--------------------------------------------------------------------------
597
598 \brief sme_ProcessMsg() - The main message processor for SME.
599
600 The function is called by a message dispatcher when to process a message
601 targeted for SME.
602
603
604 \param hHal - The handle returned by macOpen.
605 \param pMsg - A pointer to a caller allocated object of tSirMsgQ.
606
607 \return eHAL_STATUS_SUCCESS - SME successfully process the message.
608
609 Other status means SME failed to process the message.
610 \sa
611
612 --------------------------------------------------------------------------*/
613eHalStatus sme_ProcessMsg(tHalHandle hHal, vos_msg_t* pMsg);
614
615v_VOID_t sme_FreeMsg( tHalHandle hHal, vos_msg_t* pMsg );
616
617/* ---------------------------------------------------------------------------
618 \fn sme_ScanRequest
619 \brief a wrapper function to Request a 11d or full scan from CSR.
620 \param pScanRequestID - pointer to an object to get back the request ID
621 \param callback - a callback function that scan calls upon finish, will not
622 be called if csrScanRequest returns error
623 \param pContext - a pointer passed in for the callback
624 \return eHalStatus
625 ---------------------------------------------------------------------------*/
626eHalStatus sme_ScanRequest(tHalHandle hHal, tANI_U8 sessionId, tCsrScanRequest *,
627 tANI_U32 *pScanRequestID,
628 csrScanCompleteCallback callback, void *pContext);
629
630
631/* ---------------------------------------------------------------------------
632 \fn sme_ScanSetBGScanparams
633 \brief a wrapper function to request CSR to set BG scan params in PE
634 \param pScanReq - BG scan request structure
635 \return eHalStatus
636 ---------------------------------------------------------------------------*/
637eHalStatus sme_ScanSetBGScanparams(tHalHandle hHal, tANI_U8 sessionId, tCsrBGScanRequest *pScanReq);
638
639
640/* ---------------------------------------------------------------------------
641 \fn sme_ScanGetResult
642 \brief a wrapper function to request scan results from CSR.
643 \param pFilter - If pFilter is NULL, all cached results are returned
644 \param phResult - an object for the result.
645 \return eHalStatus
646 ---------------------------------------------------------------------------*/
647eHalStatus sme_ScanGetResult(tHalHandle hHal, tANI_U8 sessionId, tCsrScanResultFilter *pFilter,
648 tScanResultHandle *phResult);
649
650
651/* ---------------------------------------------------------------------------
652 \fn sme_ScanFlushResult
653 \brief a wrapper function to request CSR to clear scan results.
654 \return eHalStatus
655 ---------------------------------------------------------------------------*/
656eHalStatus sme_ScanFlushResult(tHalHandle hHal, tANI_U8 sessionId);
Srinivas, Dasari42bf7702014-02-07 11:29:53 +0530657
658/*
659 * ---------------------------------------------------------------------------
660 * \fn sme_FilterScanResults
661 * \brief a wrapper function to request CSR to filter the scan results based
662 * on valid chennel list.
663 * \return eHalStatus
664 *---------------------------------------------------------------------------
665 */
666eHalStatus sme_FilterScanResults(tHalHandle hHal, tANI_U8 sessionId);
667
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +0530668/*
669 * ---------------------------------------------------------------------------
670 * \fn sme_FilterScanDFSResults
671 * \brief a wrapper function to request CSR to filter BSSIDs on DFS channels
672 * from the scan results.
673 * \return eHalStatus
674 *---------------------------------------------------------------------------
675 */
676eHalStatus sme_FilterScanDFSResults(tHalHandle hHal);
677
Madan Mohan Koyyalamudia3fcf142012-10-18 15:01:20 -0700678eHalStatus sme_ScanFlushP2PResult(tHalHandle hHal, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700679
680/* ---------------------------------------------------------------------------
681 \fn sme_ScanResultGetFirst
682 \brief a wrapper function to request CSR to returns the first element of
683 scan result.
684 \param hScanResult - returned from csrScanGetResult
685 \return tCsrScanResultInfo * - NULL if no result
686 ---------------------------------------------------------------------------*/
687tCsrScanResultInfo *sme_ScanResultGetFirst(tHalHandle,
688 tScanResultHandle hScanResult);
689
690/* ---------------------------------------------------------------------------
691 \fn sme_ScanResultGetNext
692 \brief a wrapper function to request CSR to returns the next element of
693 scan result. It can be called without calling csrScanResultGetFirst
694 first
695 \param hScanResult - returned from csrScanGetResult
696 \return Null if no result or reach the end
697 ---------------------------------------------------------------------------*/
698tCsrScanResultInfo *sme_ScanResultGetNext(tHalHandle,
699 tScanResultHandle hScanResult);
700
701/* ---------------------------------------------------------------------------
702 \fn sme_ScanResultPurge
703 \brief a wrapper function to request CSR to remove all items(tCsrScanResult)
704 in the list and free memory for each item
705 \param hScanResult - returned from csrScanGetResult. hScanResult is
706 considered gone by
707 calling this function and even before this function reutrns.
708 \return eHalStatus
709 ---------------------------------------------------------------------------*/
710eHalStatus sme_ScanResultPurge(tHalHandle hHal, tScanResultHandle hScanResult);
711
712/* ---------------------------------------------------------------------------
713 \fn sme_ScanGetPMKIDCandidateList
714 \brief a wrapper function to return the PMKID candidate list
715 \param pPmkidList - caller allocated buffer point to an array of
716 tPmkidCandidateInfo
717 \param pNumItems - pointer to a variable that has the number of
718 tPmkidCandidateInfo allocated when retruning, this is
719 either the number needed or number of items put into
720 pPmkidList
721 \return eHalStatus - when fail, it usually means the buffer allocated is not
722 big enough and pNumItems
723 has the number of tPmkidCandidateInfo.
724 \Note: pNumItems is a number of tPmkidCandidateInfo,
725 not sizeof(tPmkidCandidateInfo) * something
726 ---------------------------------------------------------------------------*/
727eHalStatus sme_ScanGetPMKIDCandidateList(tHalHandle hHal, tANI_U8 sessionId,
728 tPmkidCandidateInfo *pPmkidList,
729 tANI_U32 *pNumItems );
730
731
732/*----------------------------------------------------------------------------
733 \fn sme_RoamRegisterLinkQualityIndCallback
734
735 \brief
736 a wrapper function to allow HDD to register a callback handler with CSR for
737 link quality indications.
738
739 Only one callback may be registered at any time.
740 In order to deregister the callback, a NULL cback may be provided.
741
742 Registration happens in the task context of the caller.
743
744 \param callback - Call back being registered
745 \param pContext - user data
746
747 DEPENDENCIES: After CSR open
748
749 \return eHalStatus
750-----------------------------------------------------------------------------*/
751eHalStatus sme_RoamRegisterLinkQualityIndCallback(tHalHandle hHal, tANI_U8 sessionId,
752 csrRoamLinkQualityIndCallback callback,
753 void *pContext);
754
755
756/* ---------------------------------------------------------------------------
757 \fn sme_RoamConnect
758 \brief a wrapper function to request CSR to inititiate an association
759 \param sessionId - the sessionId returned by sme_OpenSession.
760 \param pProfile - can be NULL to join to any open ones
761 \param pRoamId - to get back the request ID
762 \return eHalStatus
763 ---------------------------------------------------------------------------*/
764eHalStatus sme_RoamConnect(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
765 tANI_U32 *pRoamId);
766
767/* ---------------------------------------------------------------------------
768 \fn sme_RoamReassoc
769 \brief a wrapper function to request CSR to inititiate a re-association
770 \param pProfile - can be NULL to join the currently connected AP. In that
771 case modProfileFields should carry the modified field(s) which could trigger
772 reassoc
773 \param modProfileFields - fields which are part of tCsrRoamConnectedProfile
774 that might need modification dynamically once STA is up & running and this
775 could trigger a reassoc
776 \param pRoamId - to get back the request ID
777 \return eHalStatus
778 -------------------------------------------------------------------------------*/
779eHalStatus sme_RoamReassoc(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
780 tCsrRoamModifyProfileFields modProfileFields,
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -0700781 tANI_U32 *pRoamId, v_BOOL_t fForce);
Jeff Johnson295189b2012-06-20 16:38:30 -0700782
783/* ---------------------------------------------------------------------------
784 \fn sme_RoamConnectToLastProfile
785 \brief a wrapper function to request CSR to disconnect and reconnect with
786 the same profile
787 \return eHalStatus. It returns fail if currently connected
788 ---------------------------------------------------------------------------*/
789eHalStatus sme_RoamConnectToLastProfile(tHalHandle hHal, tANI_U8 sessionId);
790
791/* ---------------------------------------------------------------------------
792 \fn sme_RoamDisconnect
793 \brief a wrapper function to request CSR to disconnect from a network
794 \param reason -- To indicate the reason for disconnecting. Currently, only
795 eCSR_DISCONNECT_REASON_MIC_ERROR is meanful.
796 \return eHalStatus
797 ---------------------------------------------------------------------------*/
798eHalStatus sme_RoamDisconnect(tHalHandle hHal, tANI_U8 sessionId, eCsrRoamDisconnectReason reason);
799
Jeff Johnson295189b2012-06-20 16:38:30 -0700800/* ---------------------------------------------------------------------------
801 \fn sme_RoamStopBss
802 \brief a wrapper function to request CSR to stop bss
803 \param sessionId - sessionId of SoftAP
804 \return eHalStatus
805 ---------------------------------------------------------------------------*/
806eHalStatus sme_RoamStopBss(tHalHandle hHal, tANI_U8 sessionId);
807
808/* ---------------------------------------------------------------------------
809 \fn sme_RoamGetAssociatedStas
810 \brief To probe the list of associated stations from various modules of CORE stack.
811 \This is an asynchronous API.
812 \param sessionId - sessionId of SoftAP
813 \param modId - Module from whom list of associtated stations is to be probed.
814 If an invalid module is passed then by default VOS_MODULE_ID_PE will be probed
815 \param pUsrContext - Opaque HDD context
816 \param pfnSapEventCallback - Sap event callback in HDD
817 \param pAssocBuf - Caller allocated memory to be filled with associatd stations info
818 \return eHalStatus
819 -------------------------------------------------------------------------------*/
820eHalStatus sme_RoamGetAssociatedStas(tHalHandle hHal, tANI_U8 sessionId,
821 VOS_MODULE_ID modId, void *pUsrContext,
822 void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf);
823
824/* ---------------------------------------------------------------------------
825 \fn sme_RoamDisconnectSta
826 \brief To disassociate a station. This is an asynchronous API.
827 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
828 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
829 -------------------------------------------------------------------------------*/
830eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pPeerMacAddr);
831
832/* ---------------------------------------------------------------------------
833 \fn sme_RoamDeauthSta
834 \brief To disassociate a station. This is an asynchronous API.
835 \param hHal - Global structure
836 \param sessionId - sessionId of SoftAP
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +0530837 \param pDelStaParams- Pointer to parameters of the station to deauthenticate
Jeff Johnson295189b2012-06-20 16:38:30 -0700838 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
839 -------------------------------------------------------------------------------*/
840eHalStatus sme_RoamDeauthSta(tHalHandle hHal, tANI_U8 sessionId,
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +0530841 struct tagCsrDelStaParams *pDelStaParams);
Jeff Johnson295189b2012-06-20 16:38:30 -0700842
843/* ---------------------------------------------------------------------------
844 \fn sme_RoamTKIPCounterMeasures
845 \brief To start or stop TKIP counter measures. This is an asynchronous API.
846 \param sessionId - sessionId of SoftAP
847 \param bEnable - Flag to start/stop TKIP countermeasures
848 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
849 -------------------------------------------------------------------------------*/
850eHalStatus sme_RoamTKIPCounterMeasures(tHalHandle hHal, tANI_U8 sessionId, tANI_BOOLEAN bEnable);
851
852/* ---------------------------------------------------------------------------
853 \fn sme_RoamGetWpsSessionOverlap
854 \brief To get the WPS PBC session overlap information.
855 \This is an asynchronous API.
856 \param sessionId - sessionId of SoftAP
857 \param pUsrContext - Opaque HDD context
858 \param pfnSapEventCallback - Sap event callback in HDD
859 \return eHalStatus
860 -------------------------------------------------------------------------------*/
861eHalStatus sme_RoamGetWpsSessionOverlap(tHalHandle hHal, tANI_U8 sessionId,
862 void *pUsrContext, void *pfnSapEventCallback,
863 v_MACADDR_t pRemoveMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700864
865/* ---------------------------------------------------------------------------
866 \fn sme_RoamGetConnectState
867 \brief a wrapper function to request CSR to return the current connect state
868 of Roaming
869 \return eHalStatus
870 ---------------------------------------------------------------------------*/
871eHalStatus sme_RoamGetConnectState(tHalHandle hHal, tANI_U8 sessionId, eCsrConnectState *pState);
872
873/* ---------------------------------------------------------------------------
874 \fn sme_RoamGetConnectProfile
875 \brief a wrapper function to request CSR to return the current connect
876 profile. Caller must call csrRoamFreeConnectProfile after it is done
877 and before reuse for another csrRoamGetConnectProfile call.
878 \param pProfile - pointer to a caller allocated structure
879 tCsrRoamConnectedProfile
880 \return eHalStatus. Failure if not connected
881 ---------------------------------------------------------------------------*/
882eHalStatus sme_RoamGetConnectProfile(tHalHandle hHal, tANI_U8 sessionId,
883 tCsrRoamConnectedProfile *pProfile);
884
885/* ---------------------------------------------------------------------------
886 \fn sme_RoamFreeConnectProfile
887 \brief a wrapper function to request CSR to free and reinitialize the
888 profile returned previously by csrRoamGetConnectProfile.
889 \param pProfile - pointer to a caller allocated structure
890 tCsrRoamConnectedProfile
891 \return eHalStatus.
892 ---------------------------------------------------------------------------*/
893eHalStatus sme_RoamFreeConnectProfile(tHalHandle hHal,
894 tCsrRoamConnectedProfile *pProfile);
895
896/* ---------------------------------------------------------------------------
897 \fn sme_RoamSetPMKIDCache
898 \brief a wrapper function to request CSR to return the PMKID candidate list
899 \param pPMKIDCache - caller allocated buffer point to an array of
900 tPmkidCacheInfo
901 \param numItems - a variable that has the number of tPmkidCacheInfo
902 allocated when retruning, this is either the number needed
903 or number of items put into pPMKIDCache
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +0530904 \param update_entire_cache - if TRUE, then it overwrites the entire cache
905 with pPMKIDCache, else it updates entry by
906 entry without deleting the old entries.
Jeff Johnson295189b2012-06-20 16:38:30 -0700907 \return eHalStatus - when fail, it usually means the buffer allocated is not
908 big enough and pNumItems has the number of
909 tPmkidCacheInfo.
910 \Note: pNumItems is a number of tPmkidCacheInfo,
911 not sizeof(tPmkidCacheInfo) * something
912 ---------------------------------------------------------------------------*/
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +0530913eHalStatus sme_RoamSetPMKIDCache( tHalHandle hHal, tANI_U8 sessionId,
914 tPmkidCacheInfo *pPMKIDCache,
915 tANI_U32 numItems,
916 tANI_BOOLEAN update_entire_cache );
Jeff Johnson295189b2012-06-20 16:38:30 -0700917
918/* ---------------------------------------------------------------------------
919 \fn sme_RoamGetSecurityReqIE
920 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE CSR
921 passes to PE to JOIN request or START_BSS request
922 This is a synchronuous call.
923 \param sessionId - returned by sme_OpenSession.
924 \param pLen - caller allocated memory that has the length of pBuf as input.
925 Upon returned, *pLen has the needed or IE length in pBuf.
926 \param pBuf - Caller allocated memory that contain the IE field, if any,
927 upon return
928 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
929 \return eHalStatus - when fail, it usually means the buffer allocated is not
930 big enough
931 ---------------------------------------------------------------------------*/
932eHalStatus sme_RoamGetSecurityReqIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
933 tANI_U8 *pBuf, eCsrSecurityType secType);
934
935/* ---------------------------------------------------------------------------
936 \fn sme_RoamGetSecurityRspIE
937 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE from
938 the beacon or probe rsp if connected
939 \param sessionId - returned by sme_OpenSession.
940 \param pLen - caller allocated memory that has the length of pBuf as input.
941 Upon returned, *pLen has the needed or IE length in pBuf.
942 \param pBuf - Caller allocated memory that contain the IE field, if any,
943 upon return
944 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
945 \return eHalStatus - when fail, it usually means the buffer allocated is not
946 big enough
947 ---------------------------------------------------------------------------*/
948eHalStatus sme_RoamGetSecurityRspIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
949 tANI_U8 *pBuf, eCsrSecurityType secType);
950
951
952/* ---------------------------------------------------------------------------
953 \fn sme_RoamGetNumPMKIDCache
954 \brief a wrapper function to request CSR to return number of PMKID cache
955 entries
956 \return tANI_U32 - the number of PMKID cache entries
957 ---------------------------------------------------------------------------*/
958tANI_U32 sme_RoamGetNumPMKIDCache(tHalHandle hHal, tANI_U8 sessionId);
959
960/* ---------------------------------------------------------------------------
961 \fn sme_RoamGetPMKIDCache
962 \brief a wrapper function to request CSR to return PMKID cache from CSR
963 \param pNum - caller allocated memory that has the space of the number of
964 pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
965 needed or actually number in tPmkidCacheInfo.
966 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if
967 any, upon return
968 \return eHalStatus - when fail, it usually means the buffer allocated is not
969 big enough
970 ---------------------------------------------------------------------------*/
971eHalStatus sme_RoamGetPMKIDCache(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pNum,
972 tPmkidCacheInfo *pPmkidCache);
973
974/* ---------------------------------------------------------------------------
975 \fn sme_GetConfigParam
976 \brief a wrapper function that HDD calls to get the global settings
977 currently maintained by CSR.
978 \param pParam - caller allocated memory
979 \return eHalStatus
980 ---------------------------------------------------------------------------*/
981eHalStatus sme_GetConfigParam(tHalHandle hHal, tSmeConfigParams *pParam);
982
983/* ---------------------------------------------------------------------------
984 \fn sme_GetStatistics
985 \brief a wrapper function that client calls to register a callback to get
986 different PHY level statistics from CSR.
987
988 \param requesterId - different client requesting for statistics, HDD, UMA/GAN etc
989 \param statsMask - The different category/categories of stats requester is looking for
990 The order in which you set the bits in the statsMask for requesting
991 different type of stats is:
992
993 eCsrSummaryStats = bit 0
994 eCsrGlobalClassAStats = bit 1
995 eCsrGlobalClassBStats = bit 2
996 eCsrGlobalClassCStats = bit 3
997 eCsrGlobalClassDStats = bit 4
998 eCsrPerStaStats = bit 5
999
1000 \param callback - SME sends back the requested stats using the callback
1001 \param periodicity - If requester needs periodic update, 0 means it's an one
1002 time request
1003 \param cache - If requester is happy with cached stats
1004 \param staId - The station ID for which the stats is requested for
1005 \param pContext - user context to be passed back along with the callback
1006 \return eHalStatus
1007 ---------------------------------------------------------------------------*/
1008eHalStatus sme_GetStatistics(tHalHandle hHal, eCsrStatsRequesterType requesterId,
1009 tANI_U32 statsMask,
1010 tCsrStatsCallback callback,
1011 tANI_U32 periodicity, tANI_BOOLEAN cache,
1012 tANI_U8 staId, void *pContext);
1013
Madan Mohan Koyyalamudi8af9b402013-07-11 14:59:10 +05301014/* ---------------------------------------------------------------------------
1015 \fn smeGetTLSTAState
1016 \helper function to get teh TL STA State whenever the function is called.
1017
1018 \param staId - The staID to be passed to the TL
1019 to get the relevant TL STA State
1020 \return the state as tANI_U16
1021 ---------------------------------------------------------------------------*/
1022tANI_U16 smeGetTLSTAState(tHalHandle hHal, tANI_U8 staId);
1023
Jeff Johnson295189b2012-06-20 16:38:30 -07001024eHalStatus sme_GetRssi(tHalHandle hHal,
1025 tCsrRssiCallback callback,
1026 tANI_U8 staId, tCsrBssid bssId, void *pContext, void* pVosContext);
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05301027
1028/* ---------------------------------------------------------------------------
1029 \fn sme_GetSnr
1030 \brief a wrapper function that client calls to register a callback to get
1031 SNR from FW
1032
1033 \param callback - SME sends back the requested stats using the callback
1034 \param staId - The station ID for which the stats is requested for
1035 \param bssid - The bssid of the connected session
1036 \param pContext - user context to be passed back along with the callback
1037 ---------------------------------------------------------------------------*/
1038eHalStatus sme_GetSnr(tHalHandle hHal,
1039 tCsrSnrCallback callback,
1040 tANI_U8 staId, tCsrBssid bssId,
1041 void *pContext);
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001042#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08001043eHalStatus sme_GetRoamRssi(tHalHandle hHal,
1044 tCsrRssiCallback callback,
1045 tANI_U8 staId,
1046 tCsrBssid bssId,
1047 void *pContext,
1048 void* pVosContext);
1049#endif
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001050
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001051#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001052/* ---------------------------------------------------------------------------
1053 \fn sme_GetTsmStats
1054 \brief a wrapper function that client calls to register a callback to get TSM Stats
1055
1056 \param callback - SME sends back the requested stats using the callback
1057 \param staId - The station ID for which the stats is requested for
1058 \param pContext - user context to be passed back along with the callback
1059 \param pVosContext - vos context
1060 \return eHalStatus
1061 ---------------------------------------------------------------------------*/
1062eHalStatus sme_GetTsmStats(tHalHandle hHal,
1063 tCsrTsmStatsCallback callback,
1064 tANI_U8 staId, tCsrBssid bssId,
1065 void *pContext, void* pVosContext, tANI_U8 tid);
1066
1067/* ---------------------------------------------------------------------------
1068 \fn sme_SetCCKMIe
1069 \brief function to store the CCKM IE passed from supplicant and use it while packing
1070 reassociation request
1071 \param hHal - HAL handle for device
1072 \param pCckmIe - pointer to CCKM IE data
1073 \param pCckmIeLen - length of the CCKM IE
1074 \- return Success or failure
1075 -------------------------------------------------------------------------*/
1076eHalStatus sme_SetCCKMIe(tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pCckmIe, tANI_U8 cckmIeLen);
1077
1078
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001079/* ---------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001080 \fn sme_SetEseBeaconRequest
1081 \brief function to set ESE beacon request parameters
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001082 \param hHal - HAL handle for device
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001083 \param pESEBcnReq - pointer to ESE beacon request
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001084 \- return Success or failure
1085 -------------------------------------------------------------------------*/
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001086eHalStatus sme_SetEseBeaconRequest(tHalHandle hHal, const tANI_U8 sessionId,
1087 const tCsrEseBeaconReq* pEseBcnReq);
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001088
1089
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001090#endif /*FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -07001091/* ---------------------------------------------------------------------------
1092 \fn sme_CfgSetInt
1093 \brief a wrapper function that HDD calls to set parameters in CFG.
1094 \param cfgId - Configuration Parameter ID (type) for STA.
1095 \param ccmValue - The information related to Configuration Parameter ID
1096 which needs to be saved in CFG
1097 \param callback - To be registered by CSR with CCM. Once the CFG done with
1098 saving the information in the database, it notifies CCM &
1099 then the callback will be invoked to notify.
1100 \param toBeSaved - To save the request for future reference
1101 \return eHalStatus
1102 ---------------------------------------------------------------------------*/
1103eHalStatus sme_CfgSetInt(tHalHandle hHal, tANI_U32 cfgId, tANI_U32 ccmValue,
1104 tCcmCfgSetCallback callback, eAniBoolean toBeSaved) ;
1105
1106/* ---------------------------------------------------------------------------
1107 \fn sme_CfgSetStr
1108 \brief a wrapper function that HDD calls to set parameters in CFG.
1109 \param cfgId - Configuration Parameter ID (type) for STA.
1110 \param pStr - Pointer to the byte array which carries the information needs
1111 to be saved in CFG
1112 \param length - Length of the data to be saved
1113 \param callback - To be registered by CSR with CCM. Once the CFG done with
1114 saving the information in the database, it notifies CCM &
1115 then the callback will be invoked to notify.
1116 \param toBeSaved - To save the request for future reference
1117 \return eHalStatus
1118 ---------------------------------------------------------------------------*/
1119eHalStatus sme_CfgSetStr(tHalHandle hHal, tANI_U32 cfgId, tANI_U8 *pStr,
1120 tANI_U32 length, tCcmCfgSetCallback callback,
1121 eAniBoolean toBeSaved) ;
Sandeep Puligillaa3e76952014-06-23 15:53:11 +05301122/* ---------------------------------------------------------------------------
1123 \fn sme_GetModifyProfileFields
1124 \brief HDD or SME - QOS calls this function to get the current values of
1125 connected profile fields, changing which can cause reassoc.
1126 This function must be called after CFG is downloaded and STA is in connected
1127 state. Also, make sure to call this function to get the current profile
1128 fields before calling the reassoc. So that pModifyProfileFields will have
1129 all the latest values plus the one(s) has been updated as part of reassoc
1130 request.
1131 \param pModifyProfileFields - pointer to the connected profile fields
1132 changing which can cause reassoc
Jeff Johnson295189b2012-06-20 16:38:30 -07001133
Sandeep Puligillaa3e76952014-06-23 15:53:11 +05301134 \return eHalStatus
1135 -------------------------------------------------------------------------------*/
1136eHalStatus sme_GetModifyProfileFields(tHalHandle hHal, tANI_U8 sessionId,
1137 tCsrRoamModifyProfileFields * pModifyProfileFields);
Sandeep Puligilla332ea912014-02-04 00:16:24 +05301138/* ---------------------------------------------------------------------------
1139 \fn sme_HT40StopOBSSScan
1140 \brief HDD or SME - Command to stop the OBSS scan
1141 THis is implemented only for debugging purpose.
1142 As per spec while operating in 2.4GHz OBSS scan shouldnt be stopped.
1143 \param sessionId - sessionId
1144 changing which can cause reassoc
1145
1146 \return eHalStatus
1147 -------------------------------------------------------------------------------*/
1148eHalStatus sme_HT40StopOBSSScan(tHalHandle hHal, tANI_U8 sessionId );
Jeff Johnson295189b2012-06-20 16:38:30 -07001149
1150/*--------------------------------------------------------------------------
1151 \fn sme_SetConfigPowerSave
1152 \brief Wrapper fn to change power save configuration in SME (PMC) module.
1153 For BMPS related configuration, this function also updates the CFG
1154 and sends a message to FW to pick up the new values. Note: Calling
1155 this function only updates the configuration and does not enable
1156 the specified power save mode.
1157 \param hHal - The handle returned by macOpen.
1158 \param psMode - Power Saving mode being modified
1159 \param pConfigParams - a pointer to a caller allocated object of type
1160 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
1161 \return eHalStatus
1162 --------------------------------------------------------------------------*/
1163eHalStatus sme_SetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
1164 void *pConfigParams);
1165
1166/*--------------------------------------------------------------------------
1167 \fn sme_GetConfigPowerSave
1168 \brief Wrapper fn to retireve power save configuration in SME (PMC) module
1169 \param hHal - The handle returned by macOpen.
1170 \param psMode - Power Saving mode
1171 \param pConfigParams - a pointer to a caller allocated object of type
1172 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
1173 \return eHalStatus
1174 --------------------------------------------------------------------------*/
1175eHalStatus sme_GetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
1176 void *pConfigParams);
1177
1178/* ---------------------------------------------------------------------------
1179 \fn sme_SignalPowerEvent
1180 \brief Signals to PMC that a power event has occurred. Used for putting
1181 the chip into deep sleep mode.
1182 \param hHal - The handle returned by macOpen.
1183 \param event - the event that has occurred
1184 \return eHalStatus
1185 ---------------------------------------------------------------------------*/
1186extern eHalStatus sme_SignalPowerEvent (
1187 tHalHandle hHal,
1188 tPmcPowerEvent event);
1189
1190/* ---------------------------------------------------------------------------
1191 \fn sme_EnablePowerSave
1192 \brief Enables one of the power saving modes. This API does not cause a
1193 device state change. This is purely a configuration API.
1194 \param hHal - The handle returned by macOpen.
1195 \param psMode - The power saving mode to enable.
1196 \return eHalStatus
1197 ---------------------------------------------------------------------------*/
1198extern eHalStatus sme_EnablePowerSave (
1199 tHalHandle hHal,
1200 tPmcPowerSavingMode psMode);
1201
1202/* ---------------------------------------------------------------------------
1203 \fn sme_DisablePowerSave
1204 \brief Disables one of the power saving modes.Disabling does not imply
1205 that device will be brought out of the current PS mode. This is
1206 purely a configuration API.
1207 \param hHal - The handle returned by macOpen.
1208 \param psMode - The power saving mode to disable.
1209 \return eHalStatus
1210 ---------------------------------------------------------------------------*/
1211extern eHalStatus sme_DisablePowerSave (
1212 tHalHandle hHal,
1213 tPmcPowerSavingMode psMode);
1214
Madan Mohan Koyyalamudi69b34182013-01-16 08:51:40 +05301215 /* ---------------------------------------------------------------------------
1216 \fn sme_SetHostPowerSave
1217 \brief The BMPS logic is controlled by the User level Apps
1218 \param hHal - The handle returned by macOpen.
1219 \param psMode - The power saving mode to enable.
1220 \return eHalStatus
1221 ---------------------------------------------------------------------------*/
1222extern eHalStatus sme_SetHostPowerSave (
1223 tHalHandle hHal,
1224 v_BOOL_t psMode);
1225
Jeff Johnson295189b2012-06-20 16:38:30 -07001226/* ---------------------------------------------------------------------------
1227 \fn sme_StartAutoBmpsTimer
1228 \brief Starts a timer that periodically polls all the registered
1229 module for entry into Bmps mode. This timer is started only if BMPS is
1230 enabled and whenever the device is in full power.
1231 \param hHal - The handle returned by macOpen.
1232 \return eHalStatus
1233 ---------------------------------------------------------------------------*/
1234extern eHalStatus sme_StartAutoBmpsTimer ( tHalHandle hHal);
1235
1236/* ---------------------------------------------------------------------------
1237 \fn sme_StopAutoBmpsTimer
1238 \brief Stops the Auto BMPS Timer that was started using sme_startAutoBmpsTimer
1239 Stopping the timer does not cause a device state change. Only the timer
1240 is stopped. If "Full Power" is desired, use the sme_RequestFullPower API
1241 \param hHal - The handle returned by macOpen.
1242 \return eHalStatus
1243 ---------------------------------------------------------------------------*/
1244extern eHalStatus sme_StopAutoBmpsTimer ( tHalHandle hHal);
1245
1246/* ---------------------------------------------------------------------------
1247 \fn sme_QueryPowerState
1248 \brief Returns the current power state of the device.
1249 \param hHal - The handle returned by macOpen.
1250 \param pPowerState - pointer to location to return power state
1251 \param pSwWlanSwitchState - ptr to location to return SW WLAN Switch state
1252 \return eHalStatus
1253 ---------------------------------------------------------------------------*/
1254extern eHalStatus sme_QueryPowerState (
1255 tHalHandle hHal,
1256 tPmcPowerState *pPowerState,
1257 tPmcSwitchState *pSwWlanSwitchState);
1258
1259/* ---------------------------------------------------------------------------
1260 \fn sme_IsPowerSaveEnabled
1261 \brief Checks if the device is able to enter a particular power save mode
1262 This does not imply that the device is in a particular PS mode
1263 \param hHal - The handle returned by macOpen.
1264 \param psMode - the power saving mode
1265 \return eHalStatus
1266 ---------------------------------------------------------------------------*/
1267extern tANI_BOOLEAN sme_IsPowerSaveEnabled(
1268 tHalHandle hHal,
1269 tPmcPowerSavingMode psMode);
1270
1271/* ---------------------------------------------------------------------------
1272 \fn sme_RequestFullPower
1273 \brief Request that the device be brought to full power state.
1274 Note 1: If "fullPowerReason" specificied in this API is set to
1275 eSME_FULL_PWR_NEEDED_BY_HDD, PMC will clear any "buffered wowl" requests
1276 and also clear any "buffered BMPS requests by HDD". Assumption is that since
1277 HDD is requesting full power, we need to undo any previous HDD requests for
1278 BMPS (using sme_RequestBmps) or WoWL (using sme_EnterWoWL). If the reason is
1279 specified anything other than above, the buffered requests for BMPS and WoWL
1280 will not be cleared.
1281 Note 2: Requesting full power (no matter what the fullPowerReason is) doesn't
1282 disable the "auto bmps timer" (if it is enabled) or clear any "buffered uapsd
1283 request".
1284 Note 3: When the device finally enters Full Power PMC will start a timer
1285 if any of the following holds true:
1286 - Auto BMPS mode is enabled
1287 - Uapsd request is pending
1288 - HDD's request for BMPS is pending
1289 - HDD's request for WoWL is pending
1290 On timer expiry PMC will attempt to put the device in BMPS mode if following
1291 (in addition to those listed above) holds true:
1292 - Polling of all modules through the Power Save Check routine passes
1293 - STA is associated to an access point
1294 \param hHal - The handle returned by macOpen.
1295 \param - callbackRoutine Callback routine invoked in case of success/failure
1296 \param - callbackContext - Cookie to be passed back during callback
1297 \param - fullPowerReason - Reason why this API is being invoked. SME needs to
1298 distinguish between BAP and HDD requests
1299 \return eHalStatus - status
1300 eHAL_STATUS_SUCCESS - device brought to full power state
1301 eHAL_STATUS_FAILURE - device cannot be brought to full power state
1302 eHAL_STATUS_PMC_PENDING - device is being brought to full power state,
1303 ---------------------------------------------------------------------------*/
1304extern eHalStatus sme_RequestFullPower (
1305 tHalHandle hHal,
1306 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1307 void *callbackContext,
1308 tRequestFullPowerReason fullPowerReason);
1309
1310/* ---------------------------------------------------------------------------
1311 \fn sme_RequestBmps
1312 \brief Request that the device be put in BMPS state. Request will be
1313 accepted only if BMPS mode is enabled and power save check routine
1314 passes. Only HDD should invoke this API.
1315 \param hHal - The handle returned by macOpen.
1316 \param - callbackRoutine Callback routine invoked in case of success/failure
1317 \param - callbackContext - Cookie to be passed back during callback
1318 \return eHalStatus
1319 eHAL_STATUS_SUCCESS - device is in BMPS state
1320 eHAL_STATUS_FAILURE - device cannot be brought to BMPS state
1321 eHAL_STATUS_PMC_PENDING - device is being brought to BMPS state
1322 ---------------------------------------------------------------------------*/
1323extern eHalStatus sme_RequestBmps (
1324 tHalHandle hHal,
1325 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1326 void *callbackContext);
1327
1328/* ---------------------------------------------------------------------------
1329 \fn sme_SetDHCPTillPowerActiveFlag
1330 \brief Sets/Clears DHCP related flag in PMC to disable/enable auto BMPS
1331 entry by PMC
1332 \param hHal - The handle returned by macOpen.
1333 ---------------------------------------------------------------------------*/
1334void sme_SetDHCPTillPowerActiveFlag(tHalHandle hHal, tANI_U8 flag);
1335
1336
1337/* ---------------------------------------------------------------------------
1338 \fn sme_StartUapsd
1339 \brief Request that the device be put in UAPSD state. If the device is in
1340 Full Power it will be put in BMPS mode first and then into UAPSD
1341 mode.
1342 \param hHal - The handle returned by macOpen.
1343 \param - callbackRoutine Callback routine invoked in case of success/failure
1344 \param - callbackContext - Cookie to be passed back during callback
1345 eHAL_STATUS_SUCCESS - device is in UAPSD state
1346 eHAL_STATUS_FAILURE - device cannot be brought to UAPSD state
1347 eHAL_STATUS_PMC_PENDING - device is being brought to UAPSD state
1348 eHAL_STATUS_PMC_DISABLED - UAPSD is disabled or BMPS mode is disabled
1349 \return eHalStatus
1350 ---------------------------------------------------------------------------*/
1351extern eHalStatus sme_StartUapsd (
1352 tHalHandle hHal,
1353 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1354 void *callbackContext);
1355
1356/* ---------------------------------------------------------------------------
1357 \fn sme_StopUapsd
1358 \brief Request that the device be put out of UAPSD state. Device will be
1359 put in in BMPS state after stop UAPSD completes. Buffered requests for
1360 UAPSD will be cleared after this.
1361 \param hHal - The handle returned by macOpen.
1362 \return eHalStatus
1363 eHAL_STATUS_SUCCESS - device is put out of UAPSD and back in BMPS state
1364 eHAL_STATUS_FAILURE - device cannot be brought out of UAPSD state
1365 ---------------------------------------------------------------------------*/
1366extern eHalStatus sme_StopUapsd (tHalHandle hHal);
1367
1368/* ---------------------------------------------------------------------------
1369 \fn sme_RequestStandby
1370 \brief Request that the device be put in standby. It is HDD's responsibility
1371 to bring the chip to full power and do a discconnect before calling
1372 this API. Request for standby will be rejected if STA is associated
1373 to an AP.
1374 \param hHal - The handle returned by macOpen.
1375 \param - callbackRoutine Callback routine invoked in case of success/failure
1376 \param - callbackContext - Cookie to be passed back during callback
1377 \return eHalStatus
1378 eHAL_STATUS_SUCCESS - device is in Standby mode
1379 eHAL_STATUS_FAILURE - device cannot be put in standby mode
1380 eHAL_STATUS_PMC_PENDING - device is being put in standby mode
1381 ---------------------------------------------------------------------------*/
1382extern eHalStatus sme_RequestStandby (
1383 tHalHandle hHal,
1384 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1385 void *callbackContext);
1386
1387/* ---------------------------------------------------------------------------
1388 \fn sme_RegisterPowerSaveCheck
1389 \brief Register a power save check routine that is called whenever
1390 the device is about to enter one of the power save modes.
1391 \param hHal - The handle returned by macOpen.
1392 \param checkRoutine - Power save check routine to be registered
1393 \param callbackContext - Cookie to be passed back during callback
1394 \return eHalStatus
1395 eHAL_STATUS_SUCCESS - successfully registered
1396 eHAL_STATUS_FAILURE - not successfully registered
1397 ---------------------------------------------------------------------------*/
1398extern eHalStatus sme_RegisterPowerSaveCheck (
1399 tHalHandle hHal,
1400 tANI_BOOLEAN (*checkRoutine) (void *checkContext), void *checkContext);
1401
1402/* ---------------------------------------------------------------------------
Mihir Shetefc7ff5b2014-01-27 11:30:05 +05301403 \fn sme_Register11dScanDoneCallback
1404 \brief Register a routine of type csrScanCompleteCallback which is
1405 called whenever an 11d scan is done
1406 \param hHal - The handle returned by macOpen.
1407 \param callback - 11d scan complete routine to be registered
1408 \return eHalStatus
1409 ---------------------------------------------------------------------------*/
1410extern eHalStatus sme_Register11dScanDoneCallback (
1411 tHalHandle hHal,
1412 csrScanCompleteCallback);
1413
1414/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07001415 \fn sme_DeregisterPowerSaveCheck
1416 \brief Deregister a power save check routine
1417 \param hHal - The handle returned by macOpen.
1418 \param checkRoutine - Power save check routine to be deregistered
1419 \return eHalStatus
1420 eHAL_STATUS_SUCCESS - successfully deregistered
1421 eHAL_STATUS_FAILURE - not successfully deregistered
1422 ---------------------------------------------------------------------------*/
1423extern eHalStatus sme_DeregisterPowerSaveCheck (
1424 tHalHandle hHal,
1425 tANI_BOOLEAN (*checkRoutine) (void *checkContext));
1426
1427/* ---------------------------------------------------------------------------
1428 \fn sme_RegisterDeviceStateUpdateInd
1429 \brief Register a callback routine that is called whenever
1430 the device enters a new device state (Full Power, BMPS, UAPSD)
1431 \param hHal - The handle returned by macOpen.
1432 \param callbackRoutine - Callback routine to be registered
1433 \param callbackContext - Cookie to be passed back during callback
1434 \return eHalStatus
1435 eHAL_STATUS_SUCCESS - successfully registered
1436 eHAL_STATUS_FAILURE - not successfully registered
1437 ---------------------------------------------------------------------------*/
1438extern eHalStatus sme_RegisterDeviceStateUpdateInd (
1439 tHalHandle hHal,
1440 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState),
1441 void *callbackContext);
1442
1443/* ---------------------------------------------------------------------------
1444 \fn sme_DeregisterDeviceStateUpdateInd
1445 \brief Deregister a routine that was registered for device state changes
1446 \param hHal - The handle returned by macOpen.
1447 \param callbackRoutine - Callback routine to be deregistered
1448 \return eHalStatus
1449 eHAL_STATUS_SUCCESS - successfully deregistered
1450 eHAL_STATUS_FAILURE - not successfully deregistered
1451 ---------------------------------------------------------------------------*/
1452extern eHalStatus sme_DeregisterDeviceStateUpdateInd (
1453 tHalHandle hHal,
1454 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState));
1455
1456/* ---------------------------------------------------------------------------
1457 \fn sme_WowlAddBcastPattern
1458 \brief Add a pattern for Pattern Byte Matching in Wowl mode. Firmware will
1459 do a pattern match on these patterns when Wowl is enabled during BMPS
1460 mode.
1461 \param hHal - The handle returned by macOpen.
1462 \param pattern - Pattern to be added
1463 \return eHalStatus
1464 eHAL_STATUS_FAILURE Cannot add pattern
1465 eHAL_STATUS_SUCCESS Request accepted.
1466 ---------------------------------------------------------------------------*/
1467extern eHalStatus sme_WowlAddBcastPattern (
1468 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001469 tpSirWowlAddBcastPtrn pattern,
1470 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001471
1472/* ---------------------------------------------------------------------------
1473 \fn sme_WowlDelBcastPattern
1474 \brief Delete a pattern that was added for Pattern Byte Matching.
1475 \param hHal - The handle returned by macOpen.
1476 \param pattern - Pattern to be deleted
1477 \return eHalStatus
1478 eHAL_STATUS_FAILURE Cannot delete pattern
1479 eHAL_STATUS_SUCCESS Request accepted.
1480 ---------------------------------------------------------------------------*/
1481extern eHalStatus sme_WowlDelBcastPattern (
1482 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001483 tpSirWowlDelBcastPtrn pattern,
1484 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001485
1486/* ---------------------------------------------------------------------------
1487 \fn sme_EnterWowl
1488 \brief This is the API to request entry into WOWL mode.
1489 WoWLAN works on top of BMPS mode. If the device is not in BMPS mode,
1490 SME will will cache the information that WOWL has been requested and
1491 attempt to put the device in BMPS first. On entry into BMPS, SME will
1492 enter the WOWL mode.
1493 Note 1: After WoWL request is accepted, If module other than HDD requests
1494 full power BEFORE WoWL request is completed, PMC will buffer the WoWL request
1495 and attempt to put the chip into BMPS+WOWL based on a timer.
1496 Note 2: Buffered request for WoWL will be cleared immedisately AFTER "enter Wowl"
1497 completes or if HDD requests full power or if sme_ExitWoWL API is invoked.
1498 Note 3: Both UAPSD and WOWL work on top of BMPS. On entry into BMPS, SME
1499 will give priority to UAPSD and enable only UAPSD if both UAPSD and WOWL
1500 are required. Currently there is no requirement or use case to support UAPSD
1501 and WOWL at the same time.
1502 Note 4. Request for WoWL is rejected if there is a pending UAPSD request.
1503 Note 5. Request for WoWL is rejected if BMPS is disabled.
1504
1505 \param hHal - The handle returned by macOpen.
1506 \param enterWowlCallbackRoutine - Callback routine provided by HDD.
1507 Used for success/failure notification by SME
1508 \param enterWowlCallbackContext - A cookie passed by HDD, that is passed back to HDD
1509 at the time of callback.
1510 \param wakeReasonIndCB - Callback routine provided by HDD.
1511 Used for Wake Reason Indication by SME
1512 \param wakeReasonIndCBContext - A cookie passed by HDD, that is passed back to HDD
1513 at the time of callback.
1514 \return eHalStatus
1515 eHAL_STATUS_SUCCESS Device is already in WoWLAN mode
1516 eHAL_STATUS_FAILURE Device cannot enter WoWLAN mode.
1517 eHAL_STATUS_PMC_PENDING Request accepted. SME will enable WOWL when BMPS
1518 mode is entered.
1519 ---------------------------------------------------------------------------*/
1520extern eHalStatus sme_EnterWowl (
1521 tHalHandle hHal,
1522 void (*enterWowlCallbackRoutine) (void *callbackContext, eHalStatus status),
1523 void *enterWowlCallbackContext,
1524#ifdef WLAN_WAKEUP_EVENTS
1525 void (*wakeReasonIndCB) (void *callbackContext, tpSirWakeReasonInd pWakeReasonInd),
1526 void *wakeReasonIndCBContext,
1527#endif // WLAN_WAKEUP_EVENTS
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001528 tpSirSmeWowlEnterParams wowlEnterParams, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001529
1530/* ---------------------------------------------------------------------------
1531 \fn sme_ExitWowl
1532 \brief This is the SME API exposed to HDD to request exit from WoWLAN mode.
1533 SME will initiate exit from WoWLAN mode and device will be put in BMPS
1534 mode. Any Buffered request for WoWL will be cleared after this API.
1535 \param hHal - The handle returned by macOpen.
1536 \return eHalStatus
1537 eHAL_STATUS_FAILURE Device cannot exit WoWLAN mode. This can happen
1538 only if the previous "Enter WOWL" transaction has
1539 not even completed.
1540 eHAL_STATUS_SUCCESS Request accepted to exit WoWLAN mode.
1541 ---------------------------------------------------------------------------*/
c_hpothu01484c02014-05-16 14:05:15 +05301542extern eHalStatus sme_ExitWowl (tHalHandle hHal, tWowlExitSource wowlExitSrc);
Jeff Johnson295189b2012-06-20 16:38:30 -07001543
1544/* ---------------------------------------------------------------------------
1545
1546 \fn sme_RoamSetKey
1547
1548 \brief To set encryption key. This function should be called only when connected
1549 This is an asynchronous API.
1550
1551 \param pSetKeyInfo - pointer to a caller allocated object of tCsrSetContextInfo
1552
1553 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1554
1555 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1556
1557 FAILURE or RESOURCES The API finished and failed.
1558
1559 -------------------------------------------------------------------------------*/
1560eHalStatus sme_RoamSetKey(tHalHandle, tANI_U8 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 *pRoamId);
1561
1562/* ---------------------------------------------------------------------------
1563
1564 \fn sme_RoamRemoveKey
1565
1566 \brief To set encryption key. This is an asynchronous API.
1567
1568 \param pRemoveKey - pointer to a caller allocated object of tCsrRoamRemoveKey
1569
1570 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1571
1572 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1573
1574 FAILURE or RESOURCES The API finished and failed.
1575
1576 -------------------------------------------------------------------------------*/
1577eHalStatus sme_RoamRemoveKey(tHalHandle, tANI_U8 sessionId, tCsrRoamRemoveKey *pRemoveKey, tANI_U32 *pRoamId);
1578
1579
1580/* ---------------------------------------------------------------------------
1581
1582 \fn sme_GetCountryCode
1583
1584 \brief To return the current country code. If no country code is applied, default country code is
1585 used to fill the buffer.
1586 If 11d supported is turned off, an error is return and the last applied/default country code is used.
1587 This is a synchronous API.
1588
1589 \param pBuf - pointer to a caller allocated buffer for returned country code.
1590
1591 \param pbLen For input, this parameter indicates how big is the buffer.
1592 Upon return, this parameter has the number of bytes for country. If pBuf
1593 doesn't have enough space, this function returns
1594 fail status and this parameter contains the number that is needed.
1595
1596 \return eHalStatus SUCCESS.
1597
1598 FAILURE or RESOURCES The API finished and failed.
1599
1600 -------------------------------------------------------------------------------*/
1601eHalStatus sme_GetCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U8 *pbLen);
1602
1603/* ---------------------------------------------------------------------------
1604
1605 \fn sme_SetCountryCode
1606
1607 \brief To change the current/default country code.
1608 If 11d supported is turned off, an error is return.
1609 This is a synchronous API.
1610
1611 \param pCountry - pointer to a caller allocated buffer for the country code.
1612
1613 \param pfRestartNeeded A pointer to caller allocated memory, upon successful return, it indicates
1614 whether a reset is required.
1615
1616 \return eHalStatus SUCCESS.
1617
1618 FAILURE or RESOURCES The API finished and failed.
1619
1620 -------------------------------------------------------------------------------*/
1621eHalStatus sme_SetCountryCode(tHalHandle hHal, tANI_U8 *pCountry, tANI_BOOLEAN *pfRestartNeeded);
1622
1623/* ---------------------------------------------------------------------------
Mihir Shetee1093ba2014-01-21 20:13:32 +05301624
1625 \fn sme_InitChannels
1626
1627 \brief Used to initialize CSR channel lists while driver loading
1628
1629 \param hHal - global pMac structure
1630
1631 \return eHalStatus SUCCESS.
1632
1633 FAILURE or RESOURCES The API finished and failed.
1634
1635 -------------------------------------------------------------------------------*/
1636eHalStatus sme_InitChannels(tHalHandle hHal);
1637
Mahesh A Saptasagar74289d22014-05-14 12:43:37 +05301638
Mihir Shete04206452014-11-20 17:50:58 +05301639#ifdef CONFIG_ENABLE_LINUX_REG
Mahesh A Saptasagar74289d22014-05-14 12:43:37 +05301640/* ---------------------------------------------------------------------------
1641 \fn sme_InitChannelsForCC
1642
1643 \brief Used to issue regulatory hint to user
1644
1645 \param hHal - global pMac structure
Agarwal Ashish6db9d532014-09-30 18:19:10 +05301646 init - param to initiate channel list on basis of init/Reinit
Mahesh A Saptasagar74289d22014-05-14 12:43:37 +05301647
1648 \return eHalStatus SUCCESS.
1649
1650 FAILURE or RESOURCES The API finished and failed.
1651
1652 -------------------------------------------------------------------------------*/
Agarwal Ashish6db9d532014-09-30 18:19:10 +05301653eHalStatus sme_InitChannelsForCC(tHalHandle hHal, driver_load_type init);
Mihir Shete04206452014-11-20 17:50:58 +05301654#endif
Mahesh A Saptasagar74289d22014-05-14 12:43:37 +05301655
Mihir Shetee1093ba2014-01-21 20:13:32 +05301656/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07001657 \fn sme_ResetCountryCodeInformation
1658 \brief this function is to reset the country code current being used back to EEPROM default
1659 this includes channel list and power setting. This is a synchronous API.
1660 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1661 a restart is needed to apply the change
1662 \return eHalStatus
1663 -------------------------------------------------------------------------------*/
1664eHalStatus sme_ResetCountryCodeInformation(tHalHandle hHal, tANI_BOOLEAN *pfRestartNeeded);
1665
1666/* ---------------------------------------------------------------------------
1667 \fn sme_GetSupportedCountryCode
1668 \brief this function is to get a list of the country code current being supported
1669 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return,
1670 this has the country code list. 3 bytes for each country code. This may be NULL if
1671 caller wants to know the needed byte count.
1672 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
1673 this contains the length of the data in pBuf. If pbuf is NULL, as input, *pbLen should be 0.
1674 \return eHalStatus
1675 -------------------------------------------------------------------------------*/
1676eHalStatus sme_GetSupportedCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U32 *pbLen);
1677
1678/* ---------------------------------------------------------------------------
1679 \fn sme_GetCurrentRegulatoryDomain
1680 \brief this function is to get the current regulatory domain. This is a synchronous API.
1681 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1682 SME. The function fails if 11d support is turned off.
1683 \param pDomain - Caller allocated buffer to return the current domain.
1684 \return eHalStatus SUCCESS.
1685
1686 FAILURE or RESOURCES The API finished and failed.
1687 -------------------------------------------------------------------------------*/
1688eHalStatus sme_GetCurrentRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t *pDomain);
1689
1690/* ---------------------------------------------------------------------------
1691 \fn sme_SetRegulatoryDomain
1692 \brief this function is to set the current regulatory domain.
1693 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1694 SME. This is a synchronous API.
1695 \param domainId - indicate the domain (defined in the driver) needs to set to.
1696 See v_REGDOMAIN_t for definition
1697 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1698 a restart is needed to apply the change
1699 \return eHalStatus
1700 -------------------------------------------------------------------------------*/
1701eHalStatus sme_SetRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t domainId, tANI_BOOLEAN *pfRestartNeeded);
1702
1703/* ---------------------------------------------------------------------------
1704
1705 \fn sme_GetRegulatoryDomainForCountry
1706
1707 \brief To return a regulatory domain base on a country code. This is a synchronous API.
1708
1709 \param pCountry - pointer to a caller allocated buffer for input country code.
1710
1711 \param pDomainId Upon successful return, it is the domain that country belongs to.
1712 If it is NULL, returning success means that the country code is known.
1713
1714 \return eHalStatus SUCCESS.
1715
1716 FAILURE or RESOURCES The API finished and failed.
1717
1718 -------------------------------------------------------------------------------*/
1719eHalStatus sme_GetRegulatoryDomainForCountry(tHalHandle hHal, tANI_U8 *pCountry, v_REGDOMAIN_t *pDomainId);
1720
1721
1722
1723/* ---------------------------------------------------------------------------
1724
1725 \fn sme_GetSupportedRegulatoryDomains
1726
1727 \brief To return a list of supported regulatory domains. This is a synchronous API.
1728
1729 \param pDomains - pointer to a caller allocated buffer for returned regulatory domains.
1730
1731 \param pNumDomains For input, this parameter indicates howm many domains pDomains can hold.
1732 Upon return, this parameter has the number for supported domains. If pDomains
1733 doesn't have enough space for all the supported domains, this function returns
1734 fail status and this parameter contains the number that is needed.
1735
1736 \return eHalStatus SUCCESS.
1737
1738 FAILURE or RESOURCES The API finished and failed.
1739
1740 -------------------------------------------------------------------------------*/
1741eHalStatus sme_GetSupportedRegulatoryDomains(tHalHandle hHal, v_REGDOMAIN_t *pDomains, tANI_U32 *pNumDomains);
1742
1743//some support functions
1744tANI_BOOLEAN sme_Is11dSupported(tHalHandle hHal);
1745tANI_BOOLEAN sme_Is11hSupported(tHalHandle hHal);
1746tANI_BOOLEAN sme_IsWmmSupported(tHalHandle hHal);
1747//Upper layer to get the list of the base channels to scan for passively 11d info from csr
1748eHalStatus sme_ScanGetBaseChannels( tHalHandle hHal, tCsrChannelInfo * pChannelInfo );
1749
1750typedef void ( *tSmeChangeCountryCallback)(void *pContext);
1751/* ---------------------------------------------------------------------------
1752
1753 \fn sme_ChangeCountryCode
1754
1755 \brief Change Country code from upperlayer during WLAN driver operation.
1756 This is a synchronous API.
1757
1758 \param hHal - The handle returned by macOpen.
1759
1760 \param pCountry New Country Code String
1761
Abhishek Singha306a442013-11-07 18:39:01 +05301762 \param sendRegHint If we want to send reg hint to nl80211
1763
Jeff Johnson295189b2012-06-20 16:38:30 -07001764 \return eHalStatus SUCCESS.
1765
1766 FAILURE or RESOURCES The API finished and failed.
1767
1768 -------------------------------------------------------------------------------*/
1769eHalStatus sme_ChangeCountryCode( tHalHandle hHal,
1770 tSmeChangeCountryCallback callback,
1771 tANI_U8 *pCountry,
1772 void *pContext,
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05301773 void* pVosContext,
Abhishek Singha306a442013-11-07 18:39:01 +05301774 tAniBool countryFromUserSpace,
1775 tAniBool sendRegHint);
Jeff Johnson295189b2012-06-20 16:38:30 -07001776
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301777/* ---------------------------------------------------------------------------
1778
Amar Singhal0d15bd52013-10-12 23:13:13 -07001779 \fn sme_GenericChangeCountryCode
1780
1781 \brief Generic API to change country code
1782
1783 \param hHal - The handle returned by macOpen.
1784
1785 \param pCountry New Country Code String
1786
1787 \param reg_domain Regulatory domain for the new country code
1788
1789 \return eHalStatus SUCCESS.
1790
1791 FAILURE or RESOURCES The API finished and failed.
1792
1793 -------------------------------------------------------------------------------*/
1794eHalStatus sme_GenericChangeCountryCode( tHalHandle hHal,
1795 tANI_U8 *pCountry,
1796 v_REGDOMAIN_t reg_domain);
1797
1798/* ---------------------------------------------------------------------------
1799
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301800 \fn sme_DHCPStartInd
1801
1802 \brief Indicate FW about DHCP start event.
1803
1804 \param hHal - The handle returned by macOpen.
1805
1806 \param device_mode the mode of the device
1807
c_hpothu0b0cab72014-02-13 21:52:40 +05301808 \param sessionId session ID
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301809
1810 \return eHalStatus SUCCESS.
1811
1812 FAILURE or RESOURCES The API finished and failed.
1813
1814 -------------------------------------------------------------------------------*/
1815
1816eHalStatus sme_DHCPStartInd( tHalHandle hHal,
1817 tANI_U8 device_mode,
c_hpothu0b0cab72014-02-13 21:52:40 +05301818 tANI_U8 sessionId );
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301819
1820/* ---------------------------------------------------------------------------
1821
1822 \fn sme_DHCPStopInd
1823
1824 \brief Indicate FW about DHCP stop event.
1825
1826 \param hHal - The handle returned by macOpen.
1827
1828 \param device_mode the mode of the device
1829
c_hpothu0b0cab72014-02-13 21:52:40 +05301830 \param sessionId session ID
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301831
1832 \return eHalStatus SUCCESS.
1833
1834 FAILURE or RESOURCES The API finished and failed.
1835
1836 -------------------------------------------------------------------------------*/
1837eHalStatus sme_DHCPStopInd( tHalHandle hHal,
1838 tANI_U8 device_mode,
c_hpothu0b0cab72014-02-13 21:52:40 +05301839 tANI_U8 sessionId );
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301840
Jeff Johnson295189b2012-06-20 16:38:30 -07001841
1842/* ---------------------------------------------------------------------------
1843 \fn sme_BtcSignalBtEvent
1844 \brief API to signal Bluetooth (BT) event to the WLAN driver. Based on the
1845 BT event type and the current operating mode of Libra (full power,
1846 BMPS, UAPSD etc), appropriate Bluetooth Coexistence (BTC) strategy
1847 would be employed.
1848 \param hHal - The handle returned by macOpen.
1849 \param pBtcBtEvent - Pointer to a caller allocated object of type tSmeBtEvent
1850 Caller owns the memory and is responsible for freeing it.
1851 \return VOS_STATUS
1852 VOS_STATUS_E_FAILURE BT Event not passed to HAL. This can happen
1853 if driver has not yet been initialized or if BTC
1854 Events Layer has been disabled.
1855 VOS_STATUS_SUCCESS BT Event passed to HAL
1856 ---------------------------------------------------------------------------*/
1857VOS_STATUS sme_BtcSignalBtEvent (tHalHandle hHal, tpSmeBtEvent pBtcBtEvent);
1858
1859/* ---------------------------------------------------------------------------
1860 \fn sme_BtcSetConfig
1861 \brief API to change the current Bluetooth Coexistence (BTC) configuration
1862 This function should be invoked only after CFG download has completed.
1863 Calling it after sme_HDDReadyInd is recommended.
1864 \param hHal - The handle returned by macOpen.
1865 \param pSmeBtcConfig - Pointer to a caller allocated object of type
1866 tSmeBtcConfig. Caller owns the memory and is responsible
1867 for freeing it.
1868 \return VOS_STATUS
1869 VOS_STATUS_E_FAILURE Config not passed to HAL.
1870 VOS_STATUS_SUCCESS Config passed to HAL
1871 ---------------------------------------------------------------------------*/
1872VOS_STATUS sme_BtcSetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1873
1874/* ---------------------------------------------------------------------------
1875 \fn sme_BtcGetConfig
1876 \brief API to retrieve the current Bluetooth Coexistence (BTC) configuration
1877 \param hHal - The handle returned by macOpen.
1878 \param pSmeBtcConfig - Pointer to a caller allocated object of type tSmeBtcConfig.
1879 Caller owns the memory and is responsible for freeing it.
1880 \return VOS_STATUS
1881 VOS_STATUS_E_FAILURE - failure
1882 VOS_STATUS_SUCCESS success
1883 ---------------------------------------------------------------------------*/
1884VOS_STATUS sme_BtcGetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1885
1886/* ---------------------------------------------------------------------------
1887 \fn sme_SetCfgPrivacy
1888 \brief API to set configure privacy parameters
1889 \param hHal - The handle returned by macOpen.
1890 \param pProfile - Pointer CSR Roam profile.
1891 \param fPrivacy - This parameter indicates status of privacy
1892
1893 \return void
1894 ---------------------------------------------------------------------------*/
1895void sme_SetCfgPrivacy(tHalHandle hHal, tCsrRoamProfile *pProfile, tANI_BOOLEAN fPrivacy);
1896
1897#if defined WLAN_FEATURE_VOWIFI
1898/* ---------------------------------------------------------------------------
1899 \fn sme_NeighborReportRequest
1900 \brief API to request neighbor report.
1901 \param hHal - The handle returned by macOpen.
1902 \param pRrmNeighborReq - Pointer to a caller allocated object of type
1903 tRrmNeighborReq. Caller owns the memory and is responsible
1904 for freeing it.
1905 \return VOS_STATUS
1906 VOS_STATUS_E_FAILURE - failure
1907 VOS_STATUS_SUCCESS success
1908 ---------------------------------------------------------------------------*/
1909VOS_STATUS sme_NeighborReportRequest (tHalHandle hHal, tANI_U8 sessionId,
1910 tpRrmNeighborReq pRrmNeighborReq, tpRrmNeighborRspCallbackInfo callbackInfo);
1911#endif
1912
1913//The following are debug APIs to support direct read/write register/memory
1914//They are placed in SME because HW cannot be access when in LOW_POWER state
1915//AND not connected. The knowledge and synchronization is done in SME
1916
1917//sme_DbgReadRegister
1918//Caller needs to validate the input values
1919VOS_STATUS sme_DbgReadRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t *pRegValue);
1920
1921//sme_DbgWriteRegister
1922//Caller needs to validate the input values
1923VOS_STATUS sme_DbgWriteRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t regValue);
1924
1925//sme_DbgReadMemory
1926//Caller needs to validate the input values
1927//pBuf caller allocated buffer has the length of nLen
1928VOS_STATUS sme_DbgReadMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1929
1930//sme_DbgWriteMemory
1931//Caller needs to validate the input values
1932VOS_STATUS sme_DbgWriteMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1933
Jeff Johnson295189b2012-06-20 16:38:30 -07001934VOS_STATUS sme_GetWcnssWlanCompiledVersion(tHalHandle hHal,
1935 tSirVersionType *pVersion);
1936VOS_STATUS sme_GetWcnssWlanReportedVersion(tHalHandle hHal,
1937 tSirVersionType *pVersion);
1938VOS_STATUS sme_GetWcnssSoftwareVersion(tHalHandle hHal,
1939 tANI_U8 *pVersion,
1940 tANI_U32 versionBufferSize);
1941VOS_STATUS sme_GetWcnssHardwareVersion(tHalHandle hHal,
1942 tANI_U8 *pVersion,
1943 tANI_U32 versionBufferSize);
Jeff Johnson295189b2012-06-20 16:38:30 -07001944eHalStatus sme_RoamRegisterCallback(tHalHandle hHal,
1945 csrRoamCompleteCallback callback,
1946 void *pContext);
1947
1948#ifdef FEATURE_WLAN_WAPI
1949/* ---------------------------------------------------------------------------
1950 \fn sme_RoamSetBKIDCache
1951 \brief The SME API exposed to HDD to allow HDD to provde SME the BKID
1952 candidate list.
1953 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1954 it is opened (by calling halOpen).
1955 \param pBKIDCache - caller allocated buffer point to an array of tBkidCacheInfo
1956 \param numItems - a variable that has the number of tBkidCacheInfo allocated
1957 when retruning, this is the number of items put into pBKIDCache
1958 \return eHalStatus - when fail, it usually means the buffer allocated is not
1959 big enough and pNumItems has the number of tBkidCacheInfo.
1960 ---------------------------------------------------------------------------*/
1961eHalStatus sme_RoamSetBKIDCache( tHalHandle hHal, tANI_U32 sessionId, tBkidCacheInfo *pBKIDCache,
1962 tANI_U32 numItems );
1963
1964/* ---------------------------------------------------------------------------
1965 \fn sme_RoamGetBKIDCache
1966 \brief The SME API exposed to HDD to allow HDD to request SME to return its
1967 BKID cache.
1968 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1969 it is opened (by calling halOpen).
1970 \param pNum - caller allocated memory that has the space of the number of
1971 tBkidCacheInfo as input. Upon returned, *pNum has the needed number of entries
1972 in SME cache.
1973 \param pBkidCache - Caller allocated memory that contains BKID cache, if any,
1974 upon return
1975 \return eHalStatus - when fail, it usually means the buffer allocated is not
1976 big enough.
1977 ---------------------------------------------------------------------------*/
1978eHalStatus sme_RoamGetBKIDCache(tHalHandle hHal, tANI_U32 *pNum,
1979 tBkidCacheInfo *pBkidCache);
1980
1981/* ---------------------------------------------------------------------------
1982 \fn sme_RoamGetNumBKIDCache
1983 \brief The SME API exposed to HDD to allow HDD to request SME to return the
1984 number of BKID cache entries.
1985 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1986 it is opened (by calling halOpen).
1987 \return tANI_U32 - the number of BKID cache entries.
1988 ---------------------------------------------------------------------------*/
1989tANI_U32 sme_RoamGetNumBKIDCache(tHalHandle hHal, tANI_U32 sessionId);
1990
1991/* ---------------------------------------------------------------------------
1992 \fn sme_ScanGetBKIDCandidateList
1993 \brief a wrapper function to return the BKID candidate list
1994 \param pBkidList - caller allocated buffer point to an array of
1995 tBkidCandidateInfo
1996 \param pNumItems - pointer to a variable that has the number of
1997 tBkidCandidateInfo allocated when retruning, this is
1998 either the number needed or number of items put into
1999 pPmkidList
2000 \return eHalStatus - when fail, it usually means the buffer allocated is not
2001 big enough and pNumItems
2002 has the number of tBkidCandidateInfo.
2003 \Note: pNumItems is a number of tBkidCandidateInfo,
2004 not sizeof(tBkidCandidateInfo) * something
2005 ---------------------------------------------------------------------------*/
2006eHalStatus sme_ScanGetBKIDCandidateList(tHalHandle hHal, tANI_U32 sessionId,
2007 tBkidCandidateInfo *pBkidList,
2008 tANI_U32 *pNumItems );
2009#endif /* FEATURE_WLAN_WAPI */
2010
Jeff Johnsone7245742012-09-05 17:12:55 -07002011#ifdef FEATURE_OEM_DATA_SUPPORT
2012/********************************************************************************************
2013 Oem data related modifications
2014*********************************************************************************************/
2015/* ---------------------------------------------------------------------------
2016 \fn sme_OemDataReq
2017 \param sessionId - session id of session to be used for oem data req.
2018 \param pOemDataReqID - pointer to an object to get back the request ID
2019 \param callback - a callback function that is called upon finish
2020 \param pContext - a pointer passed in for the callback
2021 \return eHalStatus
2022 ---------------------------------------------------------------------------*/
2023eHalStatus sme_OemDataReq(tHalHandle hHal,
2024 tANI_U8 sessionId,
2025 tOemDataReqConfig *,
2026 tANI_U32 *pOemDataReqID,
2027 oemData_OemDataReqCompleteCallback callback,
2028 void *pContext);
2029
2030/* ---------------------------------------------------------------------------
2031 \fn sme_getOemDataRsp
2032 \param pOemDataRsp - A pointer to the response object
2033 \param pOemDataReqID - pointer to an object to get back the request ID
2034 \return eHalStatus
2035 ---------------------------------------------------------------------------*/
2036eHalStatus sme_getOemDataRsp(tHalHandle hHal,
2037 tOemDataRsp **pOemDataRsp);
2038
2039#endif /*FEATURE_OEM_DATA_SUPPORT*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002040
2041
Jeff Johnson295189b2012-06-20 16:38:30 -07002042
2043/* ---------------------------------------------------------------------------
2044
2045 \fn sme_RoamUpdateAPWPSIE
2046
2047 \brief To update AP's WPS IE. This function should be called after SME AP session is created
2048 This is an asynchronous API.
2049
2050 \param pAPWPSIES - pointer to a caller allocated object of tCsrRoamAPWPSIES
2051
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002052 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
Jeff Johnson295189b2012-06-20 16:38:30 -07002053
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002054 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07002055
2056 -------------------------------------------------------------------------------*/
2057
2058eHalStatus sme_RoamUpdateAPWPSIE(tHalHandle, tANI_U8 sessionId, tSirAPWPSIEs *pAPWPSIES);
2059/* ---------------------------------------------------------------------------
2060
2061 \fn sme_RoamUpdateAPWPARSNIEs
2062
2063 \brief To update AP's WPA/RSN IEs. This function should be called after SME AP session is created
2064 This is an asynchronous API.
2065
2066 \param pAPSirRSNie - pointer to a caller allocated object of tSirRSNie with WPS/RSN IEs
2067
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002068 \return eHalStatus SUCCESS
Jeff Johnson295189b2012-06-20 16:38:30 -07002069
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002070 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07002071
2072 -------------------------------------------------------------------------------*/
2073eHalStatus sme_RoamUpdateAPWPARSNIEs(tHalHandle hHal, tANI_U8 sessionId, tSirRSNie * pAPSirRSNie);
2074
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08002075/* ---------------------------------------------------------------------------
2076
2077 sme_ChangeMCCBeaconInterval
2078
2079 \brief To update P2P-GO's beacon Interval.
2080
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002081 \return eHalStatus SUCCESS
2082 FAILURE or RESOURCES
2083 The API finished and failed.
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08002084 -------------------------------------------------------------------------------*/
2085eHalStatus sme_ChangeMCCBeaconInterval(tHalHandle hHal, tANI_U8 sessionId);
2086
2087
Jeff Johnson295189b2012-06-20 16:38:30 -07002088
2089/* ---------------------------------------------------------------------------
2090 \fn sme_sendBTAmpEvent
2091 \brief API to send the btAMPstate to FW
2092 \param hHal - The handle returned by macOpen.
2093 \param btAmpEvent -- btAMP event
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002094 \return eHalStatus SUCCESS
2095 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07002096
2097--------------------------------------------------------------------------- */
2098
2099eHalStatus sme_sendBTAmpEvent(tHalHandle hHal, tSmeBtAmpEvent btAmpEvent);
2100
2101
2102
2103/* ---------------------------------------------------------------------------
2104 \fn sme_SetHostOffload
2105 \brief API to set the host offload feature.
2106 \param hHal - The handle returned by macOpen.
2107 \param pRequest - Pointer to the offload request.
2108 \return eHalStatus
2109 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002110eHalStatus sme_SetHostOffload (tHalHandle hHal, tANI_U8 sessionId,
2111 tpSirHostOffloadReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07002112
2113/* ---------------------------------------------------------------------------
2114 \fn sme_SetKeepAlive
2115 \brief API to set the Keep Alive feature.
2116 \param hHal - The handle returned by macOpen.
2117 \param pRequest - Pointer to the Keep Alive request.
2118 \return eHalStatus
2119 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002120eHalStatus sme_SetKeepAlive (tHalHandle hHal, tANI_U8 sessionId,
2121 tpSirKeepAliveReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07002122
Jeff Johnson295189b2012-06-20 16:38:30 -07002123/* ----------------------------------------------------------------------------
2124 \fn sme_GetOperationChannel
2125 \brief API to get current channel on which STA is parked
2126 this function gives channel information only of infra station or IBSS station.
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002127 \param hHal, pointer to memory location and sessionId
Jeff Johnson295189b2012-06-20 16:38:30 -07002128 \returns eHAL_STATUS_SUCCESS
2129 eHAL_STATUS_FAILURE
2130-------------------------------------------------------------------------------*/
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002131eHalStatus sme_GetOperationChannel(tHalHandle hHal, tANI_U32 *pChannel, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002132
Jeff Johnson295189b2012-06-20 16:38:30 -07002133/* ---------------------------------------------------------------------------
2134
2135 \fn sme_RegisterMgtFrame
2136
2137 \brief To register managment frame of specified type and subtype.
2138 \param frameType - type of the frame that needs to be passed to HDD.
2139 \param matchData - data which needs to be matched before passing frame
2140 to HDD.
2141 \param matchDataLen - Length of matched data.
2142 \return eHalStatus
2143 -------------------------------------------------------------------------------*/
2144eHalStatus sme_RegisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
2145 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
2146
2147/* ---------------------------------------------------------------------------
2148
2149 \fn sme_DeregisterMgtFrame
2150
2151 \brief To De-register managment frame of specified type and subtype.
2152 \param frameType - type of the frame that needs to be passed to HDD.
2153 \param matchData - data which needs to be matched before passing frame
2154 to HDD.
2155 \param matchDataLen - Length of matched data.
2156 \return eHalStatus
2157 -------------------------------------------------------------------------------*/
2158eHalStatus sme_DeregisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
2159 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
Siddharth Bhal64246172015-02-27 01:04:37 +05302160/* ---------------------------------------------------------------------------
2161 \fn sme_GetFramesLog
2162 \brief a wrapper function that client calls to register a callback to get
2163 mgmt frames logged
2164 \param callback - SME sends back the context using the callback
2165 \param flag - flag tells to clear OR send the frame log buffer
2166 \param pContext - user context to be passed back along with the callback
2167 \return eHalStatus
2168 ---------------------------------------------------------------------------*/
2169eHalStatus sme_GetFramesLog(tHalHandle hHal,
2170 tGetFrameLogCallback callback,
2171 tANI_U8 flag, void *pContext);
Jeff Johnson295189b2012-06-20 16:38:30 -07002172/* ---------------------------------------------------------------------------
2173
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05302174 \fn sme_InitMgmtFrameLogging
2175
2176 \brief
2177 SME will pass this request to lower mac to initialize Frame Logging.
2178
2179 \param
2180
2181 hHal - The handle returned by macOpen.
2182
Siddharth Bhald1be97f2015-05-27 22:39:59 +05302183 wlanFWLoggingInitParam - Params to initialize frame logging
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05302184
2185 \return eHalStatus
2186--------------------------------------------------------------------------- */
2187eHalStatus sme_InitMgmtFrameLogging( tHalHandle hHal,
Siddharth Bhald1be97f2015-05-27 22:39:59 +05302188 tpSirFWLoggingInitParam wlanFWLoggingInitParam);
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05302189
2190/* ---------------------------------------------------------------------------
2191
Jeff Johnson295189b2012-06-20 16:38:30 -07002192 \fn sme_ConfigureRxpFilter
2193
2194 \brief
2195 SME will pass this request to lower mac to set/reset the filter on RXP for
2196 multicast & broadcast traffic.
2197
2198 \param
2199
2200 hHal - The handle returned by macOpen.
2201
2202 filterMask- Currently the API takes a 1 or 0 (set or reset) as filter.
2203 Basically to enable/disable the filter (to filter "all" mcbc traffic) based
2204 on this param. In future we can use this as a mask to set various types of
2205 filters as suggested below:
2206 FILTER_ALL_MULTICAST:
2207 FILTER_ALL_BROADCAST:
2208 FILTER_ALL_MULTICAST_BROADCAST:
2209
2210
2211 \return eHalStatus
2212
2213
2214--------------------------------------------------------------------------- */
2215eHalStatus sme_ConfigureRxpFilter( tHalHandle hHal,
2216 tpSirWlanSetRxpFilters wlanRxpFilterParam);
2217
2218/* ---------------------------------------------------------------------------
2219
2220 \fn sme_ConfigureAppsCpuWakeupState
2221
2222 \brief
2223 SME will pass this request to lower mac to dynamically adjusts the listen
2224 interval based on the WLAN/MSM activity. This feature is named as
2225 Telescopic Beacon wakeup feature.
2226
2227 \param
2228
2229 hHal - The handle returned by macOpen.
2230
2231 isAppsAwake- Depicts the state of the Apps CPU
2232
2233
2234 \return eHalStatus
2235
2236
2237--------------------------------------------------------------------------- */
2238eHalStatus sme_ConfigureAppsCpuWakeupState( tHalHandle hHal, tANI_BOOLEAN isAppsAwake);
2239
Jeff Johnson295189b2012-06-20 16:38:30 -07002240/* ---------------------------------------------------------------------------
2241
2242 \fn sme_ConfigureSuspendInd
2243
2244 \brief
2245 SME will pass this request to lower mac to Indicate that the wlan needs to
2246 be suspended
2247
2248 \param
2249
2250 hHal - The handle returned by macOpen.
2251
2252 wlanSuspendParam- Depicts the wlan suspend params
2253
2254
2255 \return eHalStatus
2256
2257
2258--------------------------------------------------------------------------- */
2259eHalStatus sme_ConfigureSuspendInd( tHalHandle hHal,
2260 tpSirWlanSuspendParam wlanSuspendParam);
2261
2262/* ---------------------------------------------------------------------------
2263
2264 \fn sme_ConfigureResumeReq
2265
2266 \brief
2267 SME will pass this request to lower mac to Indicate that the wlan needs to
2268 be Resumed
2269
2270 \param
2271
2272 hHal - The handle returned by macOpen.
2273
2274 wlanResumeParam- Depicts the wlan resume params
2275
2276
2277 \return eHalStatus
2278
2279
2280--------------------------------------------------------------------------- */
2281eHalStatus sme_ConfigureResumeReq( tHalHandle hHal,
2282 tpSirWlanResumeParam wlanResumeParam);
2283
Jeff Johnson295189b2012-06-20 16:38:30 -07002284
2285/* ---------------------------------------------------------------------------
2286
2287 \fn sme_GetInfraSessionId
2288
2289 \brief To get the session ID for infra session, if connected
2290 This is a synchronous API.
2291
2292 \param hHal - The handle returned by macOpen.
2293
2294 \return sessionid, -1 if infra session is not connected
2295
2296 -------------------------------------------------------------------------------*/
2297tANI_S8 sme_GetInfraSessionId(tHalHandle hHal);
2298
2299/* ---------------------------------------------------------------------------
2300
2301 \fn sme_GetInfraOperationChannel
2302
2303 \brief To get the operating channel for infra session, if connected
2304 This is a synchronous API.
2305
2306 \param hHal - The handle returned by macOpen.
2307 \param sessionId - the sessionId returned by sme_OpenSession.
2308
2309 \return operating channel, 0 if infra session is not connected
2310
2311 -------------------------------------------------------------------------------*/
2312tANI_U8 sme_GetInfraOperationChannel( tHalHandle hHal, tANI_U8 sessionId);
2313/* ---------------------------------------------------------------------------
2314
2315 \fn sme_GetConcurrentOperationChannel
2316
2317 \brief To get the operating channel for other concurrent sessions, if connected
2318 This is a synchronous API.
2319
2320 \param hHal - The handle returned by macOpen.
2321 \param currentPersona - persona that is trying to come up.
2322
2323 \return operating channel, 0 if infra session is not connected
2324
2325 -------------------------------------------------------------------------------*/
2326tANI_U8 sme_GetConcurrentOperationChannel( tHalHandle hHal );
2327
2328/* ---------------------------------------------------------------------------
2329 \fn sme_AbortMacScan
2330 \brief API to cancel MAC scan.
2331 \param hHal - The handle returned by macOpen.
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +05302332 \param sessionId - sessionId for interface
c_hpothua3d45d52015-01-05 14:11:17 +05302333 \return tSirAbortScanStatus return status abort scan
2334
Jeff Johnson295189b2012-06-20 16:38:30 -07002335 ---------------------------------------------------------------------------*/
c_hpothua3d45d52015-01-05 14:11:17 +05302336tSirAbortScanStatus sme_AbortMacScan(tHalHandle hHal, tANI_U8 sessionId,
2337 eCsrAbortReason reason);
Jeff Johnson295189b2012-06-20 16:38:30 -07002338
2339/* ---------------------------------------------------------------------------
2340 \fn sme_GetCfgValidChannels
2341 \brief API to get valid channel list
2342 \param hHal - The handle returned by macOpen.
2343 \param aValidChannels - Pointer to the valid channel list
2344 \param len - valid channel list length
2345 \return eHalStatus
2346 ---------------------------------------------------------------------------*/
2347eHalStatus sme_GetCfgValidChannels(tHalHandle hHal, tANI_U8 *aValidChannels, tANI_U32 *len);
2348
2349#ifdef FEATURE_WLAN_SCAN_PNO
2350
2351/* ---------------------------------------------------------------------------
2352 \fn sme_SetPreferredNetworkList
2353 \brief API to set the Preferred Network List Offload feature.
2354 \param hHal - The handle returned by macOpen.
2355 \param pRequest - Pointer to the offload request.
2356 \return eHalStatus
2357 ---------------------------------------------------------------------------*/
2358eHalStatus sme_SetPreferredNetworkList (tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext );
2359
2360/* ---------------------------------------------------------------------------
2361 \fn sme_SetRSSIFilter
2362 \brief API to set RSSI Filter feature.
2363 \param hHal - The handle returned by macOpen.
2364 \param pRequest - Pointer to the offload request.
2365 \return eHalStatus
2366 ---------------------------------------------------------------------------*/
2367eHalStatus sme_SetRSSIFilter(tHalHandle hHal, v_U8_t rssiThreshold);
2368
2369/******************************************************************************
2370*
2371* Name: sme_PreferredNetworkFoundInd
2372*
2373* Description:
2374* Invoke Preferred Network Found Indication
2375*
2376* Parameters:
2377* hHal - HAL handle for device
2378* pMsg - found network description
2379*
2380* Returns: eHalStatus
2381*
2382******************************************************************************/
2383eHalStatus sme_PreferredNetworkFoundInd (tHalHandle hHal, void* pMsg);
2384#endif // FEATURE_WLAN_SCAN_PNO
2385
2386/* ---------------------------------------------------------------------------
2387 \fn sme_SetPowerParams
2388 \brief API to set Power Parameters
2389 \param hHal - The handle returned by macOpen.
2390 \param pwParams - Pointer to the power parameters requested.
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08002391 \param forced - if true, not to be dropped silently in host, it must reach
2392 FW; It is added to avoid a race condition scenario where LIM hasn't deleted
2393 the session yet before power params gets sent to PMC
Jeff Johnson295189b2012-06-20 16:38:30 -07002394 \return eHalStatus
2395 ---------------------------------------------------------------------------*/
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08002396eHalStatus sme_SetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced);
Jeff Johnson295189b2012-06-20 16:38:30 -07002397
2398/* ---------------------------------------------------------------------------
2399 \fn sme_SetTxPerTracking
2400 \brief Set Tx PER tracking configuration parameters
2401 \param hHal - The handle returned by macOpen.
2402 \param pTxPerTrackingParam - Tx PER configuration parameters
2403 \return eHalStatus
2404 ---------------------------------------------------------------------------*/
2405eHalStatus sme_SetTxPerTracking (
2406 tHalHandle hHal,
2407 void (*pCallbackfn) (void *pCallbackContext),
2408 void *pCallbackContext,
2409 tpSirTxPerTrackingParam pTxPerTrackingParam);
2410
2411#ifdef WLAN_FEATURE_PACKET_FILTERING
2412/* ---------------------------------------------------------------------------
2413 \fn sme_ReceiveFilterSetFilter
2414 \brief API to set 8023 Multicast Address List
2415 \param hHal - The handle returned by macOpen.
2416 \param pMulticastAddrs - Pointer to the Multicast Address List
2417 \return eHalStatus
2418 ---------------------------------------------------------------------------*/
Amar Singhalf3a6e762013-02-19 15:06:50 -08002419eHalStatus sme_8023MulticastList(tHalHandle hHal, tANI_U8 sessionId, tpSirRcvFltMcAddrList pMulticastAddrs);
Jeff Johnson295189b2012-06-20 16:38:30 -07002420
2421/* ---------------------------------------------------------------------------
2422 \fn sme_ReceiveFilterSetFilter
2423 \brief API to set Receive Packet Filter
2424 \param hHal - The handle returned by macOpen.
2425 \param pRcvPktFilterCfg - Receive Packet Filter parameter
2426 \return eHalStatus
2427 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002428eHalStatus sme_ReceiveFilterSetFilter(tHalHandle hHal, tpSirRcvPktFilterCfgType pRcvPktFilterCfg,
2429 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002430
2431/* ---------------------------------------------------------------------------
2432 \fn sme_GetFilterMatchCount
2433 \brief API to get D0 PC Filter Match Count
2434 \param hHal - The handle returned by macOpen
2435 \param callbackRoutine - Callback routine invoked to receive Packet Coalescing Filter Match Count
2436 \param callbackContext - Cookie to be passed back during callback
2437 \return eHalStatus
2438 ---------------------------------------------------------------------------*/
2439eHalStatus sme_GetFilterMatchCount(tHalHandle hHal,
2440 FilterMatchCountCallback callbackRoutine,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002441 void *callbackContext,
2442 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002443
2444/* ---------------------------------------------------------------------------
2445 \fn sme_ReceiveFilterClearFilter
2446 \brief API to clear Receive Packet Filter
2447 \param hHal - The handle returned by macOpen.
2448 \param pRcvFltPktClearParam - Receive Packet Filter Clear parameter
2449 \return eHalStatus
2450 ---------------------------------------------------------------------------*/
2451eHalStatus sme_ReceiveFilterClearFilter(tHalHandle hHal,
Jeff Johnsone7245742012-09-05 17:12:55 -07002452 tpSirRcvFltPktClearParam pRcvFltPktClearParam,
2453 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002454#endif // WLAN_FEATURE_PACKET_FILTERING
2455/* ---------------------------------------------------------------------------
2456
2457 \fn sme_IsChannelValid
2458 \brief To check if the channel is valid for currently established domain
2459 This is a synchronous API.
2460
2461 \param hHal - The handle returned by macOpen.
2462 \param channel - channel to verify
2463
2464 \return TRUE/FALSE, TRUE if channel is valid
2465
2466 -------------------------------------------------------------------------------*/
2467tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2468
2469/* ---------------------------------------------------------------------------
2470 \fn sme_SetFreqBand
2471 \brief Used to set frequency band.
2472 \param hHal
2473 \eBand band value to be configured
2474 \- return eHalStatus
2475 -------------------------------------------------------------------------*/
2476eHalStatus sme_SetFreqBand(tHalHandle hHal, eCsrBand eBand);
2477
2478/* ---------------------------------------------------------------------------
2479 \fn sme_GetFreqBand
2480 \brief Used to get the current band settings.
2481 \param hHal
2482 \pBand pointer to hold the current band value
2483 \- return eHalStatus
2484 -------------------------------------------------------------------------*/
2485eHalStatus sme_GetFreqBand(tHalHandle hHal, eCsrBand *pBand);
2486
2487/* ---------------------------------------------------------------------------
2488
2489 \fn sme_SetTxPerTracking
2490 \brief Set Tx PER tracking configuration parameters
2491 \param hHal - The handle returned by macOpen.
2492 \param pTxPerTrackingParam - Tx PER configuration parameters
2493 \return eHalStatus
2494 ---------------------------------------------------------------------------*/
2495eHalStatus sme_SetTxPerTracking (
2496 tHalHandle hHal,
2497 void (*pCallbackfn) (void *pCallbackContext),
2498 void *pCallbackContext,
2499 tpSirTxPerTrackingParam pTxPerTrackingParam);
2500
2501#ifdef WLAN_FEATURE_GTK_OFFLOAD
2502/* ---------------------------------------------------------------------------
2503 \fn sme_SetGTKOffload
2504 \brief API to set GTK offload feature.
2505 \param hHal - The handle returned by macOpen.
2506 \param pRequest - Pointer to the GTK offload request.
2507 \return eHalStatus
2508 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002509eHalStatus sme_SetGTKOffload (tHalHandle hHal, tpSirGtkOffloadParams pRequest, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002510
2511/* ---------------------------------------------------------------------------
2512 \fn sme_GetGTKOffload
2513 \brief API to get GTK offload information.
2514 \param hHal - The handle returned by macOpen.
2515 \param pRequest - Pointer to the GTK offload response.
2516 \return eHalStatus
2517 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002518eHalStatus sme_GetGTKOffload (tHalHandle hHal, GTKOffloadGetInfoCallback callbackRoutine,
2519 void *callbackContext, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002520#endif // WLAN_FEATURE_GTK_OFFLOAD
2521
2522#ifdef WLAN_WAKEUP_EVENTS
2523eHalStatus sme_WakeReasonIndCallback (tHalHandle hHal, void* pMsg);
2524#endif // WLAN_WAKEUP_EVENTS
2525
2526/* ---------------------------------------------------------------------------
2527 \fn sme_SetTxPerTracking
2528 \brief Set Tx PER tracking configuration parameters
2529 \param hHal - The handle returned by macOpen.
2530 \param pTxPerTrackingParam - Tx PER configuration parameters
2531 \return eHalStatus
2532 ---------------------------------------------------------------------------*/
2533eHalStatus sme_SetTxPerTracking (
2534 tHalHandle hHal,
2535 void (*pCallbackfn) (void *pCallbackContext),
2536 void *pCallbackContext,
2537 tpSirTxPerTrackingParam pTxPerTrackingParam);
2538
2539
2540//return frequency for a particular channel
2541tANI_U16 sme_ChnToFreq(tANI_U8 chanNum);
2542
2543tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2544
2545#if defined WLAN_FEATURE_P2P_INTERNAL
2546
2547eHalStatus sme_p2pResetSession(tHalHandle hHal, tANI_U8 HDDSessionId);
2548
2549/* ---------------------------------------------------------------------------
2550 \fn sme_p2pFlushDeviceList
2551 \brief Remove cached P2P result from scan results
2552 \param hHal - The handle returned by macOpen.
2553 \param HDDSessionId - HDD's sessionId. Currently unused.
2554 \return eHalStatus
2555 ---------------------------------------------------------------------------*/
2556eHalStatus sme_p2pFlushDeviceList(tHalHandle hHal, tANI_U8 HDDSessionId);
2557
2558eHalStatus sme_p2pGetResultFilter(tHalHandle hHal, tANI_U8 HDDSessionId,
2559 tCsrScanResultFilter *pFilter);
2560
2561#endif //#if defined WLAN_FEATURE_P2P_INTERNAL
2562
2563/* ---------------------------------------------------------------------------
2564 \fn sme_SetMaxTxPower
2565 \brief Used to set the Maximum Transmit Power dynamically. Note: this
2566 setting will not persist over reboots
2567 \param hHal
2568 \param pBssid BSSID to set the power cap for
2569 \param pBssid pSelfMacAddress self MAC Address
2570 \param pBssid power to set in dB
2571 \- return eHalStatus
2572 -------------------------------------------------------------------------*/
2573eHalStatus sme_SetMaxTxPower(tHalHandle hHal, tSirMacAddr pBssid,
2574 tSirMacAddr pSelfMacAddress, v_S7_t dB);
2575
Jeff Johnson295189b2012-06-20 16:38:30 -07002576/* ---------------------------------------------------------------------------
Arif Hussaina5ebce02013-08-09 15:09:58 -07002577 \fn sme_SetMaxTxPowerPerBand
2578 \brief Used to set the Maximum Transmit Power for
2579 specific band dynamically. Note: this setting will not persist over reboots
2580 \param band
2581 \param power to set in dB
2582 \- return eHalStatus
2583 -------------------------------------------------------------------------*/
2584eHalStatus sme_SetMaxTxPowerPerBand(eCsrBand band, v_S7_t db);
2585
2586/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07002587
schang86c22c42013-03-13 18:41:24 -07002588 \fn sme_SetTxPower
2589
2590 \brief Set Transmit Power dynamically. Note: this setting will
2591 not persist over reboots.
2592
2593 \param hHal
2594 \param sessionId Target Session ID
2595 \param mW power to set in mW
2596 \- return eHalStatus
2597
2598 -------------------------------------------------------------------------------*/
2599eHalStatus sme_SetTxPower(tHalHandle hHal, v_U8_t sessionId, v_U8_t mW);
2600
2601/* ---------------------------------------------------------------------------
2602
Jeff Johnson295189b2012-06-20 16:38:30 -07002603 \fn sme_HideSSID
2604
2605 \brief Enable/Disables hidden SSID dynamically. Note: this setting will
2606 not persist over reboots.
2607
2608 \param hHal
2609 \param sessionId
2610 \param ssidHidden 0 - Broadcast SSID, 1 - Disable broadcast SSID
2611 \- return eHalStatus
2612
2613 -------------------------------------------------------------------------------*/
2614eHalStatus sme_HideSSID(tHalHandle hHal, v_U8_t sessionId, v_U8_t ssidHidden);
Jeff Johnson295189b2012-06-20 16:38:30 -07002615
2616/* ---------------------------------------------------------------------------
2617
2618 \fn sme_SetTmLevel
2619 \brief Set Thermal Mitigation Level to RIVA
2620 \param hHal - The handle returned by macOpen.
2621 \param newTMLevel - new Thermal Mitigation Level
2622 \param tmMode - Thermal Mitigation handle mode, default 0
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07002623 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07002624 ---------------------------------------------------------------------------*/
2625eHalStatus sme_SetTmLevel(tHalHandle hHal, v_U16_t newTMLevel, v_U16_t tmMode);
2626
2627/*---------------------------------------------------------------------------
2628
2629 \brief sme_featureCapsExchange() - SME interface to exchange capabilities between
2630 Host and FW.
2631
2632 \param hHal - HAL handle for device
2633
2634 \return NONE
2635
2636---------------------------------------------------------------------------*/
2637void sme_featureCapsExchange(tHalHandle hHal);
2638
Jeff Johnsond13512a2012-07-17 11:42:19 -07002639/*---------------------------------------------------------------------------
2640
Yathish9f22e662012-12-10 14:21:35 -08002641 \brief sme_disableActiveModeOffload() - SME interface to disable Active mode Offload capabilitu
2642 between in Host.
2643
2644 \param hHal - HAL handle for device
2645
2646 \return NONE
2647
2648---------------------------------------------------------------------------*/
2649void sme_disableFeatureCapablity(tANI_U8 feature_index);
2650
2651/*---------------------------------------------------------------------------
2652
Jeff Johnsond13512a2012-07-17 11:42:19 -07002653 \brief sme_GetDefaultCountryCodeFrmNv() - SME interface to get the default
2654 country code
2655 Host and FW.
2656
2657 \param hHal - HAL handle for device
2658 \param pCountry - pointer to country code
2659
Jeff Johnsonfeddb2d2012-12-10 14:41:22 -08002660 \return Success or failure
Jeff Johnsond13512a2012-07-17 11:42:19 -07002661
2662 ---------------------------------------------------------------------------*/
2663eHalStatus sme_GetDefaultCountryCodeFrmNv(tHalHandle hHal, tANI_U8 *pCountry);
2664
2665/*---------------------------------------------------------------------------
2666
2667 \brief sme_GetCurrentCountryCode() - SME interface to get the current operating
2668 country code.
2669
2670 \param hHal - HAL handle for device
2671 \param pCountry - pointer to country code
2672
2673 \return Success or failure
2674
2675 ---------------------------------------------------------------------------*/
2676eHalStatus sme_GetCurrentCountryCode(tHalHandle hHal, tANI_U8 *pCountry);
2677
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002678/* ---------------------------------------------------------------------------
2679 \fn sme_transportDebug
2680 \brief Dynamically monitoring Transport channels
2681 Private IOCTL will querry transport channel status if driver loaded
schang6295e542013-03-12 15:31:23 -07002682 \param hHal Upper MAC context
Jeff Johnsonb88db982012-12-10 13:34:59 -08002683 \param displaySnapshot Display transport channel snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002684 \param toggleStallDetect Enable stall detect feature
2685 This feature will take effect to data performance
2686 Not integrate till fully verification
2687 \- return NONE
2688 -------------------------------------------------------------------------*/
schang6295e542013-03-12 15:31:23 -07002689void sme_transportDebug(tHalHandle hHal, v_BOOL_t displaySnapshot, v_BOOL_t toggleStallDetect);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002690
Kiran4a17ebe2013-01-31 10:43:43 -08002691/* ---------------------------------------------------------------------------
2692 \fn sme_ResetPowerValuesFor5G
2693 \brief Reset the power values for 5G band with NV power values.
2694 \param hHal - HAL handle for device
2695 \- return NONE
2696 -------------------------------------------------------------------------*/
2697void sme_ResetPowerValuesFor5G (tHalHandle hHal);
2698
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002699#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002700/* ---------------------------------------------------------------------------
2701 \fn sme_UpdateRoamPrefer5GHz
2702 \brief enable/disable Roam prefer 5G runtime option
2703 This function is called through dynamic setConfig callback function
2704 to configure the Roam prefer 5G runtime option
2705 \param hHal - HAL handle for device
2706 \param nRoamPrefer5GHz Enable/Disable Roam prefer 5G runtime option
2707 \- return Success or failure
2708 -------------------------------------------------------------------------*/
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002709eHalStatus sme_UpdateRoamPrefer5GHz(tHalHandle hHal, v_BOOL_t nRoamPrefer5GHz);
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002710
2711/* ---------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002712 \fn sme_setRoamIntraBand
2713 \brief enable/disable Intra band roaming
2714 This function is called through dynamic setConfig callback function
2715 to configure the intra band roaming
2716 \param hHal - HAL handle for device
2717 \param nRoamIntraBand Enable/Disable Intra band roaming
2718 \- return Success or failure
2719 -------------------------------------------------------------------------*/
2720eHalStatus sme_setRoamIntraBand(tHalHandle hHal, const v_BOOL_t nRoamIntraBand);
2721
2722/* ---------------------------------------------------------------------------
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002723 \fn sme_UpdateRoamScanNProbes
2724 \brief function to update roam scan N probes
2725 This function is called through dynamic setConfig callback function
2726 to update roam scan N probes
2727 \param hHal - HAL handle for device
2728 \param nProbes number of probe requests to be sent out
2729 \- return Success or failure
2730 -------------------------------------------------------------------------*/
2731eHalStatus sme_UpdateRoamScanNProbes(tHalHandle hHal, const v_U8_t nProbes);
2732
2733/* ---------------------------------------------------------------------------
2734 \fn sme_UpdateRoamScanHomeAwayTime
2735 \brief function to update roam scan Home away time
2736 This function is called through dynamic setConfig callback function
2737 to update roam scan home away time
2738 \param hHal - HAL handle for device
2739 \param nRoamScanAwayTime Scan home away time
2740 \- return Success or failure
2741 -------------------------------------------------------------------------*/
Srinivas Girigowda6cf0b822013-06-27 14:00:20 -07002742eHalStatus sme_UpdateRoamScanHomeAwayTime(tHalHandle hHal,
2743 const v_U16_t nRoamScanHomeAwayTime,
2744 const eAniBoolean bSendOffloadCmd);
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002745
2746/* ---------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002747 \fn sme_getRoamIntraBand
2748 \brief get Intra band roaming
2749 \param hHal - HAL handle for device
2750 \- return Success or failure
2751 -------------------------------------------------------------------------*/
2752v_BOOL_t sme_getRoamIntraBand(tHalHandle hHal);
2753
2754/* ---------------------------------------------------------------------------
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002755 \fn sme_getRoamScanNProbes
2756 \brief get N Probes
2757 \param hHal - HAL handle for device
2758 \- return Success or failure
2759 -------------------------------------------------------------------------*/
2760v_U8_t sme_getRoamScanNProbes(tHalHandle hHal);
2761
2762/* ---------------------------------------------------------------------------
2763 \fn sme_getRoamScanHomeAwayTime
2764 \brief get Roam scan home away time
2765 \param hHal - HAL handle for device
2766 \- return Success or failure
2767 -------------------------------------------------------------------------*/
2768v_U16_t sme_getRoamScanHomeAwayTime(tHalHandle hHal);
2769
2770/* ---------------------------------------------------------------------------
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002771 \fn sme_UpdateImmediateRoamRssiDiff
2772 \brief Update nImmediateRoamRssiDiff
2773 This function is called through dynamic setConfig callback function
2774 to configure nImmediateRoamRssiDiff
2775 Usage: adb shell iwpriv wlan0 setConfig gImmediateRoamRssiDiff=[0 .. 125]
2776 \param hHal - HAL handle for device
2777 \param nImmediateRoamRssiDiff - minimum rssi difference between potential
2778 candidate and current AP.
2779 \- return Success or failure
2780 -------------------------------------------------------------------------*/
2781
2782eHalStatus sme_UpdateImmediateRoamRssiDiff(tHalHandle hHal, v_U8_t nImmediateRoamRssiDiff);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002783
Srinivas Girigowdade697412013-02-14 16:31:48 -08002784/* ---------------------------------------------------------------------------
2785 \fn sme_UpdateRoamRssiDiff
2786 \brief Update RoamRssiDiff
2787 This function is called through dynamic setConfig callback function
2788 to configure RoamRssiDiff
2789 Usage: adb shell iwpriv wlan0 setConfig RoamRssiDiff=[0 .. 125]
2790 \param hHal - HAL handle for device
2791 \param RoamRssiDiff - minimum rssi difference between potential
2792 candidate and current AP.
2793 \- return Success or failure
2794 -------------------------------------------------------------------------*/
2795
2796eHalStatus sme_UpdateRoamRssiDiff(tHalHandle hHal, v_U8_t RoamRssiDiff);
2797
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002798/*--------------------------------------------------------------------------
2799 \brief sme_UpdateFastTransitionEnabled() - enable/disable Fast Transition support at runtime
2800 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2801 isFastTransitionEnabled.
2802 This is a synchronuous call
2803 \param hHal - The handle returned by macOpen.
2804 \return eHAL_STATUS_SUCCESS - SME update isFastTransitionEnabled config successfully.
2805 Other status means SME is failed to update isFastTransitionEnabled.
2806 \sa
2807 --------------------------------------------------------------------------*/
2808
2809eHalStatus sme_UpdateFastTransitionEnabled(tHalHandle hHal,
2810 v_BOOL_t isFastTransitionEnabled);
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002811
2812/* ---------------------------------------------------------------------------
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -07002813 \fn sme_UpdateWESMode
2814 \brief Update WESMode
2815 This function is called through dynamic setConfig callback function
2816 to configure isWESModeEnabled
2817 \param hHal - HAL handle for device
2818 \param isWESModeEnabled - Enable/Disable WES Mode
2819 \- return Success or failure
2820 -------------------------------------------------------------------------*/
2821eHalStatus sme_UpdateWESMode(tHalHandle hHal, v_BOOL_t isWESModeEnabled);
2822
2823/* ---------------------------------------------------------------------------
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002824 \fn sme_SetRoamScanControl
2825 \brief Set roam scan control
2826 This function is called to set roam scan control
2827 if roam scan control is set to 0, roaming scan cache is cleared
2828 any value other than 0 is treated as invalid value
2829 \param hHal - HAL handle for device
2830 \return eHAL_STATUS_SUCCESS - SME update config successfully.
2831 Other status means SME failure to update
2832 -------------------------------------------------------------------------*/
2833eHalStatus sme_SetRoamScanControl(tHalHandle hHal, v_BOOL_t roamScanControl);
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002834#endif /* (WLAN_FEATURE_VOWIFI_11R) || (FEATURE_WLAN_ESE) || (FEATURE_WLAN_LFR) */
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002835
2836#ifdef FEATURE_WLAN_LFR
2837/*--------------------------------------------------------------------------
2838 \brief sme_UpdateIsFastRoamIniFeatureEnabled() - enable/disable LFR support at runtime
Srinivas Girigowdade697412013-02-14 16:31:48 -08002839 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002840 isFastRoamIniFeatureEnabled.
2841 This is a synchronuous call
2842 \param hHal - The handle returned by macOpen.
2843 \return eHAL_STATUS_SUCCESS - SME update isFastRoamIniFeatureEnabled config successfully.
2844 Other status means SME is failed to update isFastRoamIniFeatureEnabled.
2845 \sa
2846 --------------------------------------------------------------------------*/
2847
Srinivas Girigowdade697412013-02-14 16:31:48 -08002848eHalStatus sme_UpdateIsFastRoamIniFeatureEnabled(tHalHandle hHal,
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002849 const v_BOOL_t isFastRoamIniFeatureEnabled);
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07002850
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08002851/*--------------------------------------------------------------------------
Mukul Sharma2a271632014-10-13 14:59:01 +05302852 \brief sme_ConfigFwrRoaming() - enable/disable LFR support at runtime
2853 When Supplicant issue enabled / disable fwr based roaming on the basis
2854 of the Bssid modification in network block ( e.g. AutoJoin mody N/W block)
2855
2856 This is a synchronous call
2857 \param hHal - The handle returned by macOpen.
2858 \return eHAL_STATUS_SUCCESS - SME (enabled/disabled) offload scan successfully.
2859 Other status means SME is failed to (enabled/disabled) offload scan.
2860 \sa
2861 --------------------------------------------------------------------------*/
2862
2863eHalStatus sme_ConfigFwrRoaming(tHalHandle hHal,
2864 const v_BOOL_t isFastRoamEnabled);
2865
2866/*--------------------------------------------------------------------------
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08002867 \brief sme_UpdateIsMAWCIniFeatureEnabled() -
2868 Enable/disable LFR MAWC support at runtime
2869 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2870 isMAWCIniFeatureEnabled.
2871 This is a synchronous call
2872 \param hHal - The handle returned by macOpen.
2873 \return eHAL_STATUS_SUCCESS - SME update MAWCEnabled config successfully.
2874 Other status means SME is failed to update MAWCEnabled.
2875 \sa
2876 --------------------------------------------------------------------------*/
2877eHalStatus sme_UpdateIsMAWCIniFeatureEnabled(tHalHandle hHal,
2878 const v_BOOL_t MAWCEnabled);
2879
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07002880
2881#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
2882/*--------------------------------------------------------------------------
2883 \brief sme_UpdateEnableFastRoamInConcurrency() - enable/disable LFR if Concurrent session exists
2884 This is a synchronuous call
2885 \param hHal - The handle returned by macOpen.
2886 \return eHAL_STATUS_SUCCESS
2887 Other status means SME is failed
2888 \sa
2889 --------------------------------------------------------------------------*/
2890
2891eHalStatus sme_UpdateEnableFastRoamInConcurrency(tHalHandle hHal,
2892 v_BOOL_t bFastRoamInConIniFeatureEnabled);
2893#endif
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002894#endif /* FEATURE_WLAN_LFR */
2895
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002896#ifdef FEATURE_WLAN_ESE
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002897/*--------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002898 \brief sme_UpdateIsEseFeatureEnabled() - enable/disable ESE support at runtime
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002899 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002900 isEseIniFeatureEnabled.
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002901 This is a synchronuous call
2902 \param hHal - The handle returned by macOpen.
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002903 \return eHAL_STATUS_SUCCESS - SME update isEseIniFeatureEnabled config successfully.
2904 Other status means SME is failed to update isEseIniFeatureEnabled.
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002905 \sa
2906 --------------------------------------------------------------------------*/
2907
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002908eHalStatus sme_UpdateIsEseFeatureEnabled(tHalHandle hHal,
2909 const v_BOOL_t isEseIniFeatureEnabled);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002910
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002911#endif /* FEATURE_WLAN_ESE */
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002912
2913/*--------------------------------------------------------------------------
2914 \brief sme_UpdateConfigFwRssiMonitoring() - enable/disable firmware RSSI Monitornig at runtime
2915 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2916 fEnableFwRssiMonitoring.
2917 This is a synchronuous call
2918 \param hHal - The handle returned by macOpen.
2919 \return eHAL_STATUS_SUCCESS - SME update fEnableFwRssiMonitoring config successfully.
2920 Other status means SME is failed to update
2921 \sa
2922 --------------------------------------------------------------------------*/
2923
2924eHalStatus sme_UpdateConfigFwRssiMonitoring(tHalHandle hHal,
2925 v_BOOL_t fEnableFwRssiMonitoring);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002926
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002927#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
Srinivas Girigowdade697412013-02-14 16:31:48 -08002928/*--------------------------------------------------------------------------
2929 \brief sme_setNeighborLookupRssiThreshold() - update neighbor lookup rssi threshold
2930 This is a synchronuous call
2931 \param hHal - The handle returned by macOpen.
2932 \return eHAL_STATUS_SUCCESS - SME update config successful.
2933 Other status means SME is failed to update
2934 \sa
2935 --------------------------------------------------------------------------*/
2936eHalStatus sme_setNeighborLookupRssiThreshold(tHalHandle hHal,
2937 v_U8_t neighborLookupRssiThreshold);
2938
2939/*--------------------------------------------------------------------------
2940 \brief sme_setNeighborReassocRssiThreshold() - update neighbor reassoc rssi threshold
2941 This is a synchronuous call
2942 \param hHal - The handle returned by macOpen.
2943 \return eHAL_STATUS_SUCCESS - SME update config successful.
2944 Other status means SME is failed to update
2945 \sa
2946 --------------------------------------------------------------------------*/
2947eHalStatus sme_setNeighborReassocRssiThreshold(tHalHandle hHal,
2948 v_U8_t neighborReassocRssiThreshold);
2949
2950/*--------------------------------------------------------------------------
2951 \brief sme_getNeighborLookupRssiThreshold() - get neighbor lookup rssi threshold
2952 This is a synchronuous call
2953 \param hHal - The handle returned by macOpen.
2954 \return eHAL_STATUS_SUCCESS - SME update config successful.
2955 Other status means SME is failed to update
2956 \sa
2957 --------------------------------------------------------------------------*/
2958v_U8_t sme_getNeighborLookupRssiThreshold(tHalHandle hHal);
2959
2960/*--------------------------------------------------------------------------
2961 \brief sme_setNeighborScanRefreshPeriod() - set neighbor scan results refresh period
2962 This is a synchronuous call
2963 \param hHal - The handle returned by macOpen.
2964 \return eHAL_STATUS_SUCCESS - SME update config successful.
2965 Other status means SME is failed to update
2966 \sa
2967 --------------------------------------------------------------------------*/
2968eHalStatus sme_setNeighborScanRefreshPeriod(tHalHandle hHal,
2969 v_U16_t neighborScanResultsRefreshPeriod);
2970
2971/*--------------------------------------------------------------------------
2972 \brief sme_getNeighborScanRefreshPeriod() - get neighbor scan results refresh period
2973 This is a synchronuous call
2974 \param hHal - The handle returned by macOpen.
2975 \return eHAL_STATUS_SUCCESS - SME update config successful.
2976 Other status means SME is failed to update
2977 \sa
2978 --------------------------------------------------------------------------*/
2979v_U16_t sme_getNeighborScanRefreshPeriod(tHalHandle hHal);
2980
2981/*--------------------------------------------------------------------------
2982 \brief sme_getEmptyScanRefreshPeriod() - get empty scan refresh period
2983 This is a synchronuous call
2984 \param hHal - The handle returned by macOpen.
2985 \return eHAL_STATUS_SUCCESS - SME update config successful.
2986 Other status means SME is failed to update
2987 \sa
2988 --------------------------------------------------------------------------*/
2989v_U16_t sme_getEmptyScanRefreshPeriod(tHalHandle hHal);
2990
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002991/* ---------------------------------------------------------------------------
2992 \fn sme_UpdateEmptyScanRefreshPeriod
2993 \brief Update nEmptyScanRefreshPeriod
2994 This function is called through dynamic setConfig callback function
2995 to configure nEmptyScanRefreshPeriod
2996 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
2997 \param hHal - HAL handle for device
2998 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
2999 \- return Success or failure
3000 -------------------------------------------------------------------------*/
3001eHalStatus sme_UpdateEmptyScanRefreshPeriod(tHalHandle hHal, v_U16_t nEmptyScanRefreshPeriod);
3002
3003/* ---------------------------------------------------------------------------
3004 \fn sme_setNeighborScanMinChanTime
3005 \brief Update nNeighborScanMinChanTime
3006 This function is called through dynamic setConfig callback function
3007 to configure gNeighborScanChannelMinTime
3008 Usage: adb shell iwpriv wlan0 setConfig gNeighborScanChannelMinTime=[0 .. 60]
3009 \param hHal - HAL handle for device
3010 \param nNeighborScanMinChanTime - Channel minimum dwell time
3011 \- return Success or failure
3012 -------------------------------------------------------------------------*/
3013eHalStatus sme_setNeighborScanMinChanTime(tHalHandle hHal, const v_U16_t nNeighborScanMinChanTime);
3014
3015/* ---------------------------------------------------------------------------
3016 \fn sme_setNeighborScanMaxChanTime
3017 \brief Update nNeighborScanMaxChanTime
3018 This function is called through dynamic setConfig callback function
3019 to configure gNeighborScanChannelMaxTime
3020 Usage: adb shell iwpriv wlan0 setConfig gNeighborScanChannelMaxTime=[0 .. 60]
3021 \param hHal - HAL handle for device
3022 \param nNeighborScanMinChanTime - Channel maximum dwell time
3023 \- return Success or failure
3024 -------------------------------------------------------------------------*/
3025eHalStatus sme_setNeighborScanMaxChanTime(tHalHandle hHal, const v_U16_t nNeighborScanMaxChanTime);
3026
3027/* ---------------------------------------------------------------------------
3028 \fn sme_getNeighborScanMinChanTime
3029 \brief get neighbor scan min channel time
3030 \param hHal - The handle returned by macOpen.
3031 \return v_U16_t - channel min time value
3032 -------------------------------------------------------------------------*/
3033v_U16_t sme_getNeighborScanMinChanTime(tHalHandle hHal);
3034
3035/* ---------------------------------------------------------------------------
3036 \fn sme_getNeighborScanMaxChanTime
3037 \brief get neighbor scan max channel time
3038 \param hHal - The handle returned by macOpen.
3039 \return v_U16_t - channel max time value
3040 -------------------------------------------------------------------------*/
3041v_U16_t sme_getNeighborScanMaxChanTime(tHalHandle hHal);
3042
3043/* ---------------------------------------------------------------------------
3044 \fn sme_setNeighborScanPeriod
3045 \brief Update nNeighborScanPeriod
3046 This function is called through dynamic setConfig callback function
3047 to configure nNeighborScanPeriod
3048 Usage: adb shell iwpriv wlan0 setConfig nNeighborScanPeriod=[0 .. 60]
3049 \param hHal - HAL handle for device
3050 \param nNeighborScanPeriod - neighbor scan period
3051 \- return Success or failure
3052 -------------------------------------------------------------------------*/
3053eHalStatus sme_setNeighborScanPeriod(tHalHandle hHal, const v_U16_t nNeighborScanPeriod);
3054
3055/* ---------------------------------------------------------------------------
3056 \fn sme_getNeighborScanPeriod
3057 \brief get neighbor scan period
3058 \param hHal - The handle returned by macOpen.
3059 \return v_U16_t - neighbor scan period
3060 -------------------------------------------------------------------------*/
3061v_U16_t sme_getNeighborScanPeriod(tHalHandle hHal);
3062
3063#endif
Srinivas Girigowdade697412013-02-14 16:31:48 -08003064
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003065#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdade697412013-02-14 16:31:48 -08003066/*--------------------------------------------------------------------------
3067 \brief sme_getRoamRssiDiff() - get Roam rssi diff
3068 This is a synchronuous call
3069 \param hHal - The handle returned by macOpen.
3070 \return eHAL_STATUS_SUCCESS - SME update config successful.
3071 Other status means SME is failed to update
3072 \sa
3073 --------------------------------------------------------------------------*/
3074v_U8_t sme_getRoamRssiDiff(tHalHandle hHal);
3075
3076/*--------------------------------------------------------------------------
3077 \brief sme_ChangeRoamScanChannelList() - Change roam scan channel list
3078 This is a synchronuous call
3079 \param hHal - The handle returned by macOpen.
3080 \return eHAL_STATUS_SUCCESS - SME update config successful.
3081 Other status means SME is failed to update
3082 \sa
3083 --------------------------------------------------------------------------*/
3084eHalStatus sme_ChangeRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
3085 tANI_U8 numChannels);
3086
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003087#ifdef FEATURE_WLAN_ESE_UPLOAD
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07003088/*--------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003089 \brief sme_SetEseRoamScanChannelList() - set ese roam scan channel list
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07003090 This is a synchronuous call
3091 \param hHal - The handle returned by macOpen.
3092 \return eHAL_STATUS_SUCCESS - SME update config successful.
3093 Other status means SME is failed to update
3094 \sa
3095 --------------------------------------------------------------------------*/
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003096eHalStatus sme_SetEseRoamScanChannelList(tHalHandle hHal,
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07003097 tANI_U8 *pChannelList,
3098 tANI_U8 numChannels);
3099#endif
3100
Srinivas Girigowdade697412013-02-14 16:31:48 -08003101/*--------------------------------------------------------------------------
Srinivas Girigowdade697412013-02-14 16:31:48 -08003102 \brief sme_getRoamScanChannelList() - get roam scan channel list
3103 This is a synchronuous call
3104 \param hHal - The handle returned by macOpen.
3105 \return eHAL_STATUS_SUCCESS - SME update config successful.
3106 Other status means SME is failed to update
3107 \sa
3108 --------------------------------------------------------------------------*/
3109eHalStatus sme_getRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
3110 tANI_U8 *pNumChannels);
3111
3112/*--------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003113 \brief sme_getIsEseFeatureEnabled() - get ESE feature enabled or not
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003114 This is a synchronuous call
3115 \param hHal - The handle returned by macOpen.
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003116 \return TRUE (1) - if the ESE feature is enabled
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003117 FALSE (0) - if feature is disabled (compile or runtime)
3118 \sa
3119 --------------------------------------------------------------------------*/
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003120tANI_BOOLEAN sme_getIsEseFeatureEnabled(tHalHandle hHal);
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003121
3122/*--------------------------------------------------------------------------
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -07003123 \brief sme_getWESMode() - getWES Mode
3124 This is a synchronous call
3125 \param hHal - The handle returned by macOpen.
3126 \return v_U8_t - WES Mode Enabled(1)/Disabled(0)
3127 \sa
3128 --------------------------------------------------------------------------*/
3129v_BOOL_t sme_GetWESMode(tHalHandle hHal);
3130
3131/*--------------------------------------------------------------------------
Srinivas Girigowda100eb322013-03-15 16:48:20 -07003132 \brief sme_GetRoamScanControl() - get scan control
3133 This is a synchronous call
3134 \param hHal - The handle returned by macOpen.
3135 \return v_BOOL_t - Enabled(1)/Disabled(0)
3136 \sa
3137 --------------------------------------------------------------------------*/
3138v_BOOL_t sme_GetRoamScanControl(tHalHandle hHal);
3139
3140/* ---------------------------------------------------------------------------
3141 \fn sme_UpdateEmptyScanRefreshPeriod
3142 \brief Update nnEmptyScanRefreshPeriod
3143 This function is called through dynamic setConfig callback function
3144 to configure nnEmptyScanRefreshPeriod
3145 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
3146 \param hHal - HAL handle for device
3147 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
3148 \- return Success or failure
3149 -------------------------------------------------------------------------*/
3150
3151/*--------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003152 \brief sme_getIsLfrFeatureEnabled() - get LFR feature enabled or not
3153 This is a synchronuous call
3154 \param hHal - The handle returned by macOpen.
3155 \return TRUE (1) - if the feature is enabled
3156 FALSE (0) - if feature is disabled (compile or runtime)
3157 \sa
3158 --------------------------------------------------------------------------*/
3159tANI_BOOLEAN sme_getIsLfrFeatureEnabled(tHalHandle hHal);
3160
3161/*--------------------------------------------------------------------------
3162 \brief sme_getIsFtFeatureEnabled() - get FT feature enabled or not
3163 This is a synchronuous call
3164 \param hHal - The handle returned by macOpen.
3165 \return TRUE (1) - if the feature is enabled
3166 FALSE (0) - if feature is disabled (compile or runtime)
3167 \sa
3168 --------------------------------------------------------------------------*/
3169tANI_BOOLEAN sme_getIsFtFeatureEnabled(tHalHandle hHal);
3170
Srinivas Girigowdade697412013-02-14 16:31:48 -08003171#endif
3172
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003173#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3174/*--------------------------------------------------------------------------
3175 \brief sme_UpdateRoamScanOffloadEnabled() - enable/disable roam scan offload feaure
3176 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
3177 gRoamScanOffloadEnabled.
3178 This is a synchronous call
3179 \param hHal - The handle returned by macOpen.
3180 \return eHAL_STATUS_SUCCESS - SME update config successfully.
3181 Other status means SME is failed to update.
3182 \sa
3183 --------------------------------------------------------------------------*/
3184
3185eHalStatus sme_UpdateRoamScanOffloadEnabled(tHalHandle hHal, v_BOOL_t nRoamScanOffloadEnabled);
3186#endif
3187
3188
Srinivas Girigowdade697412013-02-14 16:31:48 -08003189/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003190 \fn sme_IsFeatureSupportedByFW
Kiet Lam0f320422013-11-21 19:29:17 +05303191 \brief Check if a feature is enabled by FW
3192
3193 \param featEnumValue - Enumeration value of the feature to be checked.
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003194 A value from enum placeHolderInCapBitmap
3195
3196 \- return 1/0 (TRUE/FALSE)
3197 -------------------------------------------------------------------------*/
3198tANI_U8 sme_IsFeatureSupportedByFW(tANI_U8 featEnumValue);
Kiet Lam0f320422013-11-21 19:29:17 +05303199
3200/* ---------------------------------------------------------------------------
3201 \fn sme_IsFeatureSupportedByDriver
3202 \brief Check if a feature is enabled by driver
3203
3204 \param featEnumValue - Enumeration value of the feature to be checked.
3205 A value from enum placeHolderInCapBitmap
3206
3207 \- return 1/0 (TRUE/FALSE)
3208 -------------------------------------------------------------------------*/
3209tANI_U8 sme_IsFeatureSupportedByDriver(tANI_U8 featEnumValue);
3210
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003211#ifdef FEATURE_WLAN_TDLS
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05303212
3213/* ---------------------------------------------------------------------------
3214 \fn sme_SendTdlsLinkEstablishParams
3215 \brief API to send TDLS Link Establishment Parameters.
3216
3217 \param peerMac - peer's Mac Adress.
3218 \param tdlsLinkEstablishParams - TDLS Peer Link Establishment Parameters
3219 \- return VOS_STATUS_SUCCES
3220 -------------------------------------------------------------------------*/
3221
3222VOS_STATUS sme_SendTdlsLinkEstablishParams(tHalHandle hHal,
3223 tANI_U8 sessionId,
3224 tSirMacAddr peerMac,
3225 tCsrTdlsLinkEstablishParams *tdlsLinkEstablishParams);
3226
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003227/* ---------------------------------------------------------------------------
3228 \fn sme_SendTdlsMgmtFrame
3229 \brief API to send TDLS management frames.
3230
3231 \param peerMac - peer's Mac Adress.
3232 \param frame_type - Type of TDLS mgmt frame to be sent.
3233 \param dialog - dialog token used in the frame.
3234 \param status - status to be incuded in the frame.
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05303235 \param peerCapability - peerCapability to be incuded in the frame.
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003236 \param buf - additional IEs to be included
3237 \param len - lenght of additional Ies
Hoonki Leea34dd892013-02-05 22:56:02 -08003238 \param responder - Tdls request type
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003239 \- return VOS_STATUS_SUCCES
3240 -------------------------------------------------------------------------*/
3241VOS_STATUS sme_SendTdlsMgmtFrame(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05303242 tANI_U8 frame_type, tANI_U8 dialog, tANI_U16 status, tANI_U32 peerCapability, tANI_U8 *buf, tANI_U8 len, tANI_U8 responder);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003243/* ---------------------------------------------------------------------------
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003244 \fn sme_ChangeTdlsPeerSta
3245 \brief API to Update TDLS peer sta parameters.
3246
3247 \param peerMac - peer's Mac Adress.
3248 \param staParams - Peer Station Parameters.
3249 \- return VOS_STATUS_SUCCES
3250 -------------------------------------------------------------------------*/
3251VOS_STATUS sme_ChangeTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
3252 tCsrStaParams *pstaParams);
3253/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003254 \fn sme_AddTdlsPeerSta
3255 \brief API to Add TDLS peer sta entry.
3256
3257 \param peerMac - peer's Mac Adress.
3258 \- return VOS_STATUS_SUCCES
3259 -------------------------------------------------------------------------*/
3260VOS_STATUS sme_AddTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
3261/* ---------------------------------------------------------------------------
3262 \fn sme_DeleteTdlsPeerSta
3263 \brief API to Delete TDLS peer sta entry.
3264
3265 \param peerMac - peer's Mac Adress.
3266 \- return VOS_STATUS_SUCCES
3267 -------------------------------------------------------------------------*/
3268VOS_STATUS sme_DeleteTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
Gopichand Nakkala75e7b282013-03-15 18:37:13 -07003269/* ---------------------------------------------------------------------------
Gopichand Nakkalaccd3a382013-03-19 13:56:10 -07003270 \fn sme_SetTdlsPowerSaveProhibited
3271 \API to set/reset the isTdlsPowerSaveProhibited.
3272
3273 \- return void
3274 -------------------------------------------------------------------------*/
3275void sme_SetTdlsPowerSaveProhibited(tHalHandle hHal, v_BOOL_t val);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003276#endif
Gopichand Nakkalafe7246d2013-06-10 17:43:37 +05303277/* ---------------------------------------------------------------------------
3278 \fn sme_IsPmcBmps
3279 \brief API to Check if PMC state is BMPS.
3280
3281 \- return v_BOOL_t
3282 -------------------------------------------------------------------------*/
3283v_BOOL_t sme_IsPmcBmps(tHalHandle hHal);
3284
Tushnim Bhattacharyya9cdf6082013-04-21 16:33:30 -07003285eHalStatus sme_UpdateDfsSetting(tHalHandle hHal, tANI_U8 fUpdateEnableDFSChnlScan);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003286
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +05303287/* ---------------------------------------------------------------------------
3288 \fn sme_UpdateDFSRoamMode
3289 \brief Update DFS roam scan mode
3290 This function is called to configure allowDFSChannelRoam
3291 dynamically
3292 \param hHal - HAL handle for device
3293 \param allowDFSChannelRoam - DFS roaming scan mode
3294 mode 0 disable roam scan on DFS channels
3295 mode 1 enables roam scan (passive/active) on DFS channels
3296 \return eHAL_STATUS_SUCCESS - SME update DFS roaming scan config
3297 successfully.
3298 Other status means SME failed to update DFS roaming scan config.
3299 \sa
3300 -------------------------------------------------------------------------*/
3301eHalStatus sme_UpdateDFSRoamMode(tHalHandle hHal, tANI_U8 allowDFSChannelRoam);
3302
3303/* ---------------------------------------------------------------------------
3304 \fn sme_UpdateDFSScanMode
3305 \brief Update DFS scan mode
3306 This function is called to configure fEnableDFSChnlScan.
3307 \param hHal - HAL handle for device
3308 \param dfsScanMode - DFS scan mode
3309 mode 0 disable scan on DFS channels
3310 mode 1 enables passive scan on DFS channels
3311 mode 2 enables active scan on DFS channels for static list
3312 \return eHAL_STATUS_SUCCESS - SME update DFS roaming scan config
3313 successfully.
3314 Other status means SME failed to update DFS scan config.
3315 \sa
3316 -------------------------------------------------------------------------*/
3317eHalStatus sme_UpdateDFSScanMode(tHalHandle hHal, tANI_U8 dfsScanMode);
3318
3319/*--------------------------------------------------------------------------
3320 \brief sme_GetDFSScanMode() - get DFS scan mode
3321 \param hHal - The handle returned by macOpen.
3322 \return DFS scan mode
3323 mode 0 disable scan on DFS channels
3324 mode 1 enables passive scan on DFS channels
3325 mode 2 enables active scan on DFS channels for static list
3326 \sa
3327 --------------------------------------------------------------------------*/
3328v_U8_t sme_GetDFSScanMode(tHalHandle hHal);
3329
3330/* ---------------------------------------------------------------------------
3331 \fn sme_HandleDFSChanScan
3332 \brief Gets Valid channel list and updates scan control list according to
3333 dfsScanMode
3334 \param hHal - HAL handle for device
3335 \return eHAL_STATUS_FAILURE when failed to get valid channel list
3336 Otherwise eHAL_STATUS_SUCCESS -
3337 \sa
3338 -------------------------------------------------------------------------*/
3339eHalStatus sme_HandleDFSChanScan(tHalHandle hHal);
3340
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07003341/*
3342 * SME API to enable/disable WLAN driver initiated SSR
3343 */
3344void sme_UpdateEnableSSR(tHalHandle hHal, tANI_BOOLEAN enableSSR);
3345
Gopichand Nakkaladacbcb52013-04-18 16:41:54 +05303346/* ---------------------------------------------------------------------------
3347
3348 \fn sme_SetPhyMode
3349
3350 \brief Changes the PhyMode.
3351
3352 \param hHal - The handle returned by macOpen.
3353
3354 \param phyMode new phyMode which is to set
3355
3356 \return eHalStatus SUCCESS.
3357
3358 -------------------------------------------------------------------------------*/
3359eHalStatus sme_SetPhyMode(tHalHandle hHal, eCsrPhyMode phyMode);
3360
3361/* ---------------------------------------------------------------------------
3362
3363 \fn sme_GetPhyMode
3364
3365 \brief gets current PhyMode.
3366
3367 \param hHal - The handle returned by macOpen.
3368
3369 \return eHalStatus PhyMode
3370
3371 -------------------------------------------------------------------------------*/
3372eCsrPhyMode sme_GetPhyMode(tHalHandle hHal);
3373
Ravi Joshiaeb7d9e2013-05-02 12:28:14 -07003374/*
3375 * SME API to determine the channel bonding mode
3376 */
3377VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, tANI_U8 channel);
3378
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07003379#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3380/*--------------------------------------------------------------------------
3381 \brief sme_HandoffRequest() - a wrapper function to Request a handoff
3382 from CSR.
3383 This is a synchronous call
3384 \param hHal - The handle returned by macOpen
3385 \param pHandoffInfo - info provided by HDD with the handoff request (namely:
3386 BSSID, channel etc.)
3387 \return eHAL_STATUS_SUCCESS - SME passed the request to CSR successfully.
3388 Other status means SME is failed to send the request.
3389 \sa
3390 --------------------------------------------------------------------------*/
3391
3392eHalStatus sme_HandoffRequest(tHalHandle hHal, tCsrHandoffRequest *pHandoffInfo);
3393#endif
Sudhir Sattayappa Kohalli37620692013-08-05 14:02:26 -07003394/*--------------------------------------------------------------------------
3395 \brief sme_isSta_p2p_clientConnected() - a wrapper function to check if there
3396 is any connected session .
3397 This is a synchronous call
3398 \param hHal - The handle returned by macOpen
3399 \return VOS_STATUS - SME passed the request to CSR successfully.
3400 Other status means SME is failed to send the request.
3401 \sa
3402 --------------------------------------------------------------------------*/
Sudhir Sattayappa Kohallib1d8c3a2013-06-18 14:47:20 -07003403VOS_STATUS sme_isSta_p2p_clientConnected(tHalHandle hHal);
Leo Chang9056f462013-08-01 19:21:11 -07003404
Agarwal Ashish57e84372014-12-05 18:26:53 +05303405/*--------------------------------------------------------------------------
3406 \brief hdd_is_any_session_connected() - a wrapper function to check if there
3407 is any connected session .
3408 This is a synchronous call
3409 \param hHal - The handle returned by macOpen
3410 \return VOS_STATUS - SME passed the request to CSR successfully.
3411 Other status means SME is failed to send the request.
3412 \sa
3413 --------------------------------------------------------------------------*/
3414VOS_STATUS sme_is_any_session_connected(tHalHandle hHal);
3415
Leo Chang9056f462013-08-01 19:21:11 -07003416#ifdef FEATURE_WLAN_LPHB
3417/* ---------------------------------------------------------------------------
3418 \fn sme_LPHBConfigReq
3419 \API to make configuration LPHB within FW.
3420 \param hHal - The handle returned by macOpen
3421 \param lphdReq - LPHB request argument by client
3422 \param pCallbackfn - LPHB timeout notification callback function pointer
3423 \- return Configuration message posting status, SUCCESS or Fail
3424 -------------------------------------------------------------------------*/
3425eHalStatus sme_LPHBConfigReq(
3426 tHalHandle hHal,
3427 tSirLPHBReq *lphdReq,
3428 void (*pCallbackfn)(void *pAdapter, void *indParam));
3429#endif /* FEATURE_WLAN_LPHB */
Yue Mab9c86f42013-08-14 15:59:08 -07003430
3431/* ---------------------------------------------------------------------------
3432 \fn sme_AddPeriodicTxPtrn
3433 \brief API to Periodic TX Pattern Offload feature
3434 \param hHal - The handle returned by macOpen
3435 \param addPeriodicTxPtrnParams - Pointer to the add pattern structure
3436 \return eHalStatus
3437 ---------------------------------------------------------------------------*/
3438eHalStatus sme_AddPeriodicTxPtrn(tHalHandle hHal, tSirAddPeriodicTxPtrn
3439 *addPeriodicTxPtrnParams);
3440
3441/* ---------------------------------------------------------------------------
3442 \fn sme_DelPeriodicTxPtrn
3443 \brief API to Periodic TX Pattern Offload feature
3444 \param hHal - The handle returned by macOpen
3445 \param delPeriodicTxPtrnParams - Pointer to the deleting pattern structure
3446 \return eHalStatus
3447 ---------------------------------------------------------------------------*/
3448eHalStatus sme_DelPeriodicTxPtrn(tHalHandle hHal, tSirDelPeriodicTxPtrn
3449 *delPeriodicTxPtrnParams);
Sudhir Sattayappa Kohalli37620692013-08-05 14:02:26 -07003450/*--------------------------------------------------------------------------
3451 \brief sme_enable_disable_split_scan() - a wrapper function to set the split
3452 scan parameter.
3453 This is a synchronous call
3454 \param hHal - The handle returned by macOpen
3455 \return None.
3456 \sa
3457 --------------------------------------------------------------------------*/
3458void sme_enable_disable_split_scan (tHalHandle hHal, tANI_U8 nNumStaChan,
3459 tANI_U8 nNumP2PChan);
Madan Mohan Koyyalamudi48101412013-09-11 23:09:37 +05303460
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003461/* ---------------------------------------------------------------------------
3462 \fn sme_SendRateUpdateInd
3463 \brief API to Update rate
3464 \param hHal - The handle returned by macOpen
3465 \param rateUpdateParams - Pointer to rate update params
3466 \return eHalStatus
3467 ---------------------------------------------------------------------------*/
3468eHalStatus sme_SendRateUpdateInd(tHalHandle hHal, tSirRateUpdateInd *rateUpdateParams);
3469
Madan Mohan Koyyalamudi48101412013-09-11 23:09:37 +05303470/*
3471 * sme API to trigger fast BSS roam to a given BSSID independent of RSSI
3472 * triggers
3473 * return status
3474*/
3475eHalStatus smeIssueFastRoamNeighborAPEvent (tHalHandle hHal,
3476 tANI_U8 *bssid,
Mukul Sharma9e4e0f92015-02-13 18:45:20 +05303477 tSmeFastRoamTrigger fastRoamTrig,
3478 tANI_U8 channel);
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +05303479
3480eHalStatus sme_RoamDelPMKIDfromCache( tHalHandle hHal, tANI_U8 sessionId,
3481 tANI_U8 *pBSSId,
3482 tANI_BOOLEAN flush_cache );
Tushnim Bhattacharyyaad37df12013-10-02 12:01:33 -07003483
3484void smeGetCommandQStatus( tHalHandle hHal );
Rajeev79dbe4c2013-10-05 11:03:42 +05303485
3486#ifdef FEATURE_WLAN_BATCH_SCAN
3487/* ---------------------------------------------------------------------------
3488 \fn sme_SetBatchScanReq
3489 \brief API to set batch scan request in FW
3490 \param hHal - The handle returned by macOpen.
3491 \param pRequest - Pointer to the batch request.
3492 \param sessionId - session ID
3493 \param callbackRoutine - HDD callback which needs to be invoked after
3494 getting set batch scan response from FW
3495 \param callbackContext - pAdapter context
3496 \return eHalStatus
3497 ---------------------------------------------------------------------------*/
3498eHalStatus
3499sme_SetBatchScanReq
3500(
3501 tHalHandle hHal, tSirSetBatchScanReq *pRequest, tANI_U8 sessionId,
3502 void (*callbackRoutine) (void *callbackCtx, tSirSetBatchScanRsp *pRsp),
3503 void *callbackContext
3504);
3505
3506/* ---------------------------------------------------------------------------
3507 \fn sme_TriggerBatchScanResultInd
3508 \brief API to trigger batch scan result indications from from FW
3509 \param hHal - The handle returned by macOpen.
3510 \param pRequest - Pointer to get batch request.
3511 \param sessionId - session ID
3512 \param callbackRoutine - HDD callback which needs to be invoked after
3513 getting get batch scan response from FW
3514 \param callbackContext - pAdapter context
3515 \return eHalStatus
3516 ---------------------------------------------------------------------------*/
3517eHalStatus
3518sme_TriggerBatchScanResultInd
3519(
3520 tHalHandle hHal, tSirTriggerBatchScanResultInd *pRequest, tANI_U8 sessionId,
3521 void (*callbackRoutine) (void *callbackCtx, void *pRsp),
3522 void *callbackContext
3523);
3524
3525/* ---------------------------------------------------------------------------
3526 \fn sme_StopBatchScanInd
3527 \brief API to stop batch scan request in FW
3528 \param hHal - The handle returned by macOpen.
3529 \param pRequest - Pointer to stop batch indication
3530 \return eHalStatus
3531 ---------------------------------------------------------------------------*/
3532eHalStatus
3533sme_StopBatchScanInd
3534(
3535 tHalHandle hHal, tSirStopBatchScanInd *pInd, tANI_U8 sessionId
3536);
3537
3538#endif
Leo Chang0b0e45a2013-12-15 15:18:55 -08003539
3540#ifdef FEATURE_WLAN_CH_AVOID
3541/* ---------------------------------------------------------------------------
3542 \fn sme_AddChAvoidCallback
3543 \brief Used to plug in callback function
3544 Which notify channel may not be used with SAP or P2PGO mode.
3545 Notification come from FW.
3546 \param hHal
3547 \param pCallbackfn : callback function pointer should be plugged in
3548 \- return eHalStatus
3549 -------------------------------------------------------------------------*/
3550eHalStatus sme_AddChAvoidCallback
3551(
3552 tHalHandle hHal,
3553 void (*pCallbackfn)(void *pAdapter, void *indParam)
3554);
3555#endif /* FEATURE_WLAN_CH_AVOID */
Tushnim Bhattacharyyaed4d0c22014-01-30 11:56:44 -08003556eHalStatus sme_UpdateConnectDebug(tHalHandle hHal, tANI_U32 set_value);
Sushant Kaushike0d2cce2014-04-10 14:36:07 +05303557/* ---------------------------------------------------------------------------
3558 \fn sme_requestTypetoString
3559 \brief API to convert requestType enum values
3560 to string.
3561 ---------------------------------------------------------------------------*/
3562const char * sme_requestTypetoString(const v_U8_t requestType);
3563/* ---------------------------------------------------------------------------
3564 \fn sme_PmcStatetoString
3565 \brief API to convert PmcState enum values
3566 to string.
3567 ---------------------------------------------------------------------------*/
3568const char * sme_PmcStatetoString(const v_U8_t pmcState);
c_hpothu92367912014-05-01 15:18:17 +05303569
3570eHalStatus sme_getBcnMissRate(tHalHandle, tANI_U8, void *, void *);
3571
Agarwal Ashish5e414792014-06-08 15:25:23 +05303572tANI_BOOLEAN sme_Is11dCountrycode(tHalHandle hHal);
Atul Mittalc0f739f2014-07-31 13:47:47 +05303573
3574// tdlsoffchan
3575VOS_STATUS sme_SendTdlsChanSwitchReq(tHalHandle hHal,
3576 tANI_U8 sessionId,
3577 tSirMacAddr peerMac,
3578 tANI_S32 tdlsOffCh,
3579 tANI_S32 tdlsOffChBwOffset,
3580 tANI_U8 tdlsSwMode);
Abhishek Singh08aa7762014-12-16 13:59:03 +05303581eHalStatus sme_GetFwStats(tHalHandle hHal, tANI_U32 stats,
3582 void *pContext, tSirFWStatsCallback callback);
Ganesh Kondabattini8f6e3b32014-08-25 16:07:54 +05303583void sme_SetMiracastMode (tHalHandle hHal,tANI_U8 mode);
c_hpothuef45bc32014-09-11 10:10:18 +05303584
3585void sme_resetCoexEevent(tHalHandle hHal);
3586
Peng Xu117eab42014-09-25 13:33:27 +05303587tANI_U32 sme_GetChannelBondingMode5G(tHalHandle hHal);
3588tANI_U32 sme_GetChannelBondingMode24G(tHalHandle hHal);
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +05303589#ifdef WLAN_FEATURE_AP_HT40_24G
3590void sme_UpdateChannelBondingMode24G(tHalHandle hHal,
3591 tANI_U8 cbMode);
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05303592eHalStatus sme_SetHT2040Mode(tHalHandle hHal,
3593 tANI_U8 sessionId, tANI_U8 cbMode);
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +05303594#endif
Peng Xu117eab42014-09-25 13:33:27 +05303595
Agarwal Ashish738843c2014-09-25 12:27:56 +05303596void sme_disable_dfs_channel(tHalHandle hHal, bool disable_dfs);
3597
Srinivas Dasarib8fdd422014-11-27 10:44:20 +05303598/* HDD Callback function */
3599typedef void(*pEncryptMsgRSPCb)(void *pUserData, void *infoParam);
3600
3601eHalStatus sme_Encryptmsgsend (tHalHandle hHal,
3602 u8 *pCmd,
3603 int length,
3604 pEncryptMsgRSPCb encCB);
3605
Pradeep Reddy POTTETIf0569d72014-12-13 16:54:03 +05303606/* ---------------------------------------------------------------------------
3607 \fn sme_RegisterBtCoexTDLSCallback
3608 \brief Used to plug in callback function
3609 Which notify btcoex on or off.
3610 Notification come from FW.
3611 \param hHal
3612 \param pCallbackfn : callback function pointer should be plugged in
3613 \- return eHalStatus
3614 -------------------------------------------------------------------------*/
3615eHalStatus sme_RegisterBtCoexTDLSCallback
3616(
3617 tHalHandle hHal,
3618 void (*pCallbackfn)(void *pAdapter, int)
3619);
Srinivas Dasarib8fdd422014-11-27 10:44:20 +05303620
Padma, Santhosh Kumar98f271d2014-12-31 17:23:31 +05303621/* ---------------------------------------------------------------------------
Padma, Santhosh Kumar3b9657d2015-02-04 19:37:32 +05303622 \fn smeNeighborMiddleOfRoaming
Padma, Santhosh Kumar98f271d2014-12-31 17:23:31 +05303623
Padma, Santhosh Kumar3b9657d2015-02-04 19:37:32 +05303624 \brief This function is a wrapper to call csrNeighborMiddleOfRoaming
Padma, Santhosh Kumar98f271d2014-12-31 17:23:31 +05303625
3626 \param hHal - The handle returned by macOpen.
3627
3628 \return eANI_BOOLEAN_TRUE if reassoc in progress,
3629 eANI_BOOLEAN_FALSE otherwise
3630---------------------------------------------------------------------------*/
Padma, Santhosh Kumar3b9657d2015-02-04 19:37:32 +05303631tANI_BOOLEAN smeNeighborMiddleOfRoaming(tHalHandle hHal);
Padma, Santhosh Kumar98f271d2014-12-31 17:23:31 +05303632
Pradeep Reddy POTTETIe8bd41a2015-01-29 14:52:43 +05303633/* ---------------------------------------------------------------------------
3634
3635 \fn sme_IsTdlsOffChannelValid
3636 \brief To check if the channel is valid for currently established domain
3637 This is a synchronous API.
3638
3639 \param hHal - The handle returned by macOpen.
3640 \param channel - channel to verify
3641
3642 \return TRUE/FALSE, TRUE if channel is valid
3643
3644 -------------------------------------------------------------------------------*/
3645tANI_BOOLEAN sme_IsTdlsOffChannelValid(tHalHandle hHal, tANI_U8 channel);
3646
Mukul Sharma4be88422015-03-09 20:29:07 +05303647/* --------------------------------------------------------------------------
3648
3649 \fn sme_IsCoexScoIndicationSet
3650 \brief To check if the BTC module in fwr has sent the SCO
3651 indication to host or not
3652
3653 \param hHal - The handle returned by macOpen.
3654 \return TRUE - Sco call in progress FALSE- No SCO call in progress
3655
3656 --------------------------------------------------------------------------*/
3657tANI_BOOLEAN sme_IsCoexScoIndicationSet(tHalHandle hHal);
3658
Abhishek Singh01c73d12015-03-12 15:13:44 +05303659eHalStatus sme_SetMiracastVendorConfig(tHalHandle hHal,
3660 tANI_U32 iniNumBuffAdvert,
3661 tANI_U32 set_value);
3662
Mukul Sharma45063942015-04-01 20:07:59 +05303663void sme_SetDefDot11Mode(tHalHandle hHal);
Pradeep Reddy POTTETI31505892015-04-16 16:47:54 +05303664
3665/* ---------------------------------------------------------------------------
3666 \fn sme_SetTdls2040BSSCoexistence
3667 \brief API to enable or disable 20_40 BSS Coexistence IE in TDLS frames.
3668
3669 \param isEnabled - Enable or Disable.
3670 \- return VOS_STATUS_SUCCES
3671 -------------------------------------------------------------------------*/
3672eHalStatus sme_SetTdls2040BSSCoexistence(tHalHandle hHal, tANI_S32 isEnabled);
3673
Abhishek Singh41988ba2015-05-25 19:42:29 +05303674/* ---------------------------------------------------------------------------
3675 \fn sme_SetRtsCtsHtVht
3676 \brief API to to enable/disable RTS/CTS for different modes.
3677
3678 \param set_value - Bit mask value to enable RTS/CTS for different modes.
3679 \- return VOS_STATUS_SUCCES if INdication is posted to
3680 WDA else return eHAL_STATUS_FAILURE
3681 -------------------------------------------------------------------------*/
3682eHalStatus sme_SetRtsCtsHtVht(tHalHandle hHal, tANI_U32 set_value);
3683
3684
Jeff Johnson295189b2012-06-20 16:38:30 -07003685#endif //#if !defined( __SME_API_H )