blob: dc7dcc9aba0555ff0d1ecb5119532186bcc96879 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42#if !defined( __SME_API_H )
43#define __SME_API_H
44
45
46/**=========================================================================
47
48 \file smeApi.h
49
50 \brief prototype for SME APIs
51
52 Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
53
54 Qualcomm Confidential and Proprietary.
55
56 ========================================================================*/
57
58/* $Header$ */
59
60/*--------------------------------------------------------------------------
61 Include Files
62 ------------------------------------------------------------------------*/
63#include "ccmApi.h"
64#include "csrApi.h"
65#include "pmcApi.h"
66#include "vos_mq.h"
67#include "vos_lock.h"
68#include "halTypes.h"
69#include "sirApi.h"
70#include "btcApi.h"
71#include "vos_nvitem.h"
72#include "p2p_Api.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070073
Jeff Johnsone7245742012-09-05 17:12:55 -070074#ifdef FEATURE_OEM_DATA_SUPPORT
75#include "oemDataApi.h"
76#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070077
78#if defined WLAN_FEATURE_VOWIFI
79#include "smeRrmInternal.h"
80#endif
81
82/*--------------------------------------------------------------------------
83 Preprocessor definitions and constants
84 ------------------------------------------------------------------------*/
85
86#define SME_SUMMARY_STATS 1
87#define SME_GLOBAL_CLASSA_STATS 2
88#define SME_GLOBAL_CLASSB_STATS 4
89#define SME_GLOBAL_CLASSC_STATS 8
90#define SME_GLOBAL_CLASSD_STATS 16
91#define SME_PER_STA_STATS 32
92
93#define SME_INVALID_COUNTRY_CODE "XX"
94
95/*--------------------------------------------------------------------------
96 Type declarations
97 ------------------------------------------------------------------------*/
98typedef struct _smeConfigParams
99{
100 tCsrConfigParam csrConfig;
101#if defined WLAN_FEATURE_VOWIFI
102 tRrmConfigParam rrmConfig;
103#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700104#if defined FEATURE_WLAN_LFR
105 tANI_U8 isFastRoamIniFeatureEnabled;
106#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700107#if defined FEATURE_WLAN_CCX
108 tANI_U8 isCcxIniFeatureEnabled;
109#endif
110#if defined WLAN_FEATURE_P2P_INTERNAL
111 tP2PConfigParam p2pConfig;
112#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700113#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -0700114 tANI_U8 isFastTransitionEnabled;
Jeff Johnson43971f52012-07-17 12:26:56 -0700115 tANI_U8 RoamRssiDiff;
Jeff Johnson295189b2012-06-20 16:38:30 -0700116#endif
117} tSmeConfigParams, *tpSmeConfigParams;
118
119
120/*-------------------------------------------------------------------------
121 Function declarations and documenation
122 ------------------------------------------------------------------------*/
123
124/*--------------------------------------------------------------------------
125
126 \brief sme_Open() - Initialze all SME modules and put them at idle state
127
128 The function initializes each module inside SME, PMC, CCM, CSR, etc. . Upon
129 successfully return, all modules are at idle state ready to start.
130
131 smeOpen must be called before any other SME APIs can be involved.
132 smeOpen must be called after macOpen.
133
134 \param hHal - The handle returned by macOpen.
135
136 \return eHAL_STATUS_SUCCESS - SME is successfully initialized.
137
138 Other status means SME is failed to be initialized
139 \sa
140
141 --------------------------------------------------------------------------*/
142eHalStatus sme_Open(tHalHandle hHal);
143
144/*--------------------------------------------------------------------------
145
146 \brief sme_Close() - Release all SME modules and their resources.
147
148 The function release each module in SME, PMC, CCM, CSR, etc. . Upon
149 return, all modules are at closed state.
150
151 No SME APIs can be involved after sme_Close except sme_Open.
152 sme_Close must be called before macClose.
153
154 \param hHal - The handle returned by macOpen.
155
156 \return eHAL_STATUS_SUCCESS - SME is successfully close.
157
158 Other status means SME is failed to be closed but caller still cannot
159 call any other SME functions except smeOpen.
160 \sa
161
162 --------------------------------------------------------------------------*/
163eHalStatus sme_Close(tHalHandle hHal);
164
165/*--------------------------------------------------------------------------
166
167 \brief sme_Start() - Put all SME modules at ready state.
168
169 The function starts each module in SME, PMC, CCM, CSR, etc. . Upon
170 successfully return, all modules are ready to run.
171
172 \param hHal - The handle returned by macOpen.
173
174 \return eHAL_STATUS_SUCCESS - SME is ready.
175
176 Other status means SME is failed to start.
177 \sa
178
179 --------------------------------------------------------------------------*/
180eHalStatus sme_Start(tHalHandle hHal);
181
182/*--------------------------------------------------------------------------
183
184 \brief sme_Stop() - Stop all SME modules and put them at idle state
185
186 The function stops each module in SME, PMC, CCM, CSR, etc. . Upon
187 return, all modules are at idle state ready to start.
188
189
190 \param hHal - The handle returned by macOpen.
191
192 \param pmcFlag - The flag tells SME if we want to stop PMC or not
193
194 \return eHAL_STATUS_SUCCESS - SME is stopped.
195
196 Other status means SME is failed to stop but caller should still consider
197 SME is stopped.
198 \sa
199
200 --------------------------------------------------------------------------*/
201eHalStatus sme_Stop(tHalHandle hHal, tANI_BOOLEAN pmcFlag);
202
203
204/*--------------------------------------------------------------------------
205
206 \brief sme_OpenSession() - Open a session for scan/roam operation.
207
208 This is a synchronous API.
209
210
211 \param hHal - The handle returned by macOpen.
212 \param callback - A pointer to the function caller specifies for roam/connect status indication
213 \param pContext - The context passed with callback
214 \param pSelfMacAddr - Caller allocated memory filled with self MAC address (6 bytes)
215 \param pbSessionId - pointer to a caller allocated buffer for returned session ID
216
217 \return eHAL_STATUS_SUCCESS - session is opened. sessionId returned.
218
219 Other status means SME is failed to open the session.
220 eHAL_STATUS_RESOURCES - no more session available.
221 \sa
222
223 --------------------------------------------------------------------------*/
224eHalStatus sme_OpenSession(tHalHandle hHal, csrRoamCompleteCallback callback, void *pContext,
225 tANI_U8 *pSelfMacAddr, tANI_U8 *pbSessionId);
226
227
228/*--------------------------------------------------------------------------
229
230 \brief sme_CloseSession() - Open a session for scan/roam operation.
231
232 This is a synchronous API.
233
234
235 \param hHal - The handle returned by macOpen.
236
237 \param sessionId - A previous opened session's ID.
238
239 \return eHAL_STATUS_SUCCESS - session is closed.
240
241 Other status means SME is failed to open the session.
242 eHAL_STATUS_INVALID_PARAMETER - session is not opened.
243 \sa
244
245 --------------------------------------------------------------------------*/
246eHalStatus sme_CloseSession(tHalHandle hHal, tANI_U8 sessionId,
247 csrRoamSessionCloseCallback callback, void *pContext);
248
249
250
251/*--------------------------------------------------------------------------
252
253 \brief sme_UpdateConfig() - Change configurations for all SME moduels
254
255 The function updates some configuration for modules in SME, CCM, CSR, etc
256 during SMEs close -> open sequence.
257
258 Modules inside SME apply the new configuration at the next transaction.
259
260
261 \param hHal - The handle returned by macOpen.
262 \Param pSmeConfigParams - a pointer to a caller allocated object of
263 typedef struct _smeConfigParams.
264
265 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
266
267 Other status means SME is failed to update the config parameters.
268 \sa
269
270 --------------------------------------------------------------------------*/
271eHalStatus sme_UpdateConfig(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
272
273#ifdef FEATURE_WLAN_SCAN_PNO
274/*--------------------------------------------------------------------------
275
276 \brief sme_UpdateChannelConfig() - Update channel configuration in RIVA.
277
278 It is used at driver start up to inform RIVA of the default channel
279 configuration.
280
281 This is a synchronuous call
282
283 \param hHal - The handle returned by macOpen.
284
285 \return eHAL_STATUS_SUCCESS - SME update the channel config successfully.
286
287 Other status means SME is failed to update the channel config.
288 \sa
289
290 --------------------------------------------------------------------------*/
291eHalStatus sme_UpdateChannelConfig(tHalHandle hHal);
292
293#endif // FEATURE_WLAN_SCAN_PNLO
Jeff Johnson295189b2012-06-20 16:38:30 -0700294/*--------------------------------------------------------------------------
295
296 \brief sme_set11dinfo() - Set the 11d information about valid channels
297 and there power using information from nvRAM
298 This function is called only for AP.
299
300 This is a synchronuous call
301
302 \param hHal - The handle returned by macOpen.
303 \Param pSmeConfigParams - a pointer to a caller allocated object of
304 typedef struct _smeConfigParams.
305
306 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
307
308 Other status means SME is failed to update the config parameters.
309 \sa
310--------------------------------------------------------------------------*/
311
312eHalStatus sme_set11dinfo(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
313
314/*--------------------------------------------------------------------------
315
316 \brief sme_getSoftApDomain() - Get the current regulatory domain of softAp.
317
318 This is a synchronuous call
319
320 \param hHal - The handle returned by HostapdAdapter.
321 \Param v_REGDOMAIN_t - The current Regulatory Domain requested for SoftAp.
322
323 \return eHAL_STATUS_SUCCESS - SME successfully completed the request.
324
325 Other status means, failed to get the current regulatory domain.
326 \sa
327--------------------------------------------------------------------------*/
328
329eHalStatus sme_getSoftApDomain(tHalHandle hHal, v_REGDOMAIN_t *domainIdSoftAp);
330
331eHalStatus sme_setRegInfo(tHalHandle hHal, tANI_U8 *apCntryCode);
332
Jeff Johnson295189b2012-06-20 16:38:30 -0700333
334/* ---------------------------------------------------------------------------
335 \fn sme_ChangeConfigParams
336 \brief The SME API exposed for HDD to provide config params to SME during
337 SMEs stop -> start sequence.
338
339 If HDD changed the domain that will cause a reset. This function will
340 provide the new set of 11d information for the new domain. Currrently this
341 API provides info regarding 11d only at reset but we can extend this for
342 other params (PMC, QoS) which needs to be initialized again at reset.
343
344 This is a synchronuous call
345
346 \param hHal - The handle returned by macOpen.
347
348 \Param
349 pUpdateConfigParam - a pointer to a structure (tCsrUpdateConfigParam) that
350 currently provides 11d related information like Country code,
351 Regulatory domain, valid channel list, Tx power per channel, a
352 list with active/passive scan allowed per valid channel.
353
354 \return eHalStatus
355 ---------------------------------------------------------------------------*/
356eHalStatus sme_ChangeConfigParams(tHalHandle hHal,
357 tCsrUpdateConfigParam *pUpdateConfigParam);
358
359/*--------------------------------------------------------------------------
360
361 \brief sme_HDDReadyInd() - SME sends eWNI_SME_SYS_READY_IND to PE to inform that the NIC
362 is ready tio run.
363
364 The function is called by HDD at the end of initialization stage so PE/HAL can enable the NIC
365 to running state.
366
367
368 \param hHal - The handle returned by macOpen.
369
370 \return eHAL_STATUS_SUCCESS - eWNI_SME_SYS_READY_IND is sent to PE successfully.
371
372 Other status means SME failed to send the message to PE.
373 \sa
374
375 --------------------------------------------------------------------------*/
376eHalStatus sme_HDDReadyInd(tHalHandle hHal);
377
378
379/*--------------------------------------------------------------------------
380
381 \brief sme_ProcessMsg() - The main message processor for SME.
382
383 The function is called by a message dispatcher when to process a message
384 targeted for SME.
385
386
387 \param hHal - The handle returned by macOpen.
388 \param pMsg - A pointer to a caller allocated object of tSirMsgQ.
389
390 \return eHAL_STATUS_SUCCESS - SME successfully process the message.
391
392 Other status means SME failed to process the message.
393 \sa
394
395 --------------------------------------------------------------------------*/
396eHalStatus sme_ProcessMsg(tHalHandle hHal, vos_msg_t* pMsg);
397
398v_VOID_t sme_FreeMsg( tHalHandle hHal, vos_msg_t* pMsg );
399
400/* ---------------------------------------------------------------------------
401 \fn sme_ScanRequest
402 \brief a wrapper function to Request a 11d or full scan from CSR.
403 \param pScanRequestID - pointer to an object to get back the request ID
404 \param callback - a callback function that scan calls upon finish, will not
405 be called if csrScanRequest returns error
406 \param pContext - a pointer passed in for the callback
407 \return eHalStatus
408 ---------------------------------------------------------------------------*/
409eHalStatus sme_ScanRequest(tHalHandle hHal, tANI_U8 sessionId, tCsrScanRequest *,
410 tANI_U32 *pScanRequestID,
411 csrScanCompleteCallback callback, void *pContext);
412
413
414/* ---------------------------------------------------------------------------
415 \fn sme_ScanSetBGScanparams
416 \brief a wrapper function to request CSR to set BG scan params in PE
417 \param pScanReq - BG scan request structure
418 \return eHalStatus
419 ---------------------------------------------------------------------------*/
420eHalStatus sme_ScanSetBGScanparams(tHalHandle hHal, tANI_U8 sessionId, tCsrBGScanRequest *pScanReq);
421
422
423/* ---------------------------------------------------------------------------
424 \fn sme_ScanGetResult
425 \brief a wrapper function to request scan results from CSR.
426 \param pFilter - If pFilter is NULL, all cached results are returned
427 \param phResult - an object for the result.
428 \return eHalStatus
429 ---------------------------------------------------------------------------*/
430eHalStatus sme_ScanGetResult(tHalHandle hHal, tANI_U8 sessionId, tCsrScanResultFilter *pFilter,
431 tScanResultHandle *phResult);
432
433
434/* ---------------------------------------------------------------------------
435 \fn sme_ScanFlushResult
436 \brief a wrapper function to request CSR to clear scan results.
437 \return eHalStatus
438 ---------------------------------------------------------------------------*/
439eHalStatus sme_ScanFlushResult(tHalHandle hHal, tANI_U8 sessionId);
Madan Mohan Koyyalamudia3fcf142012-10-18 15:01:20 -0700440eHalStatus sme_ScanFlushP2PResult(tHalHandle hHal, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700441
442/* ---------------------------------------------------------------------------
443 \fn sme_ScanResultGetFirst
444 \brief a wrapper function to request CSR to returns the first element of
445 scan result.
446 \param hScanResult - returned from csrScanGetResult
447 \return tCsrScanResultInfo * - NULL if no result
448 ---------------------------------------------------------------------------*/
449tCsrScanResultInfo *sme_ScanResultGetFirst(tHalHandle,
450 tScanResultHandle hScanResult);
451
452/* ---------------------------------------------------------------------------
453 \fn sme_ScanResultGetNext
454 \brief a wrapper function to request CSR to returns the next element of
455 scan result. It can be called without calling csrScanResultGetFirst
456 first
457 \param hScanResult - returned from csrScanGetResult
458 \return Null if no result or reach the end
459 ---------------------------------------------------------------------------*/
460tCsrScanResultInfo *sme_ScanResultGetNext(tHalHandle,
461 tScanResultHandle hScanResult);
462
463/* ---------------------------------------------------------------------------
464 \fn sme_ScanResultPurge
465 \brief a wrapper function to request CSR to remove all items(tCsrScanResult)
466 in the list and free memory for each item
467 \param hScanResult - returned from csrScanGetResult. hScanResult is
468 considered gone by
469 calling this function and even before this function reutrns.
470 \return eHalStatus
471 ---------------------------------------------------------------------------*/
472eHalStatus sme_ScanResultPurge(tHalHandle hHal, tScanResultHandle hScanResult);
473
474/* ---------------------------------------------------------------------------
475 \fn sme_ScanGetPMKIDCandidateList
476 \brief a wrapper function to return the PMKID candidate list
477 \param pPmkidList - caller allocated buffer point to an array of
478 tPmkidCandidateInfo
479 \param pNumItems - pointer to a variable that has the number of
480 tPmkidCandidateInfo allocated when retruning, this is
481 either the number needed or number of items put into
482 pPmkidList
483 \return eHalStatus - when fail, it usually means the buffer allocated is not
484 big enough and pNumItems
485 has the number of tPmkidCandidateInfo.
486 \Note: pNumItems is a number of tPmkidCandidateInfo,
487 not sizeof(tPmkidCandidateInfo) * something
488 ---------------------------------------------------------------------------*/
489eHalStatus sme_ScanGetPMKIDCandidateList(tHalHandle hHal, tANI_U8 sessionId,
490 tPmkidCandidateInfo *pPmkidList,
491 tANI_U32 *pNumItems );
492
493
494/*----------------------------------------------------------------------------
495 \fn sme_RoamRegisterLinkQualityIndCallback
496
497 \brief
498 a wrapper function to allow HDD to register a callback handler with CSR for
499 link quality indications.
500
501 Only one callback may be registered at any time.
502 In order to deregister the callback, a NULL cback may be provided.
503
504 Registration happens in the task context of the caller.
505
506 \param callback - Call back being registered
507 \param pContext - user data
508
509 DEPENDENCIES: After CSR open
510
511 \return eHalStatus
512-----------------------------------------------------------------------------*/
513eHalStatus sme_RoamRegisterLinkQualityIndCallback(tHalHandle hHal, tANI_U8 sessionId,
514 csrRoamLinkQualityIndCallback callback,
515 void *pContext);
516
517
518/* ---------------------------------------------------------------------------
519 \fn sme_RoamConnect
520 \brief a wrapper function to request CSR to inititiate an association
521 \param sessionId - the sessionId returned by sme_OpenSession.
522 \param pProfile - can be NULL to join to any open ones
523 \param pRoamId - to get back the request ID
524 \return eHalStatus
525 ---------------------------------------------------------------------------*/
526eHalStatus sme_RoamConnect(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
527 tANI_U32 *pRoamId);
528
529/* ---------------------------------------------------------------------------
530 \fn sme_RoamReassoc
531 \brief a wrapper function to request CSR to inititiate a re-association
532 \param pProfile - can be NULL to join the currently connected AP. In that
533 case modProfileFields should carry the modified field(s) which could trigger
534 reassoc
535 \param modProfileFields - fields which are part of tCsrRoamConnectedProfile
536 that might need modification dynamically once STA is up & running and this
537 could trigger a reassoc
538 \param pRoamId - to get back the request ID
539 \return eHalStatus
540 -------------------------------------------------------------------------------*/
541eHalStatus sme_RoamReassoc(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
542 tCsrRoamModifyProfileFields modProfileFields,
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -0700543 tANI_U32 *pRoamId, v_BOOL_t fForce);
Jeff Johnson295189b2012-06-20 16:38:30 -0700544
545/* ---------------------------------------------------------------------------
546 \fn sme_RoamConnectToLastProfile
547 \brief a wrapper function to request CSR to disconnect and reconnect with
548 the same profile
549 \return eHalStatus. It returns fail if currently connected
550 ---------------------------------------------------------------------------*/
551eHalStatus sme_RoamConnectToLastProfile(tHalHandle hHal, tANI_U8 sessionId);
552
553/* ---------------------------------------------------------------------------
554 \fn sme_RoamDisconnect
555 \brief a wrapper function to request CSR to disconnect from a network
556 \param reason -- To indicate the reason for disconnecting. Currently, only
557 eCSR_DISCONNECT_REASON_MIC_ERROR is meanful.
558 \return eHalStatus
559 ---------------------------------------------------------------------------*/
560eHalStatus sme_RoamDisconnect(tHalHandle hHal, tANI_U8 sessionId, eCsrRoamDisconnectReason reason);
561
Jeff Johnson295189b2012-06-20 16:38:30 -0700562/* ---------------------------------------------------------------------------
563 \fn sme_RoamStopBss
564 \brief a wrapper function to request CSR to stop bss
565 \param sessionId - sessionId of SoftAP
566 \return eHalStatus
567 ---------------------------------------------------------------------------*/
568eHalStatus sme_RoamStopBss(tHalHandle hHal, tANI_U8 sessionId);
569
570/* ---------------------------------------------------------------------------
571 \fn sme_RoamGetAssociatedStas
572 \brief To probe the list of associated stations from various modules of CORE stack.
573 \This is an asynchronous API.
574 \param sessionId - sessionId of SoftAP
575 \param modId - Module from whom list of associtated stations is to be probed.
576 If an invalid module is passed then by default VOS_MODULE_ID_PE will be probed
577 \param pUsrContext - Opaque HDD context
578 \param pfnSapEventCallback - Sap event callback in HDD
579 \param pAssocBuf - Caller allocated memory to be filled with associatd stations info
580 \return eHalStatus
581 -------------------------------------------------------------------------------*/
582eHalStatus sme_RoamGetAssociatedStas(tHalHandle hHal, tANI_U8 sessionId,
583 VOS_MODULE_ID modId, void *pUsrContext,
584 void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf);
585
586/* ---------------------------------------------------------------------------
587 \fn sme_RoamDisconnectSta
588 \brief To disassociate a station. This is an asynchronous API.
589 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
590 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
591 -------------------------------------------------------------------------------*/
592eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pPeerMacAddr);
593
594/* ---------------------------------------------------------------------------
595 \fn sme_RoamDeauthSta
596 \brief To disassociate a station. This is an asynchronous API.
597 \param hHal - Global structure
598 \param sessionId - sessionId of SoftAP
599 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
600 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
601 -------------------------------------------------------------------------------*/
602eHalStatus sme_RoamDeauthSta(tHalHandle hHal, tANI_U8 sessionId,
603 tANI_U8 *pPeerMacAddr);
604
605/* ---------------------------------------------------------------------------
606 \fn sme_RoamTKIPCounterMeasures
607 \brief To start or stop TKIP counter measures. This is an asynchronous API.
608 \param sessionId - sessionId of SoftAP
609 \param bEnable - Flag to start/stop TKIP countermeasures
610 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
611 -------------------------------------------------------------------------------*/
612eHalStatus sme_RoamTKIPCounterMeasures(tHalHandle hHal, tANI_U8 sessionId, tANI_BOOLEAN bEnable);
613
614/* ---------------------------------------------------------------------------
615 \fn sme_RoamGetWpsSessionOverlap
616 \brief To get the WPS PBC session overlap information.
617 \This is an asynchronous API.
618 \param sessionId - sessionId of SoftAP
619 \param pUsrContext - Opaque HDD context
620 \param pfnSapEventCallback - Sap event callback in HDD
621 \return eHalStatus
622 -------------------------------------------------------------------------------*/
623eHalStatus sme_RoamGetWpsSessionOverlap(tHalHandle hHal, tANI_U8 sessionId,
624 void *pUsrContext, void *pfnSapEventCallback,
625 v_MACADDR_t pRemoveMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700626
627/* ---------------------------------------------------------------------------
628 \fn sme_RoamGetConnectState
629 \brief a wrapper function to request CSR to return the current connect state
630 of Roaming
631 \return eHalStatus
632 ---------------------------------------------------------------------------*/
633eHalStatus sme_RoamGetConnectState(tHalHandle hHal, tANI_U8 sessionId, eCsrConnectState *pState);
634
635/* ---------------------------------------------------------------------------
636 \fn sme_RoamGetConnectProfile
637 \brief a wrapper function to request CSR to return the current connect
638 profile. Caller must call csrRoamFreeConnectProfile after it is done
639 and before reuse for another csrRoamGetConnectProfile call.
640 \param pProfile - pointer to a caller allocated structure
641 tCsrRoamConnectedProfile
642 \return eHalStatus. Failure if not connected
643 ---------------------------------------------------------------------------*/
644eHalStatus sme_RoamGetConnectProfile(tHalHandle hHal, tANI_U8 sessionId,
645 tCsrRoamConnectedProfile *pProfile);
646
647/* ---------------------------------------------------------------------------
648 \fn sme_RoamFreeConnectProfile
649 \brief a wrapper function to request CSR to free and reinitialize the
650 profile returned previously by csrRoamGetConnectProfile.
651 \param pProfile - pointer to a caller allocated structure
652 tCsrRoamConnectedProfile
653 \return eHalStatus.
654 ---------------------------------------------------------------------------*/
655eHalStatus sme_RoamFreeConnectProfile(tHalHandle hHal,
656 tCsrRoamConnectedProfile *pProfile);
657
658/* ---------------------------------------------------------------------------
659 \fn sme_RoamSetPMKIDCache
660 \brief a wrapper function to request CSR to return the PMKID candidate list
661 \param pPMKIDCache - caller allocated buffer point to an array of
662 tPmkidCacheInfo
663 \param numItems - a variable that has the number of tPmkidCacheInfo
664 allocated when retruning, this is either the number needed
665 or number of items put into pPMKIDCache
666 \return eHalStatus - when fail, it usually means the buffer allocated is not
667 big enough and pNumItems has the number of
668 tPmkidCacheInfo.
669 \Note: pNumItems is a number of tPmkidCacheInfo,
670 not sizeof(tPmkidCacheInfo) * something
671 ---------------------------------------------------------------------------*/
672eHalStatus sme_RoamSetPMKIDCache( tHalHandle hHal, tANI_U8 sessionId, tPmkidCacheInfo *pPMKIDCache,
673 tANI_U32 numItems );
674
675/* ---------------------------------------------------------------------------
676 \fn sme_RoamGetSecurityReqIE
677 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE CSR
678 passes to PE to JOIN request or START_BSS request
679 This is a synchronuous call.
680 \param sessionId - returned by sme_OpenSession.
681 \param pLen - caller allocated memory that has the length of pBuf as input.
682 Upon returned, *pLen has the needed or IE length in pBuf.
683 \param pBuf - Caller allocated memory that contain the IE field, if any,
684 upon return
685 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
686 \return eHalStatus - when fail, it usually means the buffer allocated is not
687 big enough
688 ---------------------------------------------------------------------------*/
689eHalStatus sme_RoamGetSecurityReqIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
690 tANI_U8 *pBuf, eCsrSecurityType secType);
691
692/* ---------------------------------------------------------------------------
693 \fn sme_RoamGetSecurityRspIE
694 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE from
695 the beacon or probe rsp if connected
696 \param sessionId - returned by sme_OpenSession.
697 \param pLen - caller allocated memory that has the length of pBuf as input.
698 Upon returned, *pLen has the needed or IE length in pBuf.
699 \param pBuf - Caller allocated memory that contain the IE field, if any,
700 upon return
701 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
702 \return eHalStatus - when fail, it usually means the buffer allocated is not
703 big enough
704 ---------------------------------------------------------------------------*/
705eHalStatus sme_RoamGetSecurityRspIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
706 tANI_U8 *pBuf, eCsrSecurityType secType);
707
708
709/* ---------------------------------------------------------------------------
710 \fn sme_RoamGetNumPMKIDCache
711 \brief a wrapper function to request CSR to return number of PMKID cache
712 entries
713 \return tANI_U32 - the number of PMKID cache entries
714 ---------------------------------------------------------------------------*/
715tANI_U32 sme_RoamGetNumPMKIDCache(tHalHandle hHal, tANI_U8 sessionId);
716
717/* ---------------------------------------------------------------------------
718 \fn sme_RoamGetPMKIDCache
719 \brief a wrapper function to request CSR to return PMKID cache from CSR
720 \param pNum - caller allocated memory that has the space of the number of
721 pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
722 needed or actually number in tPmkidCacheInfo.
723 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if
724 any, upon return
725 \return eHalStatus - when fail, it usually means the buffer allocated is not
726 big enough
727 ---------------------------------------------------------------------------*/
728eHalStatus sme_RoamGetPMKIDCache(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pNum,
729 tPmkidCacheInfo *pPmkidCache);
730
731/* ---------------------------------------------------------------------------
732 \fn sme_GetConfigParam
733 \brief a wrapper function that HDD calls to get the global settings
734 currently maintained by CSR.
735 \param pParam - caller allocated memory
736 \return eHalStatus
737 ---------------------------------------------------------------------------*/
738eHalStatus sme_GetConfigParam(tHalHandle hHal, tSmeConfigParams *pParam);
739
740/* ---------------------------------------------------------------------------
741 \fn sme_GetStatistics
742 \brief a wrapper function that client calls to register a callback to get
743 different PHY level statistics from CSR.
744
745 \param requesterId - different client requesting for statistics, HDD, UMA/GAN etc
746 \param statsMask - The different category/categories of stats requester is looking for
747 The order in which you set the bits in the statsMask for requesting
748 different type of stats is:
749
750 eCsrSummaryStats = bit 0
751 eCsrGlobalClassAStats = bit 1
752 eCsrGlobalClassBStats = bit 2
753 eCsrGlobalClassCStats = bit 3
754 eCsrGlobalClassDStats = bit 4
755 eCsrPerStaStats = bit 5
756
757 \param callback - SME sends back the requested stats using the callback
758 \param periodicity - If requester needs periodic update, 0 means it's an one
759 time request
760 \param cache - If requester is happy with cached stats
761 \param staId - The station ID for which the stats is requested for
762 \param pContext - user context to be passed back along with the callback
763 \return eHalStatus
764 ---------------------------------------------------------------------------*/
765eHalStatus sme_GetStatistics(tHalHandle hHal, eCsrStatsRequesterType requesterId,
766 tANI_U32 statsMask,
767 tCsrStatsCallback callback,
768 tANI_U32 periodicity, tANI_BOOLEAN cache,
769 tANI_U8 staId, void *pContext);
770
771eHalStatus sme_GetRssi(tHalHandle hHal,
772 tCsrRssiCallback callback,
773 tANI_U8 staId, tCsrBssid bssId, void *pContext, void* pVosContext);
774
775/* ---------------------------------------------------------------------------
776 \fn sme_CfgSetInt
777 \brief a wrapper function that HDD calls to set parameters in CFG.
778 \param cfgId - Configuration Parameter ID (type) for STA.
779 \param ccmValue - The information related to Configuration Parameter ID
780 which needs to be saved in CFG
781 \param callback - To be registered by CSR with CCM. Once the CFG done with
782 saving the information in the database, it notifies CCM &
783 then the callback will be invoked to notify.
784 \param toBeSaved - To save the request for future reference
785 \return eHalStatus
786 ---------------------------------------------------------------------------*/
787eHalStatus sme_CfgSetInt(tHalHandle hHal, tANI_U32 cfgId, tANI_U32 ccmValue,
788 tCcmCfgSetCallback callback, eAniBoolean toBeSaved) ;
789
790/* ---------------------------------------------------------------------------
791 \fn sme_CfgSetStr
792 \brief a wrapper function that HDD calls to set parameters in CFG.
793 \param cfgId - Configuration Parameter ID (type) for STA.
794 \param pStr - Pointer to the byte array which carries the information needs
795 to be saved in CFG
796 \param length - Length of the data to be saved
797 \param callback - To be registered by CSR with CCM. Once the CFG done with
798 saving the information in the database, it notifies CCM &
799 then the callback will be invoked to notify.
800 \param toBeSaved - To save the request for future reference
801 \return eHalStatus
802 ---------------------------------------------------------------------------*/
803eHalStatus sme_CfgSetStr(tHalHandle hHal, tANI_U32 cfgId, tANI_U8 *pStr,
804 tANI_U32 length, tCcmCfgSetCallback callback,
805 eAniBoolean toBeSaved) ;
806
807
808/* ---------------------------------------------------------------------------
809 \fn sme_GetModifyProfileFields
810 \brief HDD or SME - QOS calls this function to get the current values of
811 connected profile fields, changing which can cause reassoc.
812 This function must be called after CFG is downloaded and STA is in connected
813 state. Also, make sure to call this function to get the current profile
814 fields before calling the reassoc. So that pModifyProfileFields will have
815 all the latest values plus the one(s) has been updated as part of reassoc
816 request.
817 \param pModifyProfileFields - pointer to the connected profile fields
818 changing which can cause reassoc
819
820 \return eHalStatus
821 -------------------------------------------------------------------------------*/
822eHalStatus sme_GetModifyProfileFields(tHalHandle hHal, tANI_U8 sessionId,
823 tCsrRoamModifyProfileFields * pModifyProfileFields);
824
825
826/*--------------------------------------------------------------------------
827 \fn sme_SetConfigPowerSave
828 \brief Wrapper fn to change power save configuration in SME (PMC) module.
829 For BMPS related configuration, this function also updates the CFG
830 and sends a message to FW to pick up the new values. Note: Calling
831 this function only updates the configuration and does not enable
832 the specified power save mode.
833 \param hHal - The handle returned by macOpen.
834 \param psMode - Power Saving mode being modified
835 \param pConfigParams - a pointer to a caller allocated object of type
836 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
837 \return eHalStatus
838 --------------------------------------------------------------------------*/
839eHalStatus sme_SetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
840 void *pConfigParams);
841
842/*--------------------------------------------------------------------------
843 \fn sme_GetConfigPowerSave
844 \brief Wrapper fn to retireve power save configuration in SME (PMC) module
845 \param hHal - The handle returned by macOpen.
846 \param psMode - Power Saving mode
847 \param pConfigParams - a pointer to a caller allocated object of type
848 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
849 \return eHalStatus
850 --------------------------------------------------------------------------*/
851eHalStatus sme_GetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
852 void *pConfigParams);
853
854/* ---------------------------------------------------------------------------
855 \fn sme_SignalPowerEvent
856 \brief Signals to PMC that a power event has occurred. Used for putting
857 the chip into deep sleep mode.
858 \param hHal - The handle returned by macOpen.
859 \param event - the event that has occurred
860 \return eHalStatus
861 ---------------------------------------------------------------------------*/
862extern eHalStatus sme_SignalPowerEvent (
863 tHalHandle hHal,
864 tPmcPowerEvent event);
865
866/* ---------------------------------------------------------------------------
867 \fn sme_EnablePowerSave
868 \brief Enables one of the power saving modes. This API does not cause a
869 device state change. This is purely a configuration API.
870 \param hHal - The handle returned by macOpen.
871 \param psMode - The power saving mode to enable.
872 \return eHalStatus
873 ---------------------------------------------------------------------------*/
874extern eHalStatus sme_EnablePowerSave (
875 tHalHandle hHal,
876 tPmcPowerSavingMode psMode);
877
878/* ---------------------------------------------------------------------------
879 \fn sme_DisablePowerSave
880 \brief Disables one of the power saving modes.Disabling does not imply
881 that device will be brought out of the current PS mode. This is
882 purely a configuration API.
883 \param hHal - The handle returned by macOpen.
884 \param psMode - The power saving mode to disable.
885 \return eHalStatus
886 ---------------------------------------------------------------------------*/
887extern eHalStatus sme_DisablePowerSave (
888 tHalHandle hHal,
889 tPmcPowerSavingMode psMode);
890
Madan Mohan Koyyalamudi69b34182013-01-16 08:51:40 +0530891 /* ---------------------------------------------------------------------------
892 \fn sme_SetHostPowerSave
893 \brief The BMPS logic is controlled by the User level Apps
894 \param hHal - The handle returned by macOpen.
895 \param psMode - The power saving mode to enable.
896 \return eHalStatus
897 ---------------------------------------------------------------------------*/
898extern eHalStatus sme_SetHostPowerSave (
899 tHalHandle hHal,
900 v_BOOL_t psMode);
901
Jeff Johnson295189b2012-06-20 16:38:30 -0700902/* ---------------------------------------------------------------------------
903 \fn sme_StartAutoBmpsTimer
904 \brief Starts a timer that periodically polls all the registered
905 module for entry into Bmps mode. This timer is started only if BMPS is
906 enabled and whenever the device is in full power.
907 \param hHal - The handle returned by macOpen.
908 \return eHalStatus
909 ---------------------------------------------------------------------------*/
910extern eHalStatus sme_StartAutoBmpsTimer ( tHalHandle hHal);
911
912/* ---------------------------------------------------------------------------
913 \fn sme_StopAutoBmpsTimer
914 \brief Stops the Auto BMPS Timer that was started using sme_startAutoBmpsTimer
915 Stopping the timer does not cause a device state change. Only the timer
916 is stopped. If "Full Power" is desired, use the sme_RequestFullPower API
917 \param hHal - The handle returned by macOpen.
918 \return eHalStatus
919 ---------------------------------------------------------------------------*/
920extern eHalStatus sme_StopAutoBmpsTimer ( tHalHandle hHal);
921
922/* ---------------------------------------------------------------------------
923 \fn sme_QueryPowerState
924 \brief Returns the current power state of the device.
925 \param hHal - The handle returned by macOpen.
926 \param pPowerState - pointer to location to return power state
927 \param pSwWlanSwitchState - ptr to location to return SW WLAN Switch state
928 \return eHalStatus
929 ---------------------------------------------------------------------------*/
930extern eHalStatus sme_QueryPowerState (
931 tHalHandle hHal,
932 tPmcPowerState *pPowerState,
933 tPmcSwitchState *pSwWlanSwitchState);
934
935/* ---------------------------------------------------------------------------
936 \fn sme_IsPowerSaveEnabled
937 \brief Checks if the device is able to enter a particular power save mode
938 This does not imply that the device is in a particular PS mode
939 \param hHal - The handle returned by macOpen.
940 \param psMode - the power saving mode
941 \return eHalStatus
942 ---------------------------------------------------------------------------*/
943extern tANI_BOOLEAN sme_IsPowerSaveEnabled(
944 tHalHandle hHal,
945 tPmcPowerSavingMode psMode);
946
947/* ---------------------------------------------------------------------------
948 \fn sme_RequestFullPower
949 \brief Request that the device be brought to full power state.
950 Note 1: If "fullPowerReason" specificied in this API is set to
951 eSME_FULL_PWR_NEEDED_BY_HDD, PMC will clear any "buffered wowl" requests
952 and also clear any "buffered BMPS requests by HDD". Assumption is that since
953 HDD is requesting full power, we need to undo any previous HDD requests for
954 BMPS (using sme_RequestBmps) or WoWL (using sme_EnterWoWL). If the reason is
955 specified anything other than above, the buffered requests for BMPS and WoWL
956 will not be cleared.
957 Note 2: Requesting full power (no matter what the fullPowerReason is) doesn't
958 disable the "auto bmps timer" (if it is enabled) or clear any "buffered uapsd
959 request".
960 Note 3: When the device finally enters Full Power PMC will start a timer
961 if any of the following holds true:
962 - Auto BMPS mode is enabled
963 - Uapsd request is pending
964 - HDD's request for BMPS is pending
965 - HDD's request for WoWL is pending
966 On timer expiry PMC will attempt to put the device in BMPS mode if following
967 (in addition to those listed above) holds true:
968 - Polling of all modules through the Power Save Check routine passes
969 - STA is associated to an access point
970 \param hHal - The handle returned by macOpen.
971 \param - callbackRoutine Callback routine invoked in case of success/failure
972 \param - callbackContext - Cookie to be passed back during callback
973 \param - fullPowerReason - Reason why this API is being invoked. SME needs to
974 distinguish between BAP and HDD requests
975 \return eHalStatus - status
976 eHAL_STATUS_SUCCESS - device brought to full power state
977 eHAL_STATUS_FAILURE - device cannot be brought to full power state
978 eHAL_STATUS_PMC_PENDING - device is being brought to full power state,
979 ---------------------------------------------------------------------------*/
980extern eHalStatus sme_RequestFullPower (
981 tHalHandle hHal,
982 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
983 void *callbackContext,
984 tRequestFullPowerReason fullPowerReason);
985
986/* ---------------------------------------------------------------------------
987 \fn sme_RequestBmps
988 \brief Request that the device be put in BMPS state. Request will be
989 accepted only if BMPS mode is enabled and power save check routine
990 passes. Only HDD should invoke this API.
991 \param hHal - The handle returned by macOpen.
992 \param - callbackRoutine Callback routine invoked in case of success/failure
993 \param - callbackContext - Cookie to be passed back during callback
994 \return eHalStatus
995 eHAL_STATUS_SUCCESS - device is in BMPS state
996 eHAL_STATUS_FAILURE - device cannot be brought to BMPS state
997 eHAL_STATUS_PMC_PENDING - device is being brought to BMPS state
998 ---------------------------------------------------------------------------*/
999extern eHalStatus sme_RequestBmps (
1000 tHalHandle hHal,
1001 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1002 void *callbackContext);
1003
1004/* ---------------------------------------------------------------------------
1005 \fn sme_SetDHCPTillPowerActiveFlag
1006 \brief Sets/Clears DHCP related flag in PMC to disable/enable auto BMPS
1007 entry by PMC
1008 \param hHal - The handle returned by macOpen.
1009 ---------------------------------------------------------------------------*/
1010void sme_SetDHCPTillPowerActiveFlag(tHalHandle hHal, tANI_U8 flag);
1011
1012
1013/* ---------------------------------------------------------------------------
1014 \fn sme_StartUapsd
1015 \brief Request that the device be put in UAPSD state. If the device is in
1016 Full Power it will be put in BMPS mode first and then into UAPSD
1017 mode.
1018 \param hHal - The handle returned by macOpen.
1019 \param - callbackRoutine Callback routine invoked in case of success/failure
1020 \param - callbackContext - Cookie to be passed back during callback
1021 eHAL_STATUS_SUCCESS - device is in UAPSD state
1022 eHAL_STATUS_FAILURE - device cannot be brought to UAPSD state
1023 eHAL_STATUS_PMC_PENDING - device is being brought to UAPSD state
1024 eHAL_STATUS_PMC_DISABLED - UAPSD is disabled or BMPS mode is disabled
1025 \return eHalStatus
1026 ---------------------------------------------------------------------------*/
1027extern eHalStatus sme_StartUapsd (
1028 tHalHandle hHal,
1029 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1030 void *callbackContext);
1031
1032/* ---------------------------------------------------------------------------
1033 \fn sme_StopUapsd
1034 \brief Request that the device be put out of UAPSD state. Device will be
1035 put in in BMPS state after stop UAPSD completes. Buffered requests for
1036 UAPSD will be cleared after this.
1037 \param hHal - The handle returned by macOpen.
1038 \return eHalStatus
1039 eHAL_STATUS_SUCCESS - device is put out of UAPSD and back in BMPS state
1040 eHAL_STATUS_FAILURE - device cannot be brought out of UAPSD state
1041 ---------------------------------------------------------------------------*/
1042extern eHalStatus sme_StopUapsd (tHalHandle hHal);
1043
1044/* ---------------------------------------------------------------------------
1045 \fn sme_RequestStandby
1046 \brief Request that the device be put in standby. It is HDD's responsibility
1047 to bring the chip to full power and do a discconnect before calling
1048 this API. Request for standby will be rejected if STA is associated
1049 to an AP.
1050 \param hHal - The handle returned by macOpen.
1051 \param - callbackRoutine Callback routine invoked in case of success/failure
1052 \param - callbackContext - Cookie to be passed back during callback
1053 \return eHalStatus
1054 eHAL_STATUS_SUCCESS - device is in Standby mode
1055 eHAL_STATUS_FAILURE - device cannot be put in standby mode
1056 eHAL_STATUS_PMC_PENDING - device is being put in standby mode
1057 ---------------------------------------------------------------------------*/
1058extern eHalStatus sme_RequestStandby (
1059 tHalHandle hHal,
1060 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1061 void *callbackContext);
1062
1063/* ---------------------------------------------------------------------------
1064 \fn sme_RegisterPowerSaveCheck
1065 \brief Register a power save check routine that is called whenever
1066 the device is about to enter one of the power save modes.
1067 \param hHal - The handle returned by macOpen.
1068 \param checkRoutine - Power save check routine to be registered
1069 \param callbackContext - Cookie to be passed back during callback
1070 \return eHalStatus
1071 eHAL_STATUS_SUCCESS - successfully registered
1072 eHAL_STATUS_FAILURE - not successfully registered
1073 ---------------------------------------------------------------------------*/
1074extern eHalStatus sme_RegisterPowerSaveCheck (
1075 tHalHandle hHal,
1076 tANI_BOOLEAN (*checkRoutine) (void *checkContext), void *checkContext);
1077
1078/* ---------------------------------------------------------------------------
1079 \fn sme_DeregisterPowerSaveCheck
1080 \brief Deregister a power save check routine
1081 \param hHal - The handle returned by macOpen.
1082 \param checkRoutine - Power save check routine to be deregistered
1083 \return eHalStatus
1084 eHAL_STATUS_SUCCESS - successfully deregistered
1085 eHAL_STATUS_FAILURE - not successfully deregistered
1086 ---------------------------------------------------------------------------*/
1087extern eHalStatus sme_DeregisterPowerSaveCheck (
1088 tHalHandle hHal,
1089 tANI_BOOLEAN (*checkRoutine) (void *checkContext));
1090
1091/* ---------------------------------------------------------------------------
1092 \fn sme_RegisterDeviceStateUpdateInd
1093 \brief Register a callback routine that is called whenever
1094 the device enters a new device state (Full Power, BMPS, UAPSD)
1095 \param hHal - The handle returned by macOpen.
1096 \param callbackRoutine - Callback routine to be registered
1097 \param callbackContext - Cookie to be passed back during callback
1098 \return eHalStatus
1099 eHAL_STATUS_SUCCESS - successfully registered
1100 eHAL_STATUS_FAILURE - not successfully registered
1101 ---------------------------------------------------------------------------*/
1102extern eHalStatus sme_RegisterDeviceStateUpdateInd (
1103 tHalHandle hHal,
1104 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState),
1105 void *callbackContext);
1106
1107/* ---------------------------------------------------------------------------
1108 \fn sme_DeregisterDeviceStateUpdateInd
1109 \brief Deregister a routine that was registered for device state changes
1110 \param hHal - The handle returned by macOpen.
1111 \param callbackRoutine - Callback routine to be deregistered
1112 \return eHalStatus
1113 eHAL_STATUS_SUCCESS - successfully deregistered
1114 eHAL_STATUS_FAILURE - not successfully deregistered
1115 ---------------------------------------------------------------------------*/
1116extern eHalStatus sme_DeregisterDeviceStateUpdateInd (
1117 tHalHandle hHal,
1118 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState));
1119
1120/* ---------------------------------------------------------------------------
1121 \fn sme_WowlAddBcastPattern
1122 \brief Add a pattern for Pattern Byte Matching in Wowl mode. Firmware will
1123 do a pattern match on these patterns when Wowl is enabled during BMPS
1124 mode.
1125 \param hHal - The handle returned by macOpen.
1126 \param pattern - Pattern to be added
1127 \return eHalStatus
1128 eHAL_STATUS_FAILURE Cannot add pattern
1129 eHAL_STATUS_SUCCESS Request accepted.
1130 ---------------------------------------------------------------------------*/
1131extern eHalStatus sme_WowlAddBcastPattern (
1132 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001133 tpSirWowlAddBcastPtrn pattern,
1134 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001135
1136/* ---------------------------------------------------------------------------
1137 \fn sme_WowlDelBcastPattern
1138 \brief Delete a pattern that was added for Pattern Byte Matching.
1139 \param hHal - The handle returned by macOpen.
1140 \param pattern - Pattern to be deleted
1141 \return eHalStatus
1142 eHAL_STATUS_FAILURE Cannot delete pattern
1143 eHAL_STATUS_SUCCESS Request accepted.
1144 ---------------------------------------------------------------------------*/
1145extern eHalStatus sme_WowlDelBcastPattern (
1146 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001147 tpSirWowlDelBcastPtrn pattern,
1148 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001149
1150/* ---------------------------------------------------------------------------
1151 \fn sme_EnterWowl
1152 \brief This is the API to request entry into WOWL mode.
1153 WoWLAN works on top of BMPS mode. If the device is not in BMPS mode,
1154 SME will will cache the information that WOWL has been requested and
1155 attempt to put the device in BMPS first. On entry into BMPS, SME will
1156 enter the WOWL mode.
1157 Note 1: After WoWL request is accepted, If module other than HDD requests
1158 full power BEFORE WoWL request is completed, PMC will buffer the WoWL request
1159 and attempt to put the chip into BMPS+WOWL based on a timer.
1160 Note 2: Buffered request for WoWL will be cleared immedisately AFTER "enter Wowl"
1161 completes or if HDD requests full power or if sme_ExitWoWL API is invoked.
1162 Note 3: Both UAPSD and WOWL work on top of BMPS. On entry into BMPS, SME
1163 will give priority to UAPSD and enable only UAPSD if both UAPSD and WOWL
1164 are required. Currently there is no requirement or use case to support UAPSD
1165 and WOWL at the same time.
1166 Note 4. Request for WoWL is rejected if there is a pending UAPSD request.
1167 Note 5. Request for WoWL is rejected if BMPS is disabled.
1168
1169 \param hHal - The handle returned by macOpen.
1170 \param enterWowlCallbackRoutine - Callback routine provided by HDD.
1171 Used for success/failure notification by SME
1172 \param enterWowlCallbackContext - A cookie passed by HDD, that is passed back to HDD
1173 at the time of callback.
1174 \param wakeReasonIndCB - Callback routine provided by HDD.
1175 Used for Wake Reason Indication by SME
1176 \param wakeReasonIndCBContext - A cookie passed by HDD, that is passed back to HDD
1177 at the time of callback.
1178 \return eHalStatus
1179 eHAL_STATUS_SUCCESS Device is already in WoWLAN mode
1180 eHAL_STATUS_FAILURE Device cannot enter WoWLAN mode.
1181 eHAL_STATUS_PMC_PENDING Request accepted. SME will enable WOWL when BMPS
1182 mode is entered.
1183 ---------------------------------------------------------------------------*/
1184extern eHalStatus sme_EnterWowl (
1185 tHalHandle hHal,
1186 void (*enterWowlCallbackRoutine) (void *callbackContext, eHalStatus status),
1187 void *enterWowlCallbackContext,
1188#ifdef WLAN_WAKEUP_EVENTS
1189 void (*wakeReasonIndCB) (void *callbackContext, tpSirWakeReasonInd pWakeReasonInd),
1190 void *wakeReasonIndCBContext,
1191#endif // WLAN_WAKEUP_EVENTS
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001192 tpSirSmeWowlEnterParams wowlEnterParams, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001193
1194/* ---------------------------------------------------------------------------
1195 \fn sme_ExitWowl
1196 \brief This is the SME API exposed to HDD to request exit from WoWLAN mode.
1197 SME will initiate exit from WoWLAN mode and device will be put in BMPS
1198 mode. Any Buffered request for WoWL will be cleared after this API.
1199 \param hHal - The handle returned by macOpen.
1200 \return eHalStatus
1201 eHAL_STATUS_FAILURE Device cannot exit WoWLAN mode. This can happen
1202 only if the previous "Enter WOWL" transaction has
1203 not even completed.
1204 eHAL_STATUS_SUCCESS Request accepted to exit WoWLAN mode.
1205 ---------------------------------------------------------------------------*/
1206extern eHalStatus sme_ExitWowl (tHalHandle hHal);
1207
1208/* ---------------------------------------------------------------------------
1209
1210 \fn sme_RoamSetKey
1211
1212 \brief To set encryption key. This function should be called only when connected
1213 This is an asynchronous API.
1214
1215 \param pSetKeyInfo - pointer to a caller allocated object of tCsrSetContextInfo
1216
1217 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1218
1219 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1220
1221 FAILURE or RESOURCES The API finished and failed.
1222
1223 -------------------------------------------------------------------------------*/
1224eHalStatus sme_RoamSetKey(tHalHandle, tANI_U8 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 *pRoamId);
1225
1226/* ---------------------------------------------------------------------------
1227
1228 \fn sme_RoamRemoveKey
1229
1230 \brief To set encryption key. This is an asynchronous API.
1231
1232 \param pRemoveKey - pointer to a caller allocated object of tCsrRoamRemoveKey
1233
1234 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1235
1236 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1237
1238 FAILURE or RESOURCES The API finished and failed.
1239
1240 -------------------------------------------------------------------------------*/
1241eHalStatus sme_RoamRemoveKey(tHalHandle, tANI_U8 sessionId, tCsrRoamRemoveKey *pRemoveKey, tANI_U32 *pRoamId);
1242
1243
1244/* ---------------------------------------------------------------------------
1245
1246 \fn sme_GetCountryCode
1247
1248 \brief To return the current country code. If no country code is applied, default country code is
1249 used to fill the buffer.
1250 If 11d supported is turned off, an error is return and the last applied/default country code is used.
1251 This is a synchronous API.
1252
1253 \param pBuf - pointer to a caller allocated buffer for returned country code.
1254
1255 \param pbLen For input, this parameter indicates how big is the buffer.
1256 Upon return, this parameter has the number of bytes for country. If pBuf
1257 doesn't have enough space, this function returns
1258 fail status and this parameter contains the number that is needed.
1259
1260 \return eHalStatus SUCCESS.
1261
1262 FAILURE or RESOURCES The API finished and failed.
1263
1264 -------------------------------------------------------------------------------*/
1265eHalStatus sme_GetCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U8 *pbLen);
1266
1267/* ---------------------------------------------------------------------------
1268
1269 \fn sme_SetCountryCode
1270
1271 \brief To change the current/default country code.
1272 If 11d supported is turned off, an error is return.
1273 This is a synchronous API.
1274
1275 \param pCountry - pointer to a caller allocated buffer for the country code.
1276
1277 \param pfRestartNeeded A pointer to caller allocated memory, upon successful return, it indicates
1278 whether a reset is required.
1279
1280 \return eHalStatus SUCCESS.
1281
1282 FAILURE or RESOURCES The API finished and failed.
1283
1284 -------------------------------------------------------------------------------*/
1285eHalStatus sme_SetCountryCode(tHalHandle hHal, tANI_U8 *pCountry, tANI_BOOLEAN *pfRestartNeeded);
1286
1287/* ---------------------------------------------------------------------------
1288 \fn sme_ResetCountryCodeInformation
1289 \brief this function is to reset the country code current being used back to EEPROM default
1290 this includes channel list and power setting. This is a synchronous API.
1291 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1292 a restart is needed to apply the change
1293 \return eHalStatus
1294 -------------------------------------------------------------------------------*/
1295eHalStatus sme_ResetCountryCodeInformation(tHalHandle hHal, tANI_BOOLEAN *pfRestartNeeded);
1296
1297/* ---------------------------------------------------------------------------
1298 \fn sme_GetSupportedCountryCode
1299 \brief this function is to get a list of the country code current being supported
1300 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return,
1301 this has the country code list. 3 bytes for each country code. This may be NULL if
1302 caller wants to know the needed byte count.
1303 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
1304 this contains the length of the data in pBuf. If pbuf is NULL, as input, *pbLen should be 0.
1305 \return eHalStatus
1306 -------------------------------------------------------------------------------*/
1307eHalStatus sme_GetSupportedCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U32 *pbLen);
1308
1309/* ---------------------------------------------------------------------------
1310 \fn sme_GetCurrentRegulatoryDomain
1311 \brief this function is to get the current regulatory domain. This is a synchronous API.
1312 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1313 SME. The function fails if 11d support is turned off.
1314 \param pDomain - Caller allocated buffer to return the current domain.
1315 \return eHalStatus SUCCESS.
1316
1317 FAILURE or RESOURCES The API finished and failed.
1318 -------------------------------------------------------------------------------*/
1319eHalStatus sme_GetCurrentRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t *pDomain);
1320
1321/* ---------------------------------------------------------------------------
1322 \fn sme_SetRegulatoryDomain
1323 \brief this function is to set the current regulatory domain.
1324 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1325 SME. This is a synchronous API.
1326 \param domainId - indicate the domain (defined in the driver) needs to set to.
1327 See v_REGDOMAIN_t for definition
1328 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1329 a restart is needed to apply the change
1330 \return eHalStatus
1331 -------------------------------------------------------------------------------*/
1332eHalStatus sme_SetRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t domainId, tANI_BOOLEAN *pfRestartNeeded);
1333
1334/* ---------------------------------------------------------------------------
1335
1336 \fn sme_GetRegulatoryDomainForCountry
1337
1338 \brief To return a regulatory domain base on a country code. This is a synchronous API.
1339
1340 \param pCountry - pointer to a caller allocated buffer for input country code.
1341
1342 \param pDomainId Upon successful return, it is the domain that country belongs to.
1343 If it is NULL, returning success means that the country code is known.
1344
1345 \return eHalStatus SUCCESS.
1346
1347 FAILURE or RESOURCES The API finished and failed.
1348
1349 -------------------------------------------------------------------------------*/
1350eHalStatus sme_GetRegulatoryDomainForCountry(tHalHandle hHal, tANI_U8 *pCountry, v_REGDOMAIN_t *pDomainId);
1351
1352
1353
1354/* ---------------------------------------------------------------------------
1355
1356 \fn sme_GetSupportedRegulatoryDomains
1357
1358 \brief To return a list of supported regulatory domains. This is a synchronous API.
1359
1360 \param pDomains - pointer to a caller allocated buffer for returned regulatory domains.
1361
1362 \param pNumDomains For input, this parameter indicates howm many domains pDomains can hold.
1363 Upon return, this parameter has the number for supported domains. If pDomains
1364 doesn't have enough space for all the supported domains, this function returns
1365 fail status and this parameter contains the number that is needed.
1366
1367 \return eHalStatus SUCCESS.
1368
1369 FAILURE or RESOURCES The API finished and failed.
1370
1371 -------------------------------------------------------------------------------*/
1372eHalStatus sme_GetSupportedRegulatoryDomains(tHalHandle hHal, v_REGDOMAIN_t *pDomains, tANI_U32 *pNumDomains);
1373
1374//some support functions
1375tANI_BOOLEAN sme_Is11dSupported(tHalHandle hHal);
1376tANI_BOOLEAN sme_Is11hSupported(tHalHandle hHal);
1377tANI_BOOLEAN sme_IsWmmSupported(tHalHandle hHal);
1378//Upper layer to get the list of the base channels to scan for passively 11d info from csr
1379eHalStatus sme_ScanGetBaseChannels( tHalHandle hHal, tCsrChannelInfo * pChannelInfo );
1380
1381typedef void ( *tSmeChangeCountryCallback)(void *pContext);
1382/* ---------------------------------------------------------------------------
1383
1384 \fn sme_ChangeCountryCode
1385
1386 \brief Change Country code from upperlayer during WLAN driver operation.
1387 This is a synchronous API.
1388
1389 \param hHal - The handle returned by macOpen.
1390
1391 \param pCountry New Country Code String
1392
1393 \return eHalStatus SUCCESS.
1394
1395 FAILURE or RESOURCES The API finished and failed.
1396
1397 -------------------------------------------------------------------------------*/
1398eHalStatus sme_ChangeCountryCode( tHalHandle hHal,
1399 tSmeChangeCountryCallback callback,
1400 tANI_U8 *pCountry,
1401 void *pContext,
1402 void* pVosContext );
1403
1404
1405/* ---------------------------------------------------------------------------
1406 \fn sme_BtcSignalBtEvent
1407 \brief API to signal Bluetooth (BT) event to the WLAN driver. Based on the
1408 BT event type and the current operating mode of Libra (full power,
1409 BMPS, UAPSD etc), appropriate Bluetooth Coexistence (BTC) strategy
1410 would be employed.
1411 \param hHal - The handle returned by macOpen.
1412 \param pBtcBtEvent - Pointer to a caller allocated object of type tSmeBtEvent
1413 Caller owns the memory and is responsible for freeing it.
1414 \return VOS_STATUS
1415 VOS_STATUS_E_FAILURE BT Event not passed to HAL. This can happen
1416 if driver has not yet been initialized or if BTC
1417 Events Layer has been disabled.
1418 VOS_STATUS_SUCCESS BT Event passed to HAL
1419 ---------------------------------------------------------------------------*/
1420VOS_STATUS sme_BtcSignalBtEvent (tHalHandle hHal, tpSmeBtEvent pBtcBtEvent);
1421
1422/* ---------------------------------------------------------------------------
1423 \fn sme_BtcSetConfig
1424 \brief API to change the current Bluetooth Coexistence (BTC) configuration
1425 This function should be invoked only after CFG download has completed.
1426 Calling it after sme_HDDReadyInd is recommended.
1427 \param hHal - The handle returned by macOpen.
1428 \param pSmeBtcConfig - Pointer to a caller allocated object of type
1429 tSmeBtcConfig. Caller owns the memory and is responsible
1430 for freeing it.
1431 \return VOS_STATUS
1432 VOS_STATUS_E_FAILURE Config not passed to HAL.
1433 VOS_STATUS_SUCCESS Config passed to HAL
1434 ---------------------------------------------------------------------------*/
1435VOS_STATUS sme_BtcSetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1436
1437/* ---------------------------------------------------------------------------
1438 \fn sme_BtcGetConfig
1439 \brief API to retrieve the current Bluetooth Coexistence (BTC) configuration
1440 \param hHal - The handle returned by macOpen.
1441 \param pSmeBtcConfig - Pointer to a caller allocated object of type tSmeBtcConfig.
1442 Caller owns the memory and is responsible for freeing it.
1443 \return VOS_STATUS
1444 VOS_STATUS_E_FAILURE - failure
1445 VOS_STATUS_SUCCESS success
1446 ---------------------------------------------------------------------------*/
1447VOS_STATUS sme_BtcGetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1448
1449/* ---------------------------------------------------------------------------
1450 \fn sme_SetCfgPrivacy
1451 \brief API to set configure privacy parameters
1452 \param hHal - The handle returned by macOpen.
1453 \param pProfile - Pointer CSR Roam profile.
1454 \param fPrivacy - This parameter indicates status of privacy
1455
1456 \return void
1457 ---------------------------------------------------------------------------*/
1458void sme_SetCfgPrivacy(tHalHandle hHal, tCsrRoamProfile *pProfile, tANI_BOOLEAN fPrivacy);
1459
1460#if defined WLAN_FEATURE_VOWIFI
1461/* ---------------------------------------------------------------------------
1462 \fn sme_NeighborReportRequest
1463 \brief API to request neighbor report.
1464 \param hHal - The handle returned by macOpen.
1465 \param pRrmNeighborReq - Pointer to a caller allocated object of type
1466 tRrmNeighborReq. Caller owns the memory and is responsible
1467 for freeing it.
1468 \return VOS_STATUS
1469 VOS_STATUS_E_FAILURE - failure
1470 VOS_STATUS_SUCCESS success
1471 ---------------------------------------------------------------------------*/
1472VOS_STATUS sme_NeighborReportRequest (tHalHandle hHal, tANI_U8 sessionId,
1473 tpRrmNeighborReq pRrmNeighborReq, tpRrmNeighborRspCallbackInfo callbackInfo);
1474#endif
1475
1476//The following are debug APIs to support direct read/write register/memory
1477//They are placed in SME because HW cannot be access when in LOW_POWER state
1478//AND not connected. The knowledge and synchronization is done in SME
1479
1480//sme_DbgReadRegister
1481//Caller needs to validate the input values
1482VOS_STATUS sme_DbgReadRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t *pRegValue);
1483
1484//sme_DbgWriteRegister
1485//Caller needs to validate the input values
1486VOS_STATUS sme_DbgWriteRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t regValue);
1487
1488//sme_DbgReadMemory
1489//Caller needs to validate the input values
1490//pBuf caller allocated buffer has the length of nLen
1491VOS_STATUS sme_DbgReadMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1492
1493//sme_DbgWriteMemory
1494//Caller needs to validate the input values
1495VOS_STATUS sme_DbgWriteMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1496
Jeff Johnson295189b2012-06-20 16:38:30 -07001497VOS_STATUS sme_GetWcnssWlanCompiledVersion(tHalHandle hHal,
1498 tSirVersionType *pVersion);
1499VOS_STATUS sme_GetWcnssWlanReportedVersion(tHalHandle hHal,
1500 tSirVersionType *pVersion);
1501VOS_STATUS sme_GetWcnssSoftwareVersion(tHalHandle hHal,
1502 tANI_U8 *pVersion,
1503 tANI_U32 versionBufferSize);
1504VOS_STATUS sme_GetWcnssHardwareVersion(tHalHandle hHal,
1505 tANI_U8 *pVersion,
1506 tANI_U32 versionBufferSize);
Jeff Johnson295189b2012-06-20 16:38:30 -07001507eHalStatus sme_RoamRegisterCallback(tHalHandle hHal,
1508 csrRoamCompleteCallback callback,
1509 void *pContext);
1510
1511#ifdef FEATURE_WLAN_WAPI
1512/* ---------------------------------------------------------------------------
1513 \fn sme_RoamSetBKIDCache
1514 \brief The SME API exposed to HDD to allow HDD to provde SME the BKID
1515 candidate list.
1516 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1517 it is opened (by calling halOpen).
1518 \param pBKIDCache - caller allocated buffer point to an array of tBkidCacheInfo
1519 \param numItems - a variable that has the number of tBkidCacheInfo allocated
1520 when retruning, this is the number of items put into pBKIDCache
1521 \return eHalStatus - when fail, it usually means the buffer allocated is not
1522 big enough and pNumItems has the number of tBkidCacheInfo.
1523 ---------------------------------------------------------------------------*/
1524eHalStatus sme_RoamSetBKIDCache( tHalHandle hHal, tANI_U32 sessionId, tBkidCacheInfo *pBKIDCache,
1525 tANI_U32 numItems );
1526
1527/* ---------------------------------------------------------------------------
1528 \fn sme_RoamGetBKIDCache
1529 \brief The SME API exposed to HDD to allow HDD to request SME to return its
1530 BKID cache.
1531 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1532 it is opened (by calling halOpen).
1533 \param pNum - caller allocated memory that has the space of the number of
1534 tBkidCacheInfo as input. Upon returned, *pNum has the needed number of entries
1535 in SME cache.
1536 \param pBkidCache - Caller allocated memory that contains BKID cache, if any,
1537 upon return
1538 \return eHalStatus - when fail, it usually means the buffer allocated is not
1539 big enough.
1540 ---------------------------------------------------------------------------*/
1541eHalStatus sme_RoamGetBKIDCache(tHalHandle hHal, tANI_U32 *pNum,
1542 tBkidCacheInfo *pBkidCache);
1543
1544/* ---------------------------------------------------------------------------
1545 \fn sme_RoamGetNumBKIDCache
1546 \brief The SME API exposed to HDD to allow HDD to request SME to return the
1547 number of BKID cache entries.
1548 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1549 it is opened (by calling halOpen).
1550 \return tANI_U32 - the number of BKID cache entries.
1551 ---------------------------------------------------------------------------*/
1552tANI_U32 sme_RoamGetNumBKIDCache(tHalHandle hHal, tANI_U32 sessionId);
1553
1554/* ---------------------------------------------------------------------------
1555 \fn sme_ScanGetBKIDCandidateList
1556 \brief a wrapper function to return the BKID candidate list
1557 \param pBkidList - caller allocated buffer point to an array of
1558 tBkidCandidateInfo
1559 \param pNumItems - pointer to a variable that has the number of
1560 tBkidCandidateInfo allocated when retruning, this is
1561 either the number needed or number of items put into
1562 pPmkidList
1563 \return eHalStatus - when fail, it usually means the buffer allocated is not
1564 big enough and pNumItems
1565 has the number of tBkidCandidateInfo.
1566 \Note: pNumItems is a number of tBkidCandidateInfo,
1567 not sizeof(tBkidCandidateInfo) * something
1568 ---------------------------------------------------------------------------*/
1569eHalStatus sme_ScanGetBKIDCandidateList(tHalHandle hHal, tANI_U32 sessionId,
1570 tBkidCandidateInfo *pBkidList,
1571 tANI_U32 *pNumItems );
1572#endif /* FEATURE_WLAN_WAPI */
1573
Jeff Johnsone7245742012-09-05 17:12:55 -07001574#ifdef FEATURE_OEM_DATA_SUPPORT
1575/********************************************************************************************
1576 Oem data related modifications
1577*********************************************************************************************/
1578/* ---------------------------------------------------------------------------
1579 \fn sme_OemDataReq
1580 \param sessionId - session id of session to be used for oem data req.
1581 \param pOemDataReqID - pointer to an object to get back the request ID
1582 \param callback - a callback function that is called upon finish
1583 \param pContext - a pointer passed in for the callback
1584 \return eHalStatus
1585 ---------------------------------------------------------------------------*/
1586eHalStatus sme_OemDataReq(tHalHandle hHal,
1587 tANI_U8 sessionId,
1588 tOemDataReqConfig *,
1589 tANI_U32 *pOemDataReqID,
1590 oemData_OemDataReqCompleteCallback callback,
1591 void *pContext);
1592
1593/* ---------------------------------------------------------------------------
1594 \fn sme_getOemDataRsp
1595 \param pOemDataRsp - A pointer to the response object
1596 \param pOemDataReqID - pointer to an object to get back the request ID
1597 \return eHalStatus
1598 ---------------------------------------------------------------------------*/
1599eHalStatus sme_getOemDataRsp(tHalHandle hHal,
1600 tOemDataRsp **pOemDataRsp);
1601
1602#endif /*FEATURE_OEM_DATA_SUPPORT*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001603
1604
Jeff Johnson295189b2012-06-20 16:38:30 -07001605
1606/* ---------------------------------------------------------------------------
1607
1608 \fn sme_RoamUpdateAPWPSIE
1609
1610 \brief To update AP's WPS IE. This function should be called after SME AP session is created
1611 This is an asynchronous API.
1612
1613 \param pAPWPSIES - pointer to a caller allocated object of tCsrRoamAPWPSIES
1614
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001615 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
Jeff Johnson295189b2012-06-20 16:38:30 -07001616
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001617 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001618
1619 -------------------------------------------------------------------------------*/
1620
1621eHalStatus sme_RoamUpdateAPWPSIE(tHalHandle, tANI_U8 sessionId, tSirAPWPSIEs *pAPWPSIES);
1622/* ---------------------------------------------------------------------------
1623
1624 \fn sme_RoamUpdateAPWPARSNIEs
1625
1626 \brief To update AP's WPA/RSN IEs. This function should be called after SME AP session is created
1627 This is an asynchronous API.
1628
1629 \param pAPSirRSNie - pointer to a caller allocated object of tSirRSNie with WPS/RSN IEs
1630
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001631 \return eHalStatus SUCCESS
Jeff Johnson295189b2012-06-20 16:38:30 -07001632
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001633 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001634
1635 -------------------------------------------------------------------------------*/
1636eHalStatus sme_RoamUpdateAPWPARSNIEs(tHalHandle hHal, tANI_U8 sessionId, tSirRSNie * pAPSirRSNie);
1637
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08001638/* ---------------------------------------------------------------------------
1639
1640 sme_ChangeMCCBeaconInterval
1641
1642 \brief To update P2P-GO's beacon Interval.
1643
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001644 \return eHalStatus SUCCESS
1645 FAILURE or RESOURCES
1646 The API finished and failed.
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08001647 -------------------------------------------------------------------------------*/
1648eHalStatus sme_ChangeMCCBeaconInterval(tHalHandle hHal, tANI_U8 sessionId);
1649
1650
Jeff Johnson295189b2012-06-20 16:38:30 -07001651
1652/* ---------------------------------------------------------------------------
1653 \fn sme_sendBTAmpEvent
1654 \brief API to send the btAMPstate to FW
1655 \param hHal - The handle returned by macOpen.
1656 \param btAmpEvent -- btAMP event
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001657 \return eHalStatus SUCCESS
1658 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001659
1660--------------------------------------------------------------------------- */
1661
1662eHalStatus sme_sendBTAmpEvent(tHalHandle hHal, tSmeBtAmpEvent btAmpEvent);
1663
1664
1665
1666/* ---------------------------------------------------------------------------
1667 \fn sme_SetHostOffload
1668 \brief API to set the host offload feature.
1669 \param hHal - The handle returned by macOpen.
1670 \param pRequest - Pointer to the offload request.
1671 \return eHalStatus
1672 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001673eHalStatus sme_SetHostOffload (tHalHandle hHal, tANI_U8 sessionId,
1674 tpSirHostOffloadReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07001675
1676/* ---------------------------------------------------------------------------
1677 \fn sme_SetKeepAlive
1678 \brief API to set the Keep Alive feature.
1679 \param hHal - The handle returned by macOpen.
1680 \param pRequest - Pointer to the Keep Alive request.
1681 \return eHalStatus
1682 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001683eHalStatus sme_SetKeepAlive (tHalHandle hHal, tANI_U8 sessionId,
1684 tpSirKeepAliveReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07001685
1686
1687/* ---------------------------------------------------------------------------
1688 \fn sme_AbortMacScan
1689 \brief API to cancel MAC scan.
1690 \param hHal - The handle returned by macOpen.
1691 \return VOS_STATUS
1692 VOS_STATUS_E_FAILURE - failure
1693 VOS_STATUS_SUCCESS success
1694 ---------------------------------------------------------------------------*/
1695eHalStatus sme_AbortMacScan(tHalHandle hHal);
1696
1697/* ----------------------------------------------------------------------------
1698 \fn sme_GetOperationChannel
1699 \brief API to get current channel on which STA is parked
1700 this function gives channel information only of infra station or IBSS station.
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001701 \param hHal, pointer to memory location and sessionId
Jeff Johnson295189b2012-06-20 16:38:30 -07001702 \returns eHAL_STATUS_SUCCESS
1703 eHAL_STATUS_FAILURE
1704-------------------------------------------------------------------------------*/
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001705eHalStatus sme_GetOperationChannel(tHalHandle hHal, tANI_U32 *pChannel, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001706
Jeff Johnson295189b2012-06-20 16:38:30 -07001707/* ---------------------------------------------------------------------------
1708
1709 \fn sme_RegisterMgtFrame
1710
1711 \brief To register managment frame of specified type and subtype.
1712 \param frameType - type of the frame that needs to be passed to HDD.
1713 \param matchData - data which needs to be matched before passing frame
1714 to HDD.
1715 \param matchDataLen - Length of matched data.
1716 \return eHalStatus
1717 -------------------------------------------------------------------------------*/
1718eHalStatus sme_RegisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
1719 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
1720
1721/* ---------------------------------------------------------------------------
1722
1723 \fn sme_DeregisterMgtFrame
1724
1725 \brief To De-register managment frame of specified type and subtype.
1726 \param frameType - type of the frame that needs to be passed to HDD.
1727 \param matchData - data which needs to be matched before passing frame
1728 to HDD.
1729 \param matchDataLen - Length of matched data.
1730 \return eHalStatus
1731 -------------------------------------------------------------------------------*/
1732eHalStatus sme_DeregisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
1733 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
Jeff Johnson295189b2012-06-20 16:38:30 -07001734
1735/* ---------------------------------------------------------------------------
1736
1737 \fn sme_ConfigureRxpFilter
1738
1739 \brief
1740 SME will pass this request to lower mac to set/reset the filter on RXP for
1741 multicast & broadcast traffic.
1742
1743 \param
1744
1745 hHal - The handle returned by macOpen.
1746
1747 filterMask- Currently the API takes a 1 or 0 (set or reset) as filter.
1748 Basically to enable/disable the filter (to filter "all" mcbc traffic) based
1749 on this param. In future we can use this as a mask to set various types of
1750 filters as suggested below:
1751 FILTER_ALL_MULTICAST:
1752 FILTER_ALL_BROADCAST:
1753 FILTER_ALL_MULTICAST_BROADCAST:
1754
1755
1756 \return eHalStatus
1757
1758
1759--------------------------------------------------------------------------- */
1760eHalStatus sme_ConfigureRxpFilter( tHalHandle hHal,
1761 tpSirWlanSetRxpFilters wlanRxpFilterParam);
1762
1763/* ---------------------------------------------------------------------------
1764
1765 \fn sme_ConfigureAppsCpuWakeupState
1766
1767 \brief
1768 SME will pass this request to lower mac to dynamically adjusts the listen
1769 interval based on the WLAN/MSM activity. This feature is named as
1770 Telescopic Beacon wakeup feature.
1771
1772 \param
1773
1774 hHal - The handle returned by macOpen.
1775
1776 isAppsAwake- Depicts the state of the Apps CPU
1777
1778
1779 \return eHalStatus
1780
1781
1782--------------------------------------------------------------------------- */
1783eHalStatus sme_ConfigureAppsCpuWakeupState( tHalHandle hHal, tANI_BOOLEAN isAppsAwake);
1784
Jeff Johnson295189b2012-06-20 16:38:30 -07001785/* ---------------------------------------------------------------------------
1786
1787 \fn sme_ConfigureSuspendInd
1788
1789 \brief
1790 SME will pass this request to lower mac to Indicate that the wlan needs to
1791 be suspended
1792
1793 \param
1794
1795 hHal - The handle returned by macOpen.
1796
1797 wlanSuspendParam- Depicts the wlan suspend params
1798
1799
1800 \return eHalStatus
1801
1802
1803--------------------------------------------------------------------------- */
1804eHalStatus sme_ConfigureSuspendInd( tHalHandle hHal,
1805 tpSirWlanSuspendParam wlanSuspendParam);
1806
1807/* ---------------------------------------------------------------------------
1808
1809 \fn sme_ConfigureResumeReq
1810
1811 \brief
1812 SME will pass this request to lower mac to Indicate that the wlan needs to
1813 be Resumed
1814
1815 \param
1816
1817 hHal - The handle returned by macOpen.
1818
1819 wlanResumeParam- Depicts the wlan resume params
1820
1821
1822 \return eHalStatus
1823
1824
1825--------------------------------------------------------------------------- */
1826eHalStatus sme_ConfigureResumeReq( tHalHandle hHal,
1827 tpSirWlanResumeParam wlanResumeParam);
1828
Jeff Johnson295189b2012-06-20 16:38:30 -07001829
1830/* ---------------------------------------------------------------------------
1831
1832 \fn sme_GetInfraSessionId
1833
1834 \brief To get the session ID for infra session, if connected
1835 This is a synchronous API.
1836
1837 \param hHal - The handle returned by macOpen.
1838
1839 \return sessionid, -1 if infra session is not connected
1840
1841 -------------------------------------------------------------------------------*/
1842tANI_S8 sme_GetInfraSessionId(tHalHandle hHal);
1843
1844/* ---------------------------------------------------------------------------
1845
1846 \fn sme_GetInfraOperationChannel
1847
1848 \brief To get the operating channel for infra session, if connected
1849 This is a synchronous API.
1850
1851 \param hHal - The handle returned by macOpen.
1852 \param sessionId - the sessionId returned by sme_OpenSession.
1853
1854 \return operating channel, 0 if infra session is not connected
1855
1856 -------------------------------------------------------------------------------*/
1857tANI_U8 sme_GetInfraOperationChannel( tHalHandle hHal, tANI_U8 sessionId);
1858/* ---------------------------------------------------------------------------
1859
1860 \fn sme_GetConcurrentOperationChannel
1861
1862 \brief To get the operating channel for other concurrent sessions, if connected
1863 This is a synchronous API.
1864
1865 \param hHal - The handle returned by macOpen.
1866 \param currentPersona - persona that is trying to come up.
1867
1868 \return operating channel, 0 if infra session is not connected
1869
1870 -------------------------------------------------------------------------------*/
1871tANI_U8 sme_GetConcurrentOperationChannel( tHalHandle hHal );
1872
1873/* ---------------------------------------------------------------------------
1874 \fn sme_AbortMacScan
1875 \brief API to cancel MAC scan.
1876 \param hHal - The handle returned by macOpen.
1877 \return VOS_STATUS
1878 VOS_STATUS_E_FAILURE - failure
1879 VOS_STATUS_SUCCESS success
1880 ---------------------------------------------------------------------------*/
1881eHalStatus sme_AbortMacScan(tHalHandle hHal);
1882
1883/* ---------------------------------------------------------------------------
1884 \fn sme_GetCfgValidChannels
1885 \brief API to get valid channel list
1886 \param hHal - The handle returned by macOpen.
1887 \param aValidChannels - Pointer to the valid channel list
1888 \param len - valid channel list length
1889 \return eHalStatus
1890 ---------------------------------------------------------------------------*/
1891eHalStatus sme_GetCfgValidChannels(tHalHandle hHal, tANI_U8 *aValidChannels, tANI_U32 *len);
1892
1893#ifdef FEATURE_WLAN_SCAN_PNO
1894
1895/* ---------------------------------------------------------------------------
1896 \fn sme_SetPreferredNetworkList
1897 \brief API to set the Preferred Network List Offload feature.
1898 \param hHal - The handle returned by macOpen.
1899 \param pRequest - Pointer to the offload request.
1900 \return eHalStatus
1901 ---------------------------------------------------------------------------*/
1902eHalStatus sme_SetPreferredNetworkList (tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext );
1903
1904/* ---------------------------------------------------------------------------
1905 \fn sme_SetRSSIFilter
1906 \brief API to set RSSI Filter feature.
1907 \param hHal - The handle returned by macOpen.
1908 \param pRequest - Pointer to the offload request.
1909 \return eHalStatus
1910 ---------------------------------------------------------------------------*/
1911eHalStatus sme_SetRSSIFilter(tHalHandle hHal, v_U8_t rssiThreshold);
1912
1913/******************************************************************************
1914*
1915* Name: sme_PreferredNetworkFoundInd
1916*
1917* Description:
1918* Invoke Preferred Network Found Indication
1919*
1920* Parameters:
1921* hHal - HAL handle for device
1922* pMsg - found network description
1923*
1924* Returns: eHalStatus
1925*
1926******************************************************************************/
1927eHalStatus sme_PreferredNetworkFoundInd (tHalHandle hHal, void* pMsg);
1928#endif // FEATURE_WLAN_SCAN_PNO
1929
1930/* ---------------------------------------------------------------------------
1931 \fn sme_SetPowerParams
1932 \brief API to set Power Parameters
1933 \param hHal - The handle returned by macOpen.
1934 \param pwParams - Pointer to the power parameters requested.
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08001935 \param forced - if true, not to be dropped silently in host, it must reach
1936 FW; It is added to avoid a race condition scenario where LIM hasn't deleted
1937 the session yet before power params gets sent to PMC
Jeff Johnson295189b2012-06-20 16:38:30 -07001938 \return eHalStatus
1939 ---------------------------------------------------------------------------*/
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08001940eHalStatus sme_SetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced);
Jeff Johnson295189b2012-06-20 16:38:30 -07001941
1942/* ---------------------------------------------------------------------------
1943 \fn sme_SetTxPerTracking
1944 \brief Set Tx PER tracking configuration parameters
1945 \param hHal - The handle returned by macOpen.
1946 \param pTxPerTrackingParam - Tx PER configuration parameters
1947 \return eHalStatus
1948 ---------------------------------------------------------------------------*/
1949eHalStatus sme_SetTxPerTracking (
1950 tHalHandle hHal,
1951 void (*pCallbackfn) (void *pCallbackContext),
1952 void *pCallbackContext,
1953 tpSirTxPerTrackingParam pTxPerTrackingParam);
1954
1955#ifdef WLAN_FEATURE_PACKET_FILTERING
1956/* ---------------------------------------------------------------------------
1957 \fn sme_ReceiveFilterSetFilter
1958 \brief API to set 8023 Multicast Address List
1959 \param hHal - The handle returned by macOpen.
1960 \param pMulticastAddrs - Pointer to the Multicast Address List
1961 \return eHalStatus
1962 ---------------------------------------------------------------------------*/
Amar Singhalf3a6e762013-02-19 15:06:50 -08001963eHalStatus sme_8023MulticastList(tHalHandle hHal, tANI_U8 sessionId, tpSirRcvFltMcAddrList pMulticastAddrs);
Jeff Johnson295189b2012-06-20 16:38:30 -07001964
1965/* ---------------------------------------------------------------------------
1966 \fn sme_ReceiveFilterSetFilter
1967 \brief API to set Receive Packet Filter
1968 \param hHal - The handle returned by macOpen.
1969 \param pRcvPktFilterCfg - Receive Packet Filter parameter
1970 \return eHalStatus
1971 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001972eHalStatus sme_ReceiveFilterSetFilter(tHalHandle hHal, tpSirRcvPktFilterCfgType pRcvPktFilterCfg,
1973 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001974
1975/* ---------------------------------------------------------------------------
1976 \fn sme_GetFilterMatchCount
1977 \brief API to get D0 PC Filter Match Count
1978 \param hHal - The handle returned by macOpen
1979 \param callbackRoutine - Callback routine invoked to receive Packet Coalescing Filter Match Count
1980 \param callbackContext - Cookie to be passed back during callback
1981 \return eHalStatus
1982 ---------------------------------------------------------------------------*/
1983eHalStatus sme_GetFilterMatchCount(tHalHandle hHal,
1984 FilterMatchCountCallback callbackRoutine,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001985 void *callbackContext,
1986 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001987
1988/* ---------------------------------------------------------------------------
1989 \fn sme_ReceiveFilterClearFilter
1990 \brief API to clear Receive Packet Filter
1991 \param hHal - The handle returned by macOpen.
1992 \param pRcvFltPktClearParam - Receive Packet Filter Clear parameter
1993 \return eHalStatus
1994 ---------------------------------------------------------------------------*/
1995eHalStatus sme_ReceiveFilterClearFilter(tHalHandle hHal,
Jeff Johnsone7245742012-09-05 17:12:55 -07001996 tpSirRcvFltPktClearParam pRcvFltPktClearParam,
1997 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001998#endif // WLAN_FEATURE_PACKET_FILTERING
1999/* ---------------------------------------------------------------------------
2000
2001 \fn sme_IsChannelValid
2002 \brief To check if the channel is valid for currently established domain
2003 This is a synchronous API.
2004
2005 \param hHal - The handle returned by macOpen.
2006 \param channel - channel to verify
2007
2008 \return TRUE/FALSE, TRUE if channel is valid
2009
2010 -------------------------------------------------------------------------------*/
2011tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2012
2013/* ---------------------------------------------------------------------------
2014 \fn sme_SetFreqBand
2015 \brief Used to set frequency band.
2016 \param hHal
2017 \eBand band value to be configured
2018 \- return eHalStatus
2019 -------------------------------------------------------------------------*/
2020eHalStatus sme_SetFreqBand(tHalHandle hHal, eCsrBand eBand);
2021
2022/* ---------------------------------------------------------------------------
2023 \fn sme_GetFreqBand
2024 \brief Used to get the current band settings.
2025 \param hHal
2026 \pBand pointer to hold the current band value
2027 \- return eHalStatus
2028 -------------------------------------------------------------------------*/
2029eHalStatus sme_GetFreqBand(tHalHandle hHal, eCsrBand *pBand);
2030
2031/* ---------------------------------------------------------------------------
2032
2033 \fn sme_SetTxPerTracking
2034 \brief Set Tx PER tracking configuration parameters
2035 \param hHal - The handle returned by macOpen.
2036 \param pTxPerTrackingParam - Tx PER configuration parameters
2037 \return eHalStatus
2038 ---------------------------------------------------------------------------*/
2039eHalStatus sme_SetTxPerTracking (
2040 tHalHandle hHal,
2041 void (*pCallbackfn) (void *pCallbackContext),
2042 void *pCallbackContext,
2043 tpSirTxPerTrackingParam pTxPerTrackingParam);
2044
2045#ifdef WLAN_FEATURE_GTK_OFFLOAD
2046/* ---------------------------------------------------------------------------
2047 \fn sme_SetGTKOffload
2048 \brief API to set GTK offload feature.
2049 \param hHal - The handle returned by macOpen.
2050 \param pRequest - Pointer to the GTK offload request.
2051 \return eHalStatus
2052 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002053eHalStatus sme_SetGTKOffload (tHalHandle hHal, tpSirGtkOffloadParams pRequest, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002054
2055/* ---------------------------------------------------------------------------
2056 \fn sme_GetGTKOffload
2057 \brief API to get GTK offload information.
2058 \param hHal - The handle returned by macOpen.
2059 \param pRequest - Pointer to the GTK offload response.
2060 \return eHalStatus
2061 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002062eHalStatus sme_GetGTKOffload (tHalHandle hHal, GTKOffloadGetInfoCallback callbackRoutine,
2063 void *callbackContext, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002064#endif // WLAN_FEATURE_GTK_OFFLOAD
2065
2066#ifdef WLAN_WAKEUP_EVENTS
2067eHalStatus sme_WakeReasonIndCallback (tHalHandle hHal, void* pMsg);
2068#endif // WLAN_WAKEUP_EVENTS
2069
2070/* ---------------------------------------------------------------------------
2071 \fn sme_SetTxPerTracking
2072 \brief Set Tx PER tracking configuration parameters
2073 \param hHal - The handle returned by macOpen.
2074 \param pTxPerTrackingParam - Tx PER configuration parameters
2075 \return eHalStatus
2076 ---------------------------------------------------------------------------*/
2077eHalStatus sme_SetTxPerTracking (
2078 tHalHandle hHal,
2079 void (*pCallbackfn) (void *pCallbackContext),
2080 void *pCallbackContext,
2081 tpSirTxPerTrackingParam pTxPerTrackingParam);
2082
2083
2084//return frequency for a particular channel
2085tANI_U16 sme_ChnToFreq(tANI_U8 chanNum);
2086
2087tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2088
2089#if defined WLAN_FEATURE_P2P_INTERNAL
2090
2091eHalStatus sme_p2pResetSession(tHalHandle hHal, tANI_U8 HDDSessionId);
2092
2093/* ---------------------------------------------------------------------------
2094 \fn sme_p2pFlushDeviceList
2095 \brief Remove cached P2P result from scan results
2096 \param hHal - The handle returned by macOpen.
2097 \param HDDSessionId - HDD's sessionId. Currently unused.
2098 \return eHalStatus
2099 ---------------------------------------------------------------------------*/
2100eHalStatus sme_p2pFlushDeviceList(tHalHandle hHal, tANI_U8 HDDSessionId);
2101
2102eHalStatus sme_p2pGetResultFilter(tHalHandle hHal, tANI_U8 HDDSessionId,
2103 tCsrScanResultFilter *pFilter);
2104
2105#endif //#if defined WLAN_FEATURE_P2P_INTERNAL
2106
2107/* ---------------------------------------------------------------------------
2108 \fn sme_SetMaxTxPower
2109 \brief Used to set the Maximum Transmit Power dynamically. Note: this
2110 setting will not persist over reboots
2111 \param hHal
2112 \param pBssid BSSID to set the power cap for
2113 \param pBssid pSelfMacAddress self MAC Address
2114 \param pBssid power to set in dB
2115 \- return eHalStatus
2116 -------------------------------------------------------------------------*/
2117eHalStatus sme_SetMaxTxPower(tHalHandle hHal, tSirMacAddr pBssid,
2118 tSirMacAddr pSelfMacAddress, v_S7_t dB);
2119
Jeff Johnson295189b2012-06-20 16:38:30 -07002120/* ---------------------------------------------------------------------------
2121
2122 \fn sme_HideSSID
2123
2124 \brief Enable/Disables hidden SSID dynamically. Note: this setting will
2125 not persist over reboots.
2126
2127 \param hHal
2128 \param sessionId
2129 \param ssidHidden 0 - Broadcast SSID, 1 - Disable broadcast SSID
2130 \- return eHalStatus
2131
2132 -------------------------------------------------------------------------------*/
2133eHalStatus sme_HideSSID(tHalHandle hHal, v_U8_t sessionId, v_U8_t ssidHidden);
Jeff Johnson295189b2012-06-20 16:38:30 -07002134
2135/* ---------------------------------------------------------------------------
2136
2137 \fn sme_SetTmLevel
2138 \brief Set Thermal Mitigation Level to RIVA
2139 \param hHal - The handle returned by macOpen.
2140 \param newTMLevel - new Thermal Mitigation Level
2141 \param tmMode - Thermal Mitigation handle mode, default 0
2142 \return eHalStatus
2143 ---------------------------------------------------------------------------*/
2144eHalStatus sme_SetTmLevel(tHalHandle hHal, v_U16_t newTMLevel, v_U16_t tmMode);
2145
2146/*---------------------------------------------------------------------------
2147
2148 \brief sme_featureCapsExchange() - SME interface to exchange capabilities between
2149 Host and FW.
2150
2151 \param hHal - HAL handle for device
2152
2153 \return NONE
2154
2155---------------------------------------------------------------------------*/
2156void sme_featureCapsExchange(tHalHandle hHal);
2157
Jeff Johnsond13512a2012-07-17 11:42:19 -07002158/*---------------------------------------------------------------------------
2159
Yathish9f22e662012-12-10 14:21:35 -08002160 \brief sme_disableActiveModeOffload() - SME interface to disable Active mode Offload capabilitu
2161 between in Host.
2162
2163 \param hHal - HAL handle for device
2164
2165 \return NONE
2166
2167---------------------------------------------------------------------------*/
2168void sme_disableFeatureCapablity(tANI_U8 feature_index);
2169
2170/*---------------------------------------------------------------------------
2171
Jeff Johnsond13512a2012-07-17 11:42:19 -07002172 \brief sme_GetDefaultCountryCodeFrmNv() - SME interface to get the default
2173 country code
2174 Host and FW.
2175
2176 \param hHal - HAL handle for device
2177 \param pCountry - pointer to country code
2178
Jeff Johnsonfeddb2d2012-12-10 14:41:22 -08002179 \return Success or failure
Jeff Johnsond13512a2012-07-17 11:42:19 -07002180
2181 ---------------------------------------------------------------------------*/
2182eHalStatus sme_GetDefaultCountryCodeFrmNv(tHalHandle hHal, tANI_U8 *pCountry);
2183
2184/*---------------------------------------------------------------------------
2185
2186 \brief sme_GetCurrentCountryCode() - SME interface to get the current operating
2187 country code.
2188
2189 \param hHal - HAL handle for device
2190 \param pCountry - pointer to country code
2191
2192 \return Success or failure
2193
2194 ---------------------------------------------------------------------------*/
2195eHalStatus sme_GetCurrentCountryCode(tHalHandle hHal, tANI_U8 *pCountry);
2196
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002197/* ---------------------------------------------------------------------------
2198 \fn sme_transportDebug
2199 \brief Dynamically monitoring Transport channels
2200 Private IOCTL will querry transport channel status if driver loaded
Jeff Johnsonb88db982012-12-10 13:34:59 -08002201 \param displaySnapshot Display transport channel snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002202 \param toggleStallDetect Enable stall detect feature
2203 This feature will take effect to data performance
2204 Not integrate till fully verification
2205 \- return NONE
2206 -------------------------------------------------------------------------*/
2207void sme_transportDebug
2208(
2209 v_BOOL_t displaySnapshot,
2210 v_BOOL_t toggleStallDetect
2211);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002212
Kiran4a17ebe2013-01-31 10:43:43 -08002213/* ---------------------------------------------------------------------------
2214 \fn sme_ResetPowerValuesFor5G
2215 \brief Reset the power values for 5G band with NV power values.
2216 \param hHal - HAL handle for device
2217 \- return NONE
2218 -------------------------------------------------------------------------*/
2219void sme_ResetPowerValuesFor5G (tHalHandle hHal);
2220
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002221#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
2222/* ---------------------------------------------------------------------------
2223 \fn sme_UpdateRoamPrefer5GHz
2224 \brief enable/disable Roam prefer 5G runtime option
2225 This function is called through dynamic setConfig callback function
2226 to configure the Roam prefer 5G runtime option
2227 \param hHal - HAL handle for device
2228 \param nRoamPrefer5GHz Enable/Disable Roam prefer 5G runtime option
2229 \- return Success or failure
2230 -------------------------------------------------------------------------*/
2231
2232eHalStatus sme_UpdateRoamPrefer5GHz(tHalHandle hHal, v_BOOL_t nRoamPrefer5GHz);
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002233
2234/* ---------------------------------------------------------------------------
2235 \fn sme_UpdateImmediateRoamRssiDiff
2236 \brief Update nImmediateRoamRssiDiff
2237 This function is called through dynamic setConfig callback function
2238 to configure nImmediateRoamRssiDiff
2239 Usage: adb shell iwpriv wlan0 setConfig gImmediateRoamRssiDiff=[0 .. 125]
2240 \param hHal - HAL handle for device
2241 \param nImmediateRoamRssiDiff - minimum rssi difference between potential
2242 candidate and current AP.
2243 \- return Success or failure
2244 -------------------------------------------------------------------------*/
2245
2246eHalStatus sme_UpdateImmediateRoamRssiDiff(tHalHandle hHal, v_U8_t nImmediateRoamRssiDiff);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002247
Srinivas Girigowdade697412013-02-14 16:31:48 -08002248/* ---------------------------------------------------------------------------
2249 \fn sme_UpdateRoamRssiDiff
2250 \brief Update RoamRssiDiff
2251 This function is called through dynamic setConfig callback function
2252 to configure RoamRssiDiff
2253 Usage: adb shell iwpriv wlan0 setConfig RoamRssiDiff=[0 .. 125]
2254 \param hHal - HAL handle for device
2255 \param RoamRssiDiff - minimum rssi difference between potential
2256 candidate and current AP.
2257 \- return Success or failure
2258 -------------------------------------------------------------------------*/
2259
2260eHalStatus sme_UpdateRoamRssiDiff(tHalHandle hHal, v_U8_t RoamRssiDiff);
2261
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002262/*--------------------------------------------------------------------------
2263 \brief sme_UpdateFastTransitionEnabled() - enable/disable Fast Transition support at runtime
2264 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2265 isFastTransitionEnabled.
2266 This is a synchronuous call
2267 \param hHal - The handle returned by macOpen.
2268 \return eHAL_STATUS_SUCCESS - SME update isFastTransitionEnabled config successfully.
2269 Other status means SME is failed to update isFastTransitionEnabled.
2270 \sa
2271 --------------------------------------------------------------------------*/
2272
2273eHalStatus sme_UpdateFastTransitionEnabled(tHalHandle hHal,
2274 v_BOOL_t isFastTransitionEnabled);
2275#endif /* (WLAN_FEATURE_VOWIFI_11R) || (FEATURE_WLAN_CCX) || (FEATURE_WLAN_LFR) */
2276
2277#ifdef FEATURE_WLAN_LFR
2278/*--------------------------------------------------------------------------
2279 \brief sme_UpdateIsFastRoamIniFeatureEnabled() - enable/disable LFR support at runtime
Srinivas Girigowdade697412013-02-14 16:31:48 -08002280 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002281 isFastRoamIniFeatureEnabled.
2282 This is a synchronuous call
2283 \param hHal - The handle returned by macOpen.
2284 \return eHAL_STATUS_SUCCESS - SME update isFastRoamIniFeatureEnabled config successfully.
2285 Other status means SME is failed to update isFastRoamIniFeatureEnabled.
2286 \sa
2287 --------------------------------------------------------------------------*/
2288
Srinivas Girigowdade697412013-02-14 16:31:48 -08002289eHalStatus sme_UpdateIsFastRoamIniFeatureEnabled(tHalHandle hHal,
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002290 v_BOOL_t isFastRoamIniFeatureEnabled);
2291#endif /* FEATURE_WLAN_LFR */
2292
2293#ifdef FEATURE_WLAN_CCX
2294/*--------------------------------------------------------------------------
2295 \brief sme_UpdateIsCcxFeatureEnabled() - enable/disable CCX support at runtime
2296 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2297 isCcxIniFeatureEnabled.
2298 This is a synchronuous call
2299 \param hHal - The handle returned by macOpen.
2300 \return eHAL_STATUS_SUCCESS - SME update isCcxIniFeatureEnabled config successfully.
2301 Other status means SME is failed to update isCcxIniFeatureEnabled.
2302 \sa
2303 --------------------------------------------------------------------------*/
2304
2305eHalStatus sme_UpdateIsCcxFeatureEnabled(tHalHandle hHal,
2306 v_BOOL_t isCcxIniFeatureEnabled);
2307
2308#endif /* FEATURE_WLAN_CCX */
2309
2310/*--------------------------------------------------------------------------
2311 \brief sme_UpdateConfigFwRssiMonitoring() - enable/disable firmware RSSI Monitornig at runtime
2312 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2313 fEnableFwRssiMonitoring.
2314 This is a synchronuous call
2315 \param hHal - The handle returned by macOpen.
2316 \return eHAL_STATUS_SUCCESS - SME update fEnableFwRssiMonitoring config successfully.
2317 Other status means SME is failed to update
2318 \sa
2319 --------------------------------------------------------------------------*/
2320
2321eHalStatus sme_UpdateConfigFwRssiMonitoring(tHalHandle hHal,
2322 v_BOOL_t fEnableFwRssiMonitoring);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002323
Srinivas Girigowdade697412013-02-14 16:31:48 -08002324/*--------------------------------------------------------------------------
2325 \brief sme_setNeighborLookupRssiThreshold() - update neighbor lookup rssi threshold
2326 This is a synchronuous call
2327 \param hHal - The handle returned by macOpen.
2328 \return eHAL_STATUS_SUCCESS - SME update config successful.
2329 Other status means SME is failed to update
2330 \sa
2331 --------------------------------------------------------------------------*/
2332eHalStatus sme_setNeighborLookupRssiThreshold(tHalHandle hHal,
2333 v_U8_t neighborLookupRssiThreshold);
2334
2335/*--------------------------------------------------------------------------
2336 \brief sme_setNeighborReassocRssiThreshold() - update neighbor reassoc rssi threshold
2337 This is a synchronuous call
2338 \param hHal - The handle returned by macOpen.
2339 \return eHAL_STATUS_SUCCESS - SME update config successful.
2340 Other status means SME is failed to update
2341 \sa
2342 --------------------------------------------------------------------------*/
2343eHalStatus sme_setNeighborReassocRssiThreshold(tHalHandle hHal,
2344 v_U8_t neighborReassocRssiThreshold);
2345
2346/*--------------------------------------------------------------------------
2347 \brief sme_getNeighborLookupRssiThreshold() - get neighbor lookup rssi threshold
2348 This is a synchronuous call
2349 \param hHal - The handle returned by macOpen.
2350 \return eHAL_STATUS_SUCCESS - SME update config successful.
2351 Other status means SME is failed to update
2352 \sa
2353 --------------------------------------------------------------------------*/
2354v_U8_t sme_getNeighborLookupRssiThreshold(tHalHandle hHal);
2355
2356/*--------------------------------------------------------------------------
2357 \brief sme_setNeighborScanRefreshPeriod() - set neighbor scan results refresh period
2358 This is a synchronuous call
2359 \param hHal - The handle returned by macOpen.
2360 \return eHAL_STATUS_SUCCESS - SME update config successful.
2361 Other status means SME is failed to update
2362 \sa
2363 --------------------------------------------------------------------------*/
2364eHalStatus sme_setNeighborScanRefreshPeriod(tHalHandle hHal,
2365 v_U16_t neighborScanResultsRefreshPeriod);
2366
2367/*--------------------------------------------------------------------------
2368 \brief sme_getNeighborScanRefreshPeriod() - get neighbor scan results refresh period
2369 This is a synchronuous call
2370 \param hHal - The handle returned by macOpen.
2371 \return eHAL_STATUS_SUCCESS - SME update config successful.
2372 Other status means SME is failed to update
2373 \sa
2374 --------------------------------------------------------------------------*/
2375v_U16_t sme_getNeighborScanRefreshPeriod(tHalHandle hHal);
2376
2377/*--------------------------------------------------------------------------
2378 \brief sme_getEmptyScanRefreshPeriod() - get empty scan refresh period
2379 This is a synchronuous call
2380 \param hHal - The handle returned by macOpen.
2381 \return eHAL_STATUS_SUCCESS - SME update config successful.
2382 Other status means SME is failed to update
2383 \sa
2384 --------------------------------------------------------------------------*/
2385v_U16_t sme_getEmptyScanRefreshPeriod(tHalHandle hHal);
2386
2387
2388#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
2389/*--------------------------------------------------------------------------
2390 \brief sme_getRoamRssiDiff() - get Roam rssi diff
2391 This is a synchronuous call
2392 \param hHal - The handle returned by macOpen.
2393 \return eHAL_STATUS_SUCCESS - SME update config successful.
2394 Other status means SME is failed to update
2395 \sa
2396 --------------------------------------------------------------------------*/
2397v_U8_t sme_getRoamRssiDiff(tHalHandle hHal);
2398
2399/*--------------------------------------------------------------------------
2400 \brief sme_ChangeRoamScanChannelList() - Change roam scan channel list
2401 This is a synchronuous call
2402 \param hHal - The handle returned by macOpen.
2403 \return eHAL_STATUS_SUCCESS - SME update config successful.
2404 Other status means SME is failed to update
2405 \sa
2406 --------------------------------------------------------------------------*/
2407eHalStatus sme_ChangeRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
2408 tANI_U8 numChannels);
2409
2410/*--------------------------------------------------------------------------
2411 \brief sme_ChangeCountryValidChannelListByRevision() - Change Korea valid channel list
2412 based on country revision number
2413 This is a synchronuous call
2414 \param hHal - The handle returned by macOpen.
2415 \return eHAL_STATUS_SUCCESS - SME update config successful.
2416 Other status means SME is failed to update
2417 \sa
2418 --------------------------------------------------------------------------*/
2419eHalStatus sme_ChangeCountryValidChannelListByRevision(tHalHandle hHal,
2420 tANI_U8 Revision);
2421
2422/*--------------------------------------------------------------------------
2423 \brief csrUpdateBgScanConfigIniChannelList() - Update bgscan roam cache
2424 This is a synchronuous call
2425 \param hHal - The handle returned by macOpen.
2426 \return eHAL_STATUS_SUCCESS - SME update config successful.
2427 Other status means SME is failed to update
2428 \sa
2429 --------------------------------------------------------------------------*/
2430eHalStatus sme_UpdateBgScanConfigIniChannelList(tHalHandle hHal,
2431 eCsrBand eBand);
2432
2433
2434/*--------------------------------------------------------------------------
2435 \brief sme_getRoamScanChannelList() - get roam scan channel list
2436 This is a synchronuous call
2437 \param hHal - The handle returned by macOpen.
2438 \return eHAL_STATUS_SUCCESS - SME update config successful.
2439 Other status means SME is failed to update
2440 \sa
2441 --------------------------------------------------------------------------*/
2442eHalStatus sme_getRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
2443 tANI_U8 *pNumChannels);
2444
2445/*--------------------------------------------------------------------------
2446 \brief sme_GetCountryRevision() - get Country revision index
2447 This is a synchronuous call
2448 \param hHal - The handle returned by macOpen.
2449 \return eHAL_STATUS_SUCCESS - SME update config successful.
2450 Other status means SME is failed to update
2451 \sa
2452 --------------------------------------------------------------------------*/
2453eHalStatus sme_GetCountryRevision(tHalHandle hHal, tANI_U8 *pRevision);
2454
2455#endif
2456
2457/* ---------------------------------------------------------------------------
2458 \fn sme_UpdateEmptyScanRefreshPeriod
2459 \brief Update nnEmptyScanRefreshPeriod
2460 This function is called through dynamic setConfig callback function
2461 to configure nnEmptyScanRefreshPeriod
2462 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
2463 \param hHal - HAL handle for device
2464 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
2465 \- return Success or failure
2466 -------------------------------------------------------------------------*/
2467
2468eHalStatus sme_UpdateEmptyScanRefreshPeriod(tHalHandle hHal, v_U16_t nEmptyScanRefreshPeriod);
2469
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002470/* ---------------------------------------------------------------------------
2471 \fn sme_IsFeatureSupportedByFW
2472 \brief Check if an feature is enabled by FW
2473
2474 \param feattEnumValue - Enumeration value of the feature to be checked.
2475 A value from enum placeHolderInCapBitmap
2476
2477 \- return 1/0 (TRUE/FALSE)
2478 -------------------------------------------------------------------------*/
2479tANI_U8 sme_IsFeatureSupportedByFW(tANI_U8 featEnumValue);
2480#ifdef FEATURE_WLAN_TDLS
2481/* ---------------------------------------------------------------------------
2482 \fn sme_SendTdlsMgmtFrame
2483 \brief API to send TDLS management frames.
2484
2485 \param peerMac - peer's Mac Adress.
2486 \param frame_type - Type of TDLS mgmt frame to be sent.
2487 \param dialog - dialog token used in the frame.
2488 \param status - status to be incuded in the frame.
2489 \param buf - additional IEs to be included
2490 \param len - lenght of additional Ies
Hoonki Leea34dd892013-02-05 22:56:02 -08002491 \param responder - Tdls request type
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002492 \- return VOS_STATUS_SUCCES
2493 -------------------------------------------------------------------------*/
2494VOS_STATUS sme_SendTdlsMgmtFrame(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
Hoonki Leea34dd892013-02-05 22:56:02 -08002495 tANI_U8 frame_type, tANI_U8 dialog, tANI_U16 status, tANI_U8 *buf, tANI_U8 len, tANI_U8 responder);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002496/* ---------------------------------------------------------------------------
Gopichand Nakkala681989c2013-03-06 22:27:48 -08002497 \fn sme_ChangeTdlsPeerSta
2498 \brief API to Update TDLS peer sta parameters.
2499
2500 \param peerMac - peer's Mac Adress.
2501 \param staParams - Peer Station Parameters.
2502 \- return VOS_STATUS_SUCCES
2503 -------------------------------------------------------------------------*/
2504VOS_STATUS sme_ChangeTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
2505 tCsrStaParams *pstaParams);
2506/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002507 \fn sme_AddTdlsPeerSta
2508 \brief API to Add TDLS peer sta entry.
2509
2510 \param peerMac - peer's Mac Adress.
2511 \- return VOS_STATUS_SUCCES
2512 -------------------------------------------------------------------------*/
2513VOS_STATUS sme_AddTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2514/* ---------------------------------------------------------------------------
2515 \fn sme_DeleteTdlsPeerSta
2516 \brief API to Delete TDLS peer sta entry.
2517
2518 \param peerMac - peer's Mac Adress.
2519 \- return VOS_STATUS_SUCCES
2520 -------------------------------------------------------------------------*/
2521VOS_STATUS sme_DeleteTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2522#endif
2523#ifdef FEATURE_WLAN_TDLS_INTERNAL
2524typedef struct smeTdlsDisResult
2525{
2526 tSirMacAddr tdlsPeerMac;
2527 v_S7_t tdlsPeerRssi;
2528} tSmeTdlsDisResult;
2529
2530VOS_STATUS sme_StartTdlsDiscoveryReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2531v_U8_t sme_GetTdlsDiscoveryResult(tHalHandle hHal,
2532 tSmeTdlsDisResult *disResult, v_U8_t listType);
2533VOS_STATUS sme_StartTdlsLinkSetupReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2534VOS_STATUS sme_StartTdlsLinkTeardownReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2535
2536#endif /* FEATURE_WLAN_TDLS */
2537
Jeff Johnson295189b2012-06-20 16:38:30 -07002538#endif //#if !defined( __SME_API_H )