blob: 8d4197c34ef64dd67a2bee5448e27b7e480b378d [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
Jeff Johnson295189b2012-06-20 16:38:30 -070042#ifndef WLAN_QCT_WLANTL_H
43#define WLAN_QCT_WLANTL_H
44
45/*===========================================================================
46
Jeff Johnson40b59aa2013-03-19 14:43:18 -070047 W L A N T R A N S P O R T L A Y E R
Jeff Johnson295189b2012-06-20 16:38:30 -070048 E X T E R N A L A P I
Jeff Johnson40b59aa2013-03-19 14:43:18 -070049
50
Jeff Johnson295189b2012-06-20 16:38:30 -070051DESCRIPTION
Jeff Johnson40b59aa2013-03-19 14:43:18 -070052 This file contains the external API exposed by the wlan transport layer
Jeff Johnson295189b2012-06-20 16:38:30 -070053 module.
Jeff Johnson40b59aa2013-03-19 14:43:18 -070054<<<<<<< HEAD:CORE/TL/inc/wlan_qct_tl.h
Jeff Johnson295189b2012-06-20 16:38:30 -070055
56
57 Copyright (c) 2008 QUALCOMM Incorporated. All Rights Reserved.
58 Qualcomm Confidential and Proprietary
Jeff Johnson40b59aa2013-03-19 14:43:18 -070059=======
60
61
62 Copyright (c) 2008 Qualcomm Technologies, Inc. All Rights Reserved.
63 Qualcomm Technologies Confidential and Proprietary
64>>>>>>> 326d6cf... wlan: remove obsolete ANI_CHIPSET_VOLANS featurization:prima/CORE/TL/inc/wlan_qct_tl.h
Jeff Johnson295189b2012-06-20 16:38:30 -070065===========================================================================*/
66
67
68/*===========================================================================
69
70 EDIT HISTORY FOR FILE
71
72
73 This section contains comments describing changes made to the module.
74 Notice that changes are listed in reverse chronological order.
75
76
77 $Header:$ $DateTime: $ $Author: $
78
79
80when who what, where, why
81-------- --- ----------------------------------------------------------
8201/08/10 lti Added TL Data Caching
8310/15/09 rnair Modifying STADescType struct
8410/06/09 rnair Adding support for WAPI
8509/22/09 lti Add deregistration API for management client
8602/02/09 sch Add Handoff support
8712/09/08 lti Fixes for AMSS compilation
8809/05/08 lti Fixes after QOS unit testing
8908/06/08 lti Added QOS support
9005/01/08 lti Created module.
91
92===========================================================================*/
93
94
95
96/*===========================================================================
97
98 INCLUDE FILES FOR MODULE
99
100===========================================================================*/
101
102/*----------------------------------------------------------------------------
103 * Include Files
104 * -------------------------------------------------------------------------*/
105#include "vos_api.h"
106#include "vos_packet.h"
107#include "sirApi.h"
Jeff Johnson295189b2012-06-20 16:38:30 -0700108#include "csrApi.h"
109#include "sapApi.h"
Jeff Johnson295189b2012-06-20 16:38:30 -0700110/*----------------------------------------------------------------------------
111 * Preprocessor Definitions and Constants
112 * -------------------------------------------------------------------------*/
113 #ifdef __cplusplus
114 extern "C" {
115 #endif
116
117/*Offset of the OUI field inside the LLC/SNAP header*/
118#define WLANTL_LLC_OUI_OFFSET 3
119
120/*Size of the OUI type field inside the LLC/SNAP header*/
121#define WLANTL_LLC_OUI_SIZE 3
122
123/*Offset of the LLC/SNAP header*/
124#define WLANTL_LLC_SNAP_OFFSET 0
125
126/*Size of the LLC/SNAP header*/
127#define WLANTL_LLC_SNAP_SIZE 8
128
129/*============================================================================
130 * GENERIC STRUCTURES - not belonging to TL
131 * TO BE MOVED TO A GLOBAL HEADER
132 ============================================================================*/
133/*Maximum number of ACs */
134#define WLANTL_MAX_AC 4
135
Jeff Johnson295189b2012-06-20 16:38:30 -0700136/* Maximum number of station supported by TL, including BC. */
137#define WLAN_MAX_STA_COUNT (HAL_NUM_STA)
Madan Mohan Koyylamudi3b8400c2013-01-24 17:47:01 +0530138#define WLAN_NON32_STA_COUNT 14
Jeff Johnson295189b2012-06-20 16:38:30 -0700139/* The symbolic station ID return to HDD to specify the packet is bc/mc */
140#define WLAN_RX_BCMC_STA_ID (WLAN_MAX_STA_COUNT + 1)
141
142/* The symbolic station ID return to HDD to specify the packet is to soft-AP itself */
143#define WLAN_RX_SAP_SELF_STA_ID (WLAN_MAX_STA_COUNT + 2)
144
145/* Used by HDS systme. This station ID is used by TL to tell upper layer that
146 this packet is for WDS and not for a loopback for an associated station. */
147#define WLANTL_RX_WDS_STAID WLAN_MAX_STA_COUNT
148
149/* Station ID used for BC traffic. This value will be used when upper layer registers
150 the broadcast client or allocate station strcuture to keep per-station info.*/
151//#define WLANTL_BC_STA_ID 0x00
152
Jeff Johnson295189b2012-06-20 16:38:30 -0700153
Jeff Johnson295189b2012-06-20 16:38:30 -0700154#define WLANTL_MAX_TID 15
Shailender Karmuchi13c0d082013-03-26 14:41:39 -0700155/* Default RSSI average Alpha */
156#define WLANTL_HO_DEFAULT_ALPHA 5
157#define WLANTL_HO_TDLS_ALPHA 7
158
Jeff Johnson295189b2012-06-20 16:38:30 -0700159/*--------------------------------------------------------------------------
160 Access category enum used by TL
161 - order must be kept as these values are used to setup the AC mask
162 --------------------------------------------------------------------------*/
163typedef enum
164{
165 WLANTL_AC_BK = 0,
166 WLANTL_AC_BE = 1,
167 WLANTL_AC_VI = 2,
168 WLANTL_AC_VO = 3
169}WLANTL_ACEnumType;
170
171/*---------------------------------------------------------------------------
172 STA Type
173---------------------------------------------------------------------------*/
174typedef enum
175{
176 /* Indicates a link to an AP*/
177 WLAN_STA_INFRA = 0,
178
179 /* AD-hoc link*/
180 WLAN_STA_IBSS,
181
182 /* BT-AMP link*/
183 WLAN_STA_BT_AMP,
184
Jeff Johnson295189b2012-06-20 16:38:30 -0700185 /* SoftAP station */
186 WLAN_STA_SOFTAP,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800187
188#ifdef FEATURE_WLAN_TDLS
189 /* TDLS direct link */
190 WLAN_STA_TDLS, /* 4 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700191#endif
192
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800193
Jeff Johnson295189b2012-06-20 16:38:30 -0700194 /* Invalid link*/
195 WLAN_STA_MAX
196
197}WLAN_STAType;
198
199/*---------------------------------------------------------------------------
200 BAP Management frame type
201---------------------------------------------------------------------------*/
202typedef enum
203{
204 /* BT-AMP packet of type data */
205 WLANTL_BT_AMP_TYPE_DATA = 0x0001,
206
207 /* BT-AMP packet of type activity report */
208 WLANTL_BT_AMP_TYPE_AR = 0x0002,
209
210 /* BT-AMP packet of type security frame */
211 WLANTL_BT_AMP_TYPE_SEC = 0x0003,
212
213 /* BT-AMP packet of type Link Supervision request frame */
214 WLANTL_BT_AMP_TYPE_LS_REQ = 0x0004,
215
216 /* BT-AMP packet of type Link Supervision reply frame */
217 WLANTL_BT_AMP_TYPE_LS_REP = 0x0005,
218
219 /* Invalid Frame */
220 WLANTL_BAP_INVALID_FRAME
221
222} WLANTL_BAPFrameEnumType;
223
Jeff Johnson295189b2012-06-20 16:38:30 -0700224/* Type used to specify LWM threshold unit */
225typedef enum {
226 WLAN_LWM_THRESHOLD_BYTE = 0,
227
228 WLAN_LWM_THRESHOLD_PACKET
229} WLAN_LWM_Threshold_Type;
Jeff Johnson295189b2012-06-20 16:38:30 -0700230
231/*---------------------------------------------------------------------------
232 TL States
233---------------------------------------------------------------------------*/
234typedef enum
235{
236 /* Transition in this state made upon creation*/
237 WLANTL_STA_INIT = 0,
238
239 /* Transition happens after Assoc success if second level authentication
240 is needed*/
241 WLANTL_STA_CONNECTED,
242
243 /* Transition happens when second level auth is successful and keys are
244 properly installed */
245 WLANTL_STA_AUTHENTICATED,
246
247 /* Transition happens when connectivity is lost*/
248 WLANTL_STA_DISCONNECTED,
249
250 WLANTL_STA_MAX_STATE
251}WLANTL_STAStateType;
252
253
254/*---------------------------------------------------------------------------
255 STA Descriptor Type
256---------------------------------------------------------------------------*/
257typedef struct
258{
259 /*STA unique identifier, originating from HAL*/
260 v_U8_t ucSTAId;
261
262 /*STA MAC Address*/
263 v_MACADDR_t vSTAMACAddress;
264
265 /*BSSID for IBSS*/
266 v_MACADDR_t vBSSIDforIBSS;
267
268 /*Self MAC Address*/
269 v_MACADDR_t vSelfMACAddress;
270
271 /*Type of the STA*/
272 WLAN_STAType wSTAType;
273
274 /*flag for setting the state of the QOS for the link*/
275 v_U8_t ucQosEnabled;
276
277 /*enable FT in TL */
278 v_U8_t ucSwFrameTXXlation;
279 v_U8_t ucSwFrameRXXlation;
280
281 /*Flag for signaling TL if LLC header needs to be added for outgoing
282 packets*/
283 v_U8_t ucAddRmvLLC;
284
285 /*Flag for signaling if the privacy bit needs to be set*/
286 v_U8_t ucProtectedFrame;
287
288 /*DPU Signature used for unicast data - used for data caching*/
289 v_U8_t ucUcastSig;
290 /*Flag to indicate if STA is a WAPI STA*/
291 v_U8_t ucIsWapiSta;
292
293#ifdef FEATURE_WLAN_CCX
294 /*Flag to indicate if STA is a CCX STA*/
295 v_U8_t ucIsCcxSta;
296#endif
297
298 /*DPU Signature used for broadcast data - used for data caching*/
299 v_U8_t ucBcastSig;
300
301 /*Initial state at which the STA should be brought up to*/
302 WLANTL_STAStateType ucInitState;
Jeff Johnson295189b2012-06-20 16:38:30 -0700303 /* 1 means replay check is needed for the station,
304 0 means replay check is not needed for the station*/
305 v_BOOL_t ucIsReplayCheckValid;
Jeff Johnson295189b2012-06-20 16:38:30 -0700306}WLAN_STADescType;
307
308/*---------------------------------------------------------------------------
309 TL Configuration
310---------------------------------------------------------------------------*/
311typedef struct
312{
313 /*AC weight for WFQ*/
314 v_U8_t ucAcWeights[WLANTL_MAX_AC];
315
316 /*Delayed trigger frame timmer: - used by TL to send trigger frames less
317 often when it has established that the App is suspended*/
318 v_U32_t uDelayedTriggerFrmInt;
319
Jeff Johnson295189b2012-06-20 16:38:30 -0700320 /* Min Threshold for Processing Frames in TL */
321 v_U8_t uMinFramesProcThres;
Jeff Johnson295189b2012-06-20 16:38:30 -0700322}WLANTL_ConfigInfoType;
323
324/*---------------------------------------------------------------------------
325 TSPEC Direction Enum Type
326---------------------------------------------------------------------------*/
327typedef enum
328{
329 /* uplink */
330 WLANTL_TX_DIR = 0,
331
332 /* downlink */
333 WLANTL_RX_DIR = 1,
334
335 /*bidirectional*/
336 WLANTL_BI_DIR = 2,
337}WLANTL_TSDirType;
338
339/*============================================================================
340 * GENERIC STRUCTURES - END
341 ============================================================================*/
342
343
344
345/*----------------------------------------------------------------------------
346 * Type Declarations
347 * -------------------------------------------------------------------------*/
348
349/*---------------------------------------------------------------------------
350 TL Error Type
351---------------------------------------------------------------------------*/
352typedef enum
353{
354 /* Generic error */
355 WLANTL_ERROR = 0,
356
357 /* No rx callback registered for data path */
358 WLANTL_NO_RX_DATA_CB,
359
360 /* No rx callback registered for management path*/
361 WLANTL_NO_RX_MGMT_CB,
362
363 /* Generic memory error*/
364 WLANTL_MEM_ERROR,
365
366 /* Bus error notified by BAL */
367 WLANTL_BUS_ERROR
368
369}WLANTL_ErrorType;
370
371/*---------------------------------------------------------------------------
372 STA priority type
373---------------------------------------------------------------------------*/
374typedef enum
375{
376 /* STA gets to tx every second round*/
377 WLANTL_STA_PRI_VERY_LOW = -2,
378
379 /* STA gets to tx every other round*/
380 WLANTL_STA_PRI_LOW = -1,
381
382 /* STA gets to tx each time */
383 WLANTL_STA_PRI_NORMAL = 0,
384
385 /* STA gets to tx twice each time*/
386 WLANTL_STA_PRI_HIGH = 1,
387
388 /* STA gets to tx three times each time*/
389 WLANTL_STA_PRI_VERY_HIGH = 2
390
391}WLANTL_STAPriorityType;
392
393/*---------------------------------------------------------------------------
394 Meta information requested from HDD by TL
395---------------------------------------------------------------------------*/
396typedef struct
397{
398 /* TID of the packet being sent */
399 v_U8_t ucTID;
400
401 /* UP of the packet being sent */
402 v_U8_t ucUP;
403
404 /* notifying TL if this is an EAPOL frame or not */
405 v_U8_t ucIsEapol;
406#ifdef FEATURE_WLAN_WAPI
407 /* notifying TL if this is a WAI frame or not */
408 v_U8_t ucIsWai;
409#endif
410 /* frame is 802.11 and it does not need translation */
411 v_U8_t ucDisableFrmXtl;
412
413 /* frame is broadcast */
414 v_U8_t ucBcast;
415
416 /* frame is multicast */
417 v_U8_t ucMcast;
418
419 /* frame type */
420 v_U8_t ucType;
421
422 /* timestamp */
423 v_U16_t usTimeStamp;
424
425 /* STA has more packets to send */
426 v_BOOL_t bMorePackets;
427}WLANTL_MetaInfoType;
428
429/*---------------------------------------------------------------------------
430 Meta information provided by TL to HDD on rx path
431---------------------------------------------------------------------------*/
432typedef struct
433{
434 /* UP of the packet being sent */
435 v_U8_t ucUP;
436 /* Address 3 Index of the received packet */
437 v_U16_t ucDesSTAId;
Shailender Karmuchi13c0d082013-03-26 14:41:39 -0700438 /*Rssi based on the received packet */
439 v_S7_t rssiAvg;
Gopichand Nakkala4a2fc1a2013-05-17 16:59:39 +0530440 #ifdef FEATURE_WLAN_TDLS
441 /* Packet received on direct link/AP link */
442 v_U8_t isStaTdls;
443 #endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700444}WLANTL_RxMetaInfoType;
445
446
447/*---------------------------------------------------------------------------
448 Handoff support and statistics defines and enum types
449---------------------------------------------------------------------------*/
450/* Threshold crossed event type definitions */
451#define WLANTL_HO_THRESHOLD_NA 0x00
452#define WLANTL_HO_THRESHOLD_DOWN 0x01
453#define WLANTL_HO_THRESHOLD_UP 0x02
454#define WLANTL_HO_THRESHOLD_CROSS 0x04
455
456/* Realtime traffic status */
457typedef enum
458{
459 WLANTL_HO_RT_TRAFFIC_STATUS_OFF,
460 WLANTL_HO_RT_TRAFFIC_STATUS_ON
461} WLANTL_HO_RT_TRAFFIC_STATUS_TYPE;
462
463/* Non-Realtime traffic status */
464typedef enum
465{
466 WLANTL_HO_NRT_TRAFFIC_STATUS_OFF,
467 WLANTL_HO_NRT_TRAFFIC_STATUS_ON
468} WLANTL_HO_NRT_TRAFFIC_STATUS_TYPE;
469
470/* Statistics type TL supported */
471typedef enum
472{
473 WLANTL_STATIC_TX_UC_FCNT,
474 WLANTL_STATIC_TX_MC_FCNT,
475 WLANTL_STATIC_TX_BC_FCNT,
476 WLANTL_STATIC_TX_UC_BCNT,
477 WLANTL_STATIC_TX_MC_BCNT,
478 WLANTL_STATIC_TX_BC_BCNT,
479 WLANTL_STATIC_RX_UC_FCNT,
480 WLANTL_STATIC_RX_MC_FCNT,
481 WLANTL_STATIC_RX_BC_FCNT,
482 WLANTL_STATIC_RX_UC_BCNT,
483 WLANTL_STATIC_RX_MC_BCNT,
484 WLANTL_STATIC_RX_BC_BCNT,
485 WLANTL_STATIC_RX_BCNT,
486 WLANTL_STATIC_RX_BCNT_CRC_OK,
487 WLANTL_STATIC_RX_RATE
488} WLANTL_TRANSFER_STATIC_TYPE;
489
490/*---------------------------------------------------------------------------
491 Handoff support and statistics structures
492---------------------------------------------------------------------------*/
493typedef struct
494{
495 WLANTL_HO_RT_TRAFFIC_STATUS_TYPE rtTrafficStatus;
496 WLANTL_HO_NRT_TRAFFIC_STATUS_TYPE nrtTrafficStatus;
497} WLANTL_HO_TRAFFIC_STATUS_TYPE;
498
Jeff Johnson295189b2012-06-20 16:38:30 -0700499typedef tSap_SoftapStats WLANTL_TRANSFER_STA_TYPE;
Jeff Johnson295189b2012-06-20 16:38:30 -0700500
501/* Under here not public items, just use for internal */
502/* 3 SME 1 HDD */
503#define WLANTL_MAX_AVAIL_THRESHOLD 5
504#define WLANTL_HS_NUM_CLIENT 2
505#define WLANTL_SINGLE_CLNT_THRESHOLD 4
506
507/*----------------------------------------------------------------------------
508 * TL callback types
509 *--------------------------------------------------------------------------*/
510
511/*----------------------------------------------------------------------------
512
513 DESCRIPTION
514 Type of the tx complete callback registered with TL.
515
516 TL will call this to notify the client when a transmission for a
517 packet has ended.
518
519 PARAMETERS
520
521 IN
522 pvosGCtx: pointer to the global vos context; a handle to
523 TL/HAL/PE/BAP/HDD control block can be extracted from
524 its context
525 vosDataBuff: pointer to the VOSS data buffer that was transmitted
526 wTxSTAtus: status of the transmission
527
528
529 RETURN VALUE
530 The result code associated with performing the operation
531
532----------------------------------------------------------------------------*/
533typedef VOS_STATUS (*WLANTL_TxCompCBType)( v_PVOID_t pvosGCtx,
534 vos_pkt_t* pFrameDataBuff,
535 VOS_STATUS wTxSTAtus );
536
537
538/*----------------------------------------------------------------------------
539 INTERACTION WITH HDD
540 ---------------------------------------------------------------------------*/
541/*----------------------------------------------------------------------------
542
543 DESCRIPTION
544 Type of the fetch packet callback registered with TL.
545
546 It is called by the TL when the scheduling algorithms allows for
547 transmission of another packet to the module.
548 It will be called in the context of the BAL fetch transmit packet
549 function, initiated by the bus lower layer.
550
551
552 PARAMETERS
553
554 IN
555 pvosGCtx: pointer to the global vos context; a handle
556 to TL's or HDD's control block can be extracted
557 from its context
558
559 IN/OUT
560 pucSTAId: the Id of the station for which TL is requesting a
561 packet, in case HDD does not maintain per station
562 queues it can give the next packet in its queue
563 and put in the right value for the
564 pucAC: access category requested by TL, if HDD does not have
565 packets on this AC it can choose to service another AC
566 queue in the order of priority
567
568 OUT
569 vosDataBuff: pointer to the VOSS data buffer that was transmitted
570 tlMetaInfo: meta info related to the data frame
571
572
573
574 RETURN VALUE
575 The result code associated with performing the operation
576
577----------------------------------------------------------------------------*/
578typedef VOS_STATUS (*WLANTL_STAFetchPktCBType)(
579 v_PVOID_t pvosGCtx,
580 v_U8_t* pucSTAId,
581 WLANTL_ACEnumType ucAC,
582 vos_pkt_t** vosDataBuff,
583 WLANTL_MetaInfoType* tlMetaInfo);
584
585/*----------------------------------------------------------------------------
586
587 DESCRIPTION
588 Type of the receive callback registered with TL.
589
590 TL will call this to notify the client when a packet was received
591 for a registered STA.
592
593 PARAMETERS
594
595 IN
596 pvosGCtx: pointer to the global vos context; a handle to
597 TL's or HDD's control block can be extracted from
598 its context
599 vosDataBuff: pointer to the VOSS data buffer that was received
600 (it may be a linked list)
601 ucSTAId: station id
602 pRxMetaInfo: meta info for the received packet(s)
603
604 RETURN VALUE
605 The result code associated with performing the operation
606
607----------------------------------------------------------------------------*/
608typedef VOS_STATUS (*WLANTL_STARxCBType)( v_PVOID_t pvosGCtx,
609 vos_pkt_t* vosDataBuff,
610 v_U8_t ucSTAId,
611 WLANTL_RxMetaInfoType* pRxMetaInfo);
612
613
614/*----------------------------------------------------------------------------
615 INTERACTION WITH BAP
616 ---------------------------------------------------------------------------*/
617
618/*----------------------------------------------------------------------------
619
620 DESCRIPTION
621 Type of the receive callback registered with TL for BAP.
622
623 The registered reception callback is being triggered by TL whenever a
624 frame was received and it was filtered as a non-data BT AMP packet.
625
626 PARAMETERS
627
628 IN
629 pvosGCtx: pointer to the global vos context; a handle to TL's
630 or SME's control block can be extracted from its context
631 vosDataBuff: pointer to the vOSS buffer containing the received packet;
632 no chaining will be done on this path
633 frameType: type of the frame to be indicated to BAP.
634
635 RETURN VALUE
636 The result code associated with performing the operation
637
638----------------------------------------------------------------------------*/
639typedef VOS_STATUS (*WLANTL_BAPRxCBType)( v_PVOID_t pvosGCtx,
640 vos_pkt_t* vosDataBuff,
641 WLANTL_BAPFrameEnumType frameType);
642
643/*----------------------------------------------------------------------------
644
645 DESCRIPTION
646 Callback registered with TL for BAP, this is required inorder for
647 TL to inform BAP, that the flush operation requested has been completed.
648
649 The registered reception callback is being triggered by TL whenever a
650 frame SIR_TL_HAL_FLUSH_AC_RSP is received by TL from HAL.
651
652 PARAMETERS
653
654 IN
655 pvosGCtx: pointer to the global vos context; a handle to TL's
656 or SME's control block can be extracted from its context
657 vosDataBuff: pointer to the vOSS buffer containing the received packet;
658 no chaining will be done on this path
659
660 RETURN VALUE
661 The result code associated with performing the operation
662
663----------------------------------------------------------------------------*/
664typedef VOS_STATUS (*WLANTL_FlushOpCompCBType)( v_PVOID_t pvosGCtx,
665 v_U8_t ucStaId,
666 v_U8_t ucTID,
667 v_U8_t status);
668/*----------------------------------------------------------------------------
669 INTERACTION WITH PE
670 ---------------------------------------------------------------------------*/
671
672/*----------------------------------------------------------------------------
673
674 DESCRIPTION
675 Type of the receive callback registered with TL for PE.
676
677 Upon receipt of a management frame TL will call the registered receive
678 callback and forward this frame to the interested module, in our case PE.
679
680 PARAMETERS
681
682 IN
683 pvosGCtx: pointer to the global vos context; a handle to TL's
684 control block can be extracted from its context
685 vosFrmBuf: pointer to a vOSS buffer containing the management frame
686 received
687
688 RETURN VALUE
689 The result code associated with performing the operation
690
691----------------------------------------------------------------------------*/
692typedef VOS_STATUS (*WLANTL_MgmtFrmRxCBType)( v_PVOID_t pvosGCtx,
693 v_PVOID_t vosBuff);
694
695
696/*----------------------------------------------------------------------------
697 INTERACTION WITH HAL
698 ---------------------------------------------------------------------------*/
699
700/*----------------------------------------------------------------------------
701
702 DESCRIPTION
703 Type of the fetch packet callback registered with TL.
704
705 HAL calls this API when it wishes to suspend transmission for a
706 particular STA.
707
708 PARAMETERS
709
710 IN
711 pvosGCtx: pointer to the global vos context; a handle to TL's
712 control block can be extracted from its context
713 ucSTAId: identifier of the station for which the request is made;
714 a value of 0 assumes suspend on all active station
715 pfnSuspendTxCB: pointer to the suspend result notification in case the
716 call is asynchronous
717
718 RETURN VALUE
719 The result code associated with performing the operation
720
721----------------------------------------------------------------------------*/
722typedef VOS_STATUS (*WLANTL_SuspendCBType)( v_PVOID_t pvosGCtx,
723 v_U8_t* ucSTAId,
724 VOS_STATUS vosStatus);
725
726
727/*==========================================================================
728
729 DESCRIPTION
730 Traffic status changed callback function
731 Should be registered to let client know that traffic status is changed
732 REF WLANTL_RegGetTrafficStatus
733
734 PARAMETERS
735 pAdapter Global handle pointer
736 trafficStatus RT and NRT current traffic status
737 pUserCtxt pre registered client context
738
739 RETURN VALUE
740 VOS_STATUS
741
742 SIDE EFFECTS
743 NONE
744
745============================================================================*/
746/* IF traffic status is changed, send notification to SME */
747typedef VOS_STATUS (*WLANTL_TrafficStatusChangedCBType)
748(
749 v_PVOID_t pAdapter,
750 WLANTL_HO_TRAFFIC_STATUS_TYPE trafficStatus,
751 v_PVOID_t pUserCtxt
752);
753
754/*==========================================================================
755
756 DESCRIPTION
757 RSSI threshold crossed notification callback function
758 REF WLANTL_RegRSSIIndicationCB
759
760 PARAMETERS
761 pAdapter Global handle pointer
762 rssiNotification Notification event type
763 pUserCtxt pre registered client context
764
765 RETURN VALUE
766
767 SIDE EFFECTS
768
769============================================================================*/
770/* If RSSI realm is changed, send notification to Clients, SME, HDD */
771typedef VOS_STATUS (*WLANTL_RSSICrossThresholdCBType)
772(
773 v_PVOID_t pAdapter,
774 v_U8_t rssiNotification,
Srinivasdaaec712012-12-12 15:59:44 -0800775 v_PVOID_t pUserCtxt,
776 v_S7_t avgRssi
Jeff Johnson295189b2012-06-20 16:38:30 -0700777);
778
Jeff Johnsone7245742012-09-05 17:12:55 -0700779typedef struct
780{
781 // Common for all types are requests
782 v_U16_t msgType; // message type is same as the request type
783 v_U16_t msgLen; // length of the entire request
784 v_U8_t sessionId; //sme Session Id
785 v_U8_t rssiNotification;
Srinivasdaaec712012-12-12 15:59:44 -0800786 v_U8_t avgRssi;
Jeff Johnsone7245742012-09-05 17:12:55 -0700787 v_PVOID_t tlCallback;
788 v_PVOID_t pAdapter;
789 v_PVOID_t pUserCtxt;
790} WLANTL_TlIndicationReq;
791
Jeff Johnson295189b2012-06-20 16:38:30 -0700792/*----------------------------------------------------------------------------
793 * Function Declarations and Documentation
794 * -------------------------------------------------------------------------*/
795
796/*==========================================================================
797
798 FUNCTION WLANTL_Open
799
800 DESCRIPTION
801 Called by HDD at driver initialization. TL will initialize all its
802 internal resources and will wait for the call to start to register
803 with the other modules.
804
805 DEPENDENCIES
806
807 PARAMETERS
808
809 IN
810 pvosGCtx: pointer to the global vos context; a handle to TL's
811 control block can be extracted from its context
812 pTLConfig: TL Configuration
813
814 RETURN VALUE
815 The result code associated with performing the operation
816
817 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
818 fault
819 VOS_STATUS_SUCCESS: Everything is good :)
820
821 SIDE EFFECTS
822
823============================================================================*/
824VOS_STATUS
825WLANTL_Open
826(
827 v_PVOID_t pvosGCtx,
828 WLANTL_ConfigInfoType* pTLConfig
829);
830
831/*==========================================================================
832
833 FUNCTION WLANTL_Start
834
835 DESCRIPTION
836 Called by HDD as part of the overall start procedure. TL will use this
837 call to register with BAL as a transport layer entity.
838
839 DEPENDENCIES
840
841 PARAMETERS
842
843 IN
844 pvosGCtx: pointer to the global vos context; a handle to TL's
845 control block can be extracted from its context
846
847 RETURN VALUE
848 The result code associated with performing the operation
849
850 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
851 fault
852 VOS_STATUS_SUCCESS: Everything is good :)
853
854 Other codes can be returned as a result of a BAL failure; see BAL API
855 for more info
856
857 SIDE EFFECTS
858
859============================================================================*/
860VOS_STATUS
861WLANTL_Start
862(
863 v_PVOID_t pvosGCtx
864);
865
866/*==========================================================================
867
868 FUNCTION WLANTL_Stop
869
870 DESCRIPTION
871 Called by HDD to stop operation in TL, before close. TL will suspend all
872 frame transfer operation and will wait for the close request to clean up
873 its resources.
874
875 DEPENDENCIES
876
877 PARAMETERS
878
879 IN
880 pvosGCtx: pointer to the global vos context; a handle to TL's
881 control block can be extracted from its context
882
883 RETURN VALUE
884 The result code associated with performing the operation
885
886 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
887 fault
888 VOS_STATUS_SUCCESS: Everything is good :)
889
890 SIDE EFFECTS
891
892============================================================================*/
893VOS_STATUS
894WLANTL_Stop
895(
896 v_PVOID_t pvosGCtx
897);
898
899/*==========================================================================
900
901 FUNCTION WLANTL_Close
902
903 DESCRIPTION
904 Called by HDD during general driver close procedure. TL will clean up
905 all the internal resources.
906
907 DEPENDENCIES
908
909 PARAMETERS
910
911 IN
912 pvosGCtx: pointer to the global vos context; a handle to TL's
913 control block can be extracted from its context
914
915 RETURN VALUE
916 The result code associated with performing the operation
917
918 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
919 fault
920 VOS_STATUS_SUCCESS: Everything is good :)
921
922 SIDE EFFECTS
923
924============================================================================*/
925VOS_STATUS
926WLANTL_Close
927(
928 v_PVOID_t pvosGCtx
929);
930
931
932/*----------------------------------------------------------------------------
933 INTERACTION WITH HDD
934 ---------------------------------------------------------------------------*/
935/*==========================================================================
936
937 FUNCTION WLANTL_ConfigureSwFrameTXXlationForAll
938
939 DESCRIPTION
940 Function to disable/enable frame translation for all association stations.
941
942 DEPENDENCIES
943
944 PARAMETERS
945 IN
946 pvosGCtx: VOS context
947 EnableFrameXlation TRUE means enable SW translation for all stations.
948 .
949
950 RETURN VALUE
951
952 void.
953
954============================================================================*/
955void
956WLANTL_ConfigureSwFrameTXXlationForAll
957(
958 v_PVOID_t pvosGCtx,
959 v_BOOL_t enableFrameXlation
960);
961
962/*===========================================================================
963
964 FUNCTION WLANTL_RegisterSTAClient
965
966 DESCRIPTION
967
968 This function is used by HDD to register as a client for data services
969 with TL. HDD will call this API for each new station that it adds,
970 thus having the flexibility of registering different callback for each
971 STA it services.
972
973 DEPENDENCIES
974
975 TL must have been initialized before this gets called.
976
977 Restriction:
978 Main thread will have higher priority that Tx and Rx threads thus
979 guaranteeing that a station will be added before any data can be
980 received for it. (This enables TL to be lock free)
981
982 PARAMETERS
983
984 pvosGCtx: pointer to the global vos context; a handle to TL's
985 control block can be extracted from its context
986 pfnStARx: function pointer to the receive packet handler from HDD
987 pfnSTATxComp: function pointer to the transmit complete confirmation
988 handler from HDD
989 pfnSTAFetchPkt: function pointer to the packet retrieval routine in HDD
990 wSTADescType: STA Descriptor, contains information related to the
991 new added STA
992
993 RETURN VALUE
994
995 The result code associated with performing the operation
996
997 VOS_STATUS_E_INVAL: Input parameters are invalid
998 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
999 TL cb is NULL ; access would cause a page fault
1000 VOS_STATUS_E_EXISTS: Station was already registered
1001 VOS_STATUS_SUCCESS: Everything is good :)
1002
1003 SIDE EFFECTS
1004
1005============================================================================*/
1006VOS_STATUS
1007WLANTL_RegisterSTAClient
1008(
1009 v_PVOID_t pvosGCtx,
1010 WLANTL_STARxCBType pfnSTARx,
1011 WLANTL_TxCompCBType pfnSTATxComp,
1012 WLANTL_STAFetchPktCBType pfnSTAFetchPkt,
1013 WLAN_STADescType* wSTADescType ,
1014 v_S7_t rssi
1015);
1016
1017/*===========================================================================
1018
1019 FUNCTION WLANTL_ClearSTAClient
1020
1021 DESCRIPTION
1022
1023 HDD will call this API when it no longer needs data services for the
1024 particular station.
1025
1026 DEPENDENCIES
1027
1028 A station must have been registered before the clear registration is
1029 called.
1030
1031 PARAMETERS
1032
1033 pvosGCtx: pointer to the global vos context; a handle to TL's
1034 control block can be extracted from its context
1035 ucSTAId: identifier for the STA to be cleared
1036
1037 RETURN VALUE
1038
1039 The result code associated with performing the operation
1040
1041 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
1042 TL cb is NULL ; access would cause a page fault
1043 VOS_STATUS_E_EXISTS: Station was not registered
1044 VOS_STATUS_SUCCESS: Everything is good :)
1045
1046 SIDE EFFECTS
1047
1048============================================================================*/
1049VOS_STATUS
1050WLANTL_ClearSTAClient
1051(
1052 v_PVOID_t pvosGCtx,
1053 v_U8_t ucSTAId
1054);
1055
1056/*===========================================================================
1057
1058 FUNCTION WLANTL_ChangeSTAState
1059
1060 DESCRIPTION
1061
1062 HDD will make this notification whenever a change occurs in the
1063 connectivity state of a particular STA.
1064
1065 DEPENDENCIES
1066
1067 A station must have been registered before the change state can be
1068 called.
1069
1070 RESTRICTION: A station is being notified as authenticated before the
1071 keys are installed in HW. This way if a frame is received
1072 before the keys are installed DPU will drop that frame.
1073
1074 Main thread has higher priority that Tx and Rx threads thus guaranteeing
1075 the following:
1076 - a station will be in assoc state in TL before TL receives any data
1077 for it
1078
1079 PARAMETERS
1080
1081 pvosGCtx: pointer to the global vos context; a handle to TL's
1082 control block can be extracted from its context
1083 ucSTAId: identifier for the STA that is pending transmission
1084 tlSTAState: the new state of the connection to the given station
1085
1086
1087 RETURN VALUE
1088
1089 The result code associated with performing the operation
1090
1091 VOS_STATUS_E_INVAL: Input parameters are invalid
1092 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
1093 TL cb is NULL ; access would cause a page fault
1094 VOS_STATUS_E_EXISTS: Station was not registered
1095 VOS_STATUS_SUCCESS: Everything is good :)
1096
1097 SIDE EFFECTS
1098
1099============================================================================*/
1100VOS_STATUS
1101WLANTL_ChangeSTAState
1102(
1103 v_PVOID_t pvosGCtx,
1104 v_U8_t ucSTAId,
1105 WLANTL_STAStateType tlSTAState
1106);
1107
1108/*===========================================================================
1109
Gopichand Nakkala8b54e912013-03-11 10:44:21 +05301110 FUNCTION WLANTL_STAPtkInstalled
1111
1112 DESCRIPTION
1113
1114 HDD will make this notification whenever PTK is installed for the STA
1115
1116 DEPENDENCIES
1117
1118 A station must have been registered before the change state can be
1119 called.
1120
1121 PARAMETERS
1122
1123 pvosGCtx: pointer to the global vos context; a handle to TL's
1124 control block can be extracted from its context
1125 ucSTAId: identifier for the STA for which Pairwise key is
1126 installed
1127
1128 RETURN VALUE
1129
1130 The result code associated with performing the operation
1131
1132 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
1133 TL cb is NULL ; access would cause a page fault
1134 VOS_STATUS_E_EXISTS: Station was not registered
1135 VOS_STATUS_SUCCESS: Everything is good :)
1136
1137 SIDE EFFECTS
1138
1139============================================================================*/
1140VOS_STATUS
1141WLANTL_STAPtkInstalled
1142(
1143 v_PVOID_t pvosGCtx,
1144 v_U8_t ucSTAId
1145);
1146/*===========================================================================
1147
Madan Mohan Koyyalamudifc1d1fe2012-10-18 15:07:12 -07001148 FUNCTION WLANTL_GetSTAState
1149
1150 DESCRIPTION
1151
1152 Returns connectivity state of a particular STA.
1153
1154 DEPENDENCIES
1155
1156 A station must have been registered before its state can be retrieved.
1157
1158
1159 PARAMETERS
1160
1161 IN
1162 pvosGCtx: pointer to the global vos context; a handle to TL's
1163 control block can be extracted from its context
1164 ucSTAId: identifier of the station
1165
1166 OUT
1167 ptlSTAState: the current state of the connection to the given station
1168
1169
1170 RETURN VALUE
1171
1172 The result code associated with performing the operation
1173
1174 VOS_STATUS_E_INVAL: Input parameters are invalid
1175 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
1176 TL cb is NULL ; access would cause a page fault
1177 VOS_STATUS_E_EXISTS: Station was not registered
1178 VOS_STATUS_SUCCESS: Everything is good :)
1179
1180 SIDE EFFECTS
1181
1182============================================================================*/
1183VOS_STATUS
1184WLANTL_GetSTAState
1185(
1186 v_PVOID_t pvosGCtx,
1187 v_U8_t ucSTAId,
1188 WLANTL_STAStateType *ptlSTAState
1189);
1190
1191/*===========================================================================
1192
Jeff Johnson295189b2012-06-20 16:38:30 -07001193 FUNCTION WLANTL_STAPktPending
1194
1195 DESCRIPTION
1196
1197 HDD will call this API when a packet is pending transmission in its
1198 queues.
1199
1200 DEPENDENCIES
1201
1202 A station must have been registered before the packet pending
1203 notification can be sent.
1204
1205 RESTRICTION: TL will not count packets for pending notification.
1206 HDD is expected to send the notification only when
1207 non-empty event gets triggered. Worst case scenario
1208 is that TL might end up making a call when Hdds
1209 queues are actually empty.
1210
1211 PARAMETERS
1212
1213 pvosGCtx: pointer to the global vos context; a handle to TL's
1214 control block can be extracted from its context
1215 ucSTAId: identifier for the STA that is pending transmission
1216 ucAC: access category of the non-empty queue
1217
1218 RETURN VALUE
1219
1220 The result code associated with performing the operation
1221
1222 VOS_STATUS_E_INVAL: Input parameters are invalid
1223 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1224 to TL cb is NULL ; access would cause a page fault
1225 VOS_STATUS_E_EXISTS: Station was not registered
1226 VOS_STATUS_SUCCESS: Everything is good :)
1227
1228 SIDE EFFECTS
1229
1230============================================================================*/
1231VOS_STATUS
1232WLANTL_STAPktPending
1233(
1234 v_PVOID_t pvosGCtx,
1235 v_U8_t ucSTAId,
1236 WLANTL_ACEnumType ucAc
1237);
1238
1239/*==========================================================================
1240
1241 FUNCTION WLANTL_SetSTAPriority
1242
1243 DESCRIPTION
1244
1245 TL exposes this API to allow upper layers a rough control over the
1246 priority of transmission for a given station when supporting multiple
1247 connections.
1248
1249 DEPENDENCIES
1250
1251 A station must have been registered before the change in priority can be
1252 called.
1253
1254 PARAMETERS
1255
1256 pvosGCtx: pointer to the global vos context; a handle to TL's
1257 control block can be extracted from its context
1258 ucSTAId: identifier for the STA that has to change priority
1259
1260 RETURN VALUE
1261
1262 The result code associated with performing the operation
1263
1264 VOS_STATUS_E_INVAL: Input parameters are invalid
1265 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1266 to TL cb is NULL ; access would cause a page fault
1267 VOS_STATUS_E_EXISTS: Station was not registered
1268 VOS_STATUS_SUCCESS: Everything is good :)
1269
1270 SIDE EFFECTS
1271
1272============================================================================*/
1273VOS_STATUS
1274WLANTL_SetSTAPriority
1275(
1276 v_PVOID_t pvosGCtx,
1277 v_U8_t ucSTAId,
1278 WLANTL_STAPriorityType tlSTAPri
1279);
1280
1281/*----------------------------------------------------------------------------
1282 INTERACTION WITH BAP
1283 ---------------------------------------------------------------------------*/
1284
1285/*==========================================================================
1286
1287 FUNCTION WLANTL_RegisterBAPClient
1288
1289 DESCRIPTION
1290 Called by SME to register itself as client for non-data BT-AMP packets.
1291
1292 DEPENDENCIES
1293 TL must be initialized before this function can be called.
1294
1295 PARAMETERS
1296
1297 IN
1298 pvosGCtx: pointer to the global vos context; a handle to TL's
1299 or SME's control block can be extracted from its context
1300 pfnTlBAPRxFrm: pointer to the receive processing routine for non-data
1301 BT-AMP packets
1302 pfnFlushOpCompleteCb:
1303 pointer to the function that will inform BAP that the
1304 flush operation is complete.
1305
1306 RETURN VALUE
1307
1308 The result code associated with performing the operation
1309
1310 VOS_STATUS_E_INVAL: Input parameters are invalid
1311 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1312 to TL cb is NULL ; access would cause a page fault
1313 VOS_STATUS_E_EXISTS: BAL client was already registered
1314 VOS_STATUS_SUCCESS: Everything is good :)
1315
1316 SIDE EFFECTS
1317
1318============================================================================*/
1319VOS_STATUS
1320WLANTL_RegisterBAPClient
1321(
1322 v_PVOID_t pvosGCtx,
1323 WLANTL_BAPRxCBType pfnTlBAPRx,
1324 WLANTL_FlushOpCompCBType pfnFlushOpCompleteCb
1325);
1326
1327
1328/*==========================================================================
1329
1330 FUNCTION WLANTL_TxBAPFrm
1331
1332 DESCRIPTION
1333 BAP calls this when it wants to send a frame to the module
1334
1335 DEPENDENCIES
1336 BAP must be registered with TL before this function can be called.
1337
1338 RESTRICTION: BAP CANNOT push any packets to TL until it did not receive
1339 a tx complete from the previous packet, that means BAP
1340 sends one packet, wait for tx complete and then
1341 sends another one
1342
1343 If BAP sends another packet before TL manages to process the
1344 previously sent packet call will end in failure
1345
1346 PARAMETERS
1347
1348 IN
1349 pvosGCtx: pointer to the global vos context; a handle to TL's
1350 or BAP's control block can be extracted from its context
1351 vosDataBuff: pointer to the vOSS buffer containing the packet to be
1352 transmitted
1353 pMetaInfo: meta information about the packet
1354 pfnTlBAPTxComp: pointer to a transmit complete routine for notifying
1355 the result of the operation over the bus
1356
1357 RETURN VALUE
1358 The result code associated with performing the operation
1359
1360 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1361 page fault
1362 VOS_STATUS_E_EXISTS: BAL client was not yet registered
1363 VOS_STATUS_E_BUSY: The previous BT-AMP packet was not yet transmitted
1364 VOS_STATUS_SUCCESS: Everything is good :)
1365
1366 Other failure messages may be returned from the BD header handling
1367 routines, please check apropriate API for more info.
1368
1369 SIDE EFFECTS
1370
1371============================================================================*/
1372VOS_STATUS
1373WLANTL_TxBAPFrm
1374(
1375 v_PVOID_t pvosGCtx,
1376 vos_pkt_t* vosDataBuff,
1377 WLANTL_MetaInfoType* pMetaInfo,
1378 WLANTL_TxCompCBType pfnTlBAPTxComp
1379);
1380
1381
1382/*----------------------------------------------------------------------------
1383 INTERACTION WITH SME
1384 ---------------------------------------------------------------------------*/
1385
1386/*==========================================================================
1387
1388 FUNCTION WLANTL_GetRssi
1389
1390 DESCRIPTION
1391 TL will extract the RSSI information from every data packet from the
1392 ongoing traffic and will store it. It will provide the result to SME
1393 upon request.
1394
1395 DEPENDENCIES
1396
1397 WARNING: the read and write of this value will not be protected
1398 by locks, therefore the information obtained after a read
1399 might not always be consistent.
1400
1401 PARAMETERS
1402
1403 IN
1404 pvosGCtx: pointer to the global vos context; a handle to TL's
1405 or SME's control block can be extracted from its context
1406 ucSTAId: station identifier for the requested value
1407
1408 OUT
1409 puRssi: the average value of the RSSI
1410
1411
1412 RETURN VALUE
1413 The result code associated with performing the operation
1414
1415 VOS_STATUS_E_INVAL: Input parameters are invalid
1416 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1417 to TL cb is NULL ; access would cause a page fault
1418 VOS_STATUS_E_EXISTS: STA was not yet registered
1419 VOS_STATUS_SUCCESS: Everything is good :)
1420
1421 SIDE EFFECTS
1422
1423============================================================================*/
1424VOS_STATUS
1425WLANTL_GetRssi
1426(
1427 v_PVOID_t pvosGCtx,
1428 v_U8_t ucSTAId,
1429 v_S7_t* puRssi
1430);
1431
1432/*==========================================================================
1433
1434 FUNCTION WLANTL_GetLinkQuality
1435
1436 DESCRIPTION
1437 TL will extract the LinkQuality information from every data packet from the
1438 ongoing traffic and will store it. It will provide the result to SME
1439 upon request.
1440
1441 DEPENDENCIES
1442
1443 WARNING: the read and write of this value will not be protected
1444 by locks, therefore the information obtained after a read
1445 might not always be consistent.
1446
1447 PARAMETERS
1448
1449 IN
1450 pvosGCtx: pointer to the global vos context; a handle to TL's
1451 or SME's control block can be extracted from its context
1452 ucSTAId: station identifier for the requested value
1453
1454 OUT
1455 puLinkQuality: the average value of the LinkQuality
1456
1457
1458 RETURN VALUE
1459 The result code associated with performing the operation
1460
1461 VOS_STATUS_E_INVAL: Input parameters are invalid
1462 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1463 to TL cb is NULL ; access would cause a page fault
1464 VOS_STATUS_E_EXISTS: STA was not yet registered
1465 VOS_STATUS_SUCCESS: Everything is good :)
1466
1467 SIDE EFFECTS
1468
1469============================================================================*/
1470VOS_STATUS
1471WLANTL_GetLinkQuality
1472(
1473 v_PVOID_t pvosGCtx,
1474 v_U8_t ucSTAId,
1475 v_U32_t* puLinkQuality
1476);
1477
1478/*==========================================================================
1479
1480 FUNCTION WLANTL_FlushStaTID
1481
1482 DESCRIPTION
1483 TL provides this API as an interface to SME (BAP) layer. TL inturn posts a
1484 message to HAL. This API is called by the SME inorder to perform a flush
1485 operation.
1486
1487 DEPENDENCIES
1488
1489 PARAMETERS
1490
1491 IN
1492 pvosGCtx: pointer to the global vos context; a handle to TL's
1493 or SME's control block can be extracted from its context
1494 ucSTAId: station identifier for the requested value
1495 ucTid: Tspec ID for the new BA session
1496
1497 OUT
1498 The response for this post is received in the main thread, via a response
1499 message from HAL to TL.
1500
1501 RETURN VALUE
1502 VOS_STATUS_SUCCESS: Everything is good :)
1503
1504 SIDE EFFECTS
1505============================================================================*/
1506VOS_STATUS
1507WLANTL_FlushStaTID
1508(
1509 v_PVOID_t pvosGCtx,
1510 v_U8_t ucSTAId,
1511 v_U8_t ucTid
1512);
1513
1514/*----------------------------------------------------------------------------
1515 INTERACTION WITH PE
1516 ---------------------------------------------------------------------------*/
1517
1518/*==========================================================================
1519
1520 FUNCTION WLANTL_RegisterMgmtFrmClient
1521
1522 DESCRIPTION
1523 Called by PE to register as a client for management frames delivery.
1524
1525 DEPENDENCIES
1526 TL must be initialized before this API can be called.
1527
1528 PARAMETERS
1529
1530 IN
1531 pvosGCtx: pointer to the global vos context; a handle to
1532 TL's control block can be extracted from its context
1533 pfnTlMgmtFrmRx: pointer to the receive processing routine for
1534 management frames
1535
1536 RETURN VALUE
1537 The result code associated with performing the operation
1538
1539 VOS_STATUS_E_INVAL: Input parameters are invalid
1540 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1541 page fault
1542 VOS_STATUS_E_EXISTS: Mgmt Frame client was already registered
1543 VOS_STATUS_SUCCESS: Everything is good :)
1544
1545 SIDE EFFECTS
1546
1547============================================================================*/
1548VOS_STATUS
1549WLANTL_RegisterMgmtFrmClient
1550(
1551 v_PVOID_t pvosGCtx,
1552 WLANTL_MgmtFrmRxCBType pfnTlMgmtFrmRx
1553);
1554
1555/*==========================================================================
1556
1557 FUNCTION WLANTL_DeRegisterMgmtFrmClient
1558
1559 DESCRIPTION
1560 Called by PE to deregister as a client for management frames delivery.
1561
1562 DEPENDENCIES
1563 TL must be initialized before this API can be called.
1564
1565 PARAMETERS
1566
1567 IN
1568 pvosGCtx: pointer to the global vos context; a handle to
1569 TL's control block can be extracted from its context
1570 RETURN VALUE
1571 The result code associated with performing the operation
1572
1573 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1574 page fault
1575 VOS_STATUS_E_EXISTS: Mgmt Frame client was never registered
1576 VOS_STATUS_SUCCESS: Everything is good :)
1577
1578 SIDE EFFECTS
1579
1580============================================================================*/
1581VOS_STATUS
1582WLANTL_DeRegisterMgmtFrmClient
1583(
1584 v_PVOID_t pvosGCtx
1585);
1586
1587/*==========================================================================
1588
1589 FUNCTION WLANTL_TxMgmtFrm
1590
1591 DESCRIPTION
1592 Called by PE when it want to send out a management frame.
1593 HAL will also use this API for the few frames it sends out, they are not
1594 management frames howevere it is accepted that an exception will be
1595 allowed ONLY for the usage of HAL.
1596 Generic data frames SHOULD NOT travel through this function.
1597
1598 DEPENDENCIES
1599 TL must be initialized before this API can be called.
1600
1601 RESTRICTION: If PE sends another packet before TL manages to process the
1602 previously sent packet call will end in failure
1603
1604 Frames comming through here must be 802.11 frames, frame
1605 translation in UMA will be automatically disabled.
1606
1607 PARAMETERS
1608
1609 IN
1610 pvosGCtx: pointer to the global vos context;a handle to TL's
1611 control block can be extracted from its context
1612 vosFrmBuf: pointer to a vOSS buffer containing the management
1613 frame to be transmitted
1614 usFrmLen: the length of the frame to be transmitted; information
1615 is already included in the vOSS buffer
1616 wFrmType: the type of the frame being transmitted
1617 tid: tid used to transmit this frame
1618 pfnCompTxFunc: function pointer to the transmit complete routine
1619 pvBDHeader: pointer to the BD header, if NULL it means it was not
1620 yet constructed and it lies within TL's responsibility
1621 to do so; if not NULL it is expected that it was
1622 already packed inside the vos packet
1623 ucAckResponse: flag notifying it an interrupt is needed for the
1624 acknowledgement received when the frame is sent out
1625 the air and ; the interrupt will be processed by HAL,
1626 only one such frame can be pending in the system at
1627 one time.
1628
1629
1630 RETURN VALUE
1631 The result code associated with performing the operation
1632
1633 VOS_STATUS_E_INVAL: Input parameters are invalid
1634 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1635 page fault
1636 VOS_STATUS_E_EXISTS: Mgmt Frame client was not yet registered
1637 VOS_STATUS_E_BUSY: The previous Mgmt packet was not yet transmitted
1638 VOS_STATUS_SUCCESS: Everything is good :)
1639
1640 Other failure messages may be returned from the BD header handling
1641 routines, please check apropriate API for more info.
1642
1643 SIDE EFFECTS
1644
1645============================================================================*/
1646VOS_STATUS
1647WLANTL_TxMgmtFrm
1648(
1649 v_PVOID_t pvosGCtx,
1650 vos_pkt_t* vosFrmBuf,
1651 v_U16_t usFrmLen,
1652 v_U8_t ucFrmType,
1653 v_U8_t tid,
1654 WLANTL_TxCompCBType pfnCompTxFunc,
1655 v_PVOID_t voosBDHeader,
1656 v_U8_t ucAckResponse
1657);
1658
1659
1660/*----------------------------------------------------------------------------
1661 INTERACTION WITH HAL
1662 ---------------------------------------------------------------------------*/
1663
1664/*==========================================================================
1665
1666 FUNCTION WLANTL_ResetNotification
1667
1668 DESCRIPTION
1669 HAL notifies TL when the module is being reset.
1670 Currently not used.
1671
1672 DEPENDENCIES
1673
1674 PARAMETERS
1675
1676 IN
1677 pvosGCtx: pointer to the global vos context; a handle to TL's
1678 control block can be extracted from its context
1679
1680
1681 RETURN VALUE
1682 The result code associated with performing the operation
1683
1684 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1685 page fault
1686 VOS_STATUS_SUCCESS: Everything is good :)
1687
1688 SIDE EFFECTS
1689
1690============================================================================*/
1691VOS_STATUS
1692WLANTL_ResetNotification
1693(
1694 v_PVOID_t pvosGCtx
1695);
1696
1697/*==========================================================================
1698
1699 FUNCTION WLANTL_SuspendDataTx
1700
1701 DESCRIPTION
1702 HAL calls this API when it wishes to suspend transmission for a
1703 particular STA.
1704
1705 DEPENDENCIES
1706 The STA for which the request is made must be first registered with
1707 TL by HDD.
1708
1709 RESTRICTION: In case of a suspend, the flag write and read will not be
1710 locked: worst case scenario one more packet can get
1711 through before the flag gets updated (we can make this
1712 write atomic as well to guarantee consistency)
1713
1714 PARAMETERS
1715
1716 IN
1717 pvosGCtx: pointer to the global vos context; a handle to TL's
1718 control block can be extracted from its context
1719 pucSTAId: identifier of the station for which the request is made;
1720 a value of NULL assumes suspend on all active station
1721 pfnSuspendTxCB: pointer to the suspend result notification in case the
1722 call is asynchronous
1723
1724
1725 RETURN VALUE
1726 The result code associated with performing the operation
1727
1728 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1729 to TL cb is NULL ; access would cause a page fault
1730 VOS_STATUS_E_EXISTS: Station was not registered
1731 VOS_STATUS_SUCCESS: Everything is good :)
1732
1733 SIDE EFFECTS
1734
1735============================================================================*/
1736VOS_STATUS
1737WLANTL_SuspendDataTx
1738(
1739 v_PVOID_t pvosGCtx,
1740 v_U8_t* ucSTAId,
1741 WLANTL_SuspendCBType pfnSuspendTx
1742);
1743
1744/*==========================================================================
1745
1746 FUNCTION WLANTL_ResumeDataTx
1747
1748 DESCRIPTION
1749 Called by HAL to resume data transmission for a given STA.
1750
1751 WARNING: If a station was individually suspended a global resume will
1752 not resume that station
1753
1754 DEPENDENCIES
1755
1756 PARAMETERS
1757
1758 IN
1759 pvosGCtx: pointer to the global vos context; a handle to TL's
1760 control block can be extracted from its context
1761 pucSTAId: identifier of the station which is being resumed; NULL
1762 translates into global resume
1763
1764 RETURN VALUE
1765 The result code associated with performing the operation
1766
1767 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1768 to TL cb is NULL ; access would cause a page fault
1769 VOS_STATUS_E_EXISTS: Station was not registered
1770 VOS_STATUS_SUCCESS: Everything is good :)
1771
1772 SIDE EFFECTS
1773
1774============================================================================*/
1775VOS_STATUS
1776WLANTL_ResumeDataTx
1777(
1778 v_PVOID_t pvosGCtx,
1779 v_U8_t* pucSTAId
1780);
1781
1782
1783/*----------------------------------------------------------------------------
1784 CLIENT INDEPENDENT INTERFACE
1785 ---------------------------------------------------------------------------*/
1786
1787/*==========================================================================
1788
1789 FUNCTION WLANTL_GetTxPktCount
1790
1791 DESCRIPTION
1792 TL will provide the number of transmitted packets counted per
1793 STA per TID.
1794
1795 DEPENDENCIES
1796
1797 PARAMETERS
1798
1799 IN
1800 pvosGCtx: pointer to the global vos context; a handle to TL's
1801 control block can be extracted from its context
1802 ucSTAId: identifier of the station
1803 ucTid: identifier of the tspec
1804
1805 OUT
1806 puTxPktCount: the number of packets tx packet for this STA and TID
1807
1808 RETURN VALUE
1809 The result code associated with performing the operation
1810
1811 VOS_STATUS_E_INVAL: Input parameters are invalid
1812 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1813 to TL cb is NULL ; access would cause a page fault
1814 VOS_STATUS_E_EXISTS: Station was not registered
1815 VOS_STATUS_SUCCESS: Everything is good :)
1816
1817 SIDE EFFECTS
1818
1819============================================================================*/
1820VOS_STATUS
1821WLANTL_GetTxPktCount
1822(
1823 v_PVOID_t pvosGCtx,
1824 v_U8_t ucSTAId,
1825 v_U8_t ucTid,
1826 v_U32_t* puTxPktCount
1827);
1828
1829/*==========================================================================
1830
1831 FUNCTION WLANTL_GetRxPktCount
1832
1833 DESCRIPTION
1834 TL will provide the number of received packets counted per
1835 STA per TID.
1836
1837 DEPENDENCIES
1838
1839 PARAMETERS
1840
1841 IN
1842 pvosGCtx: pointer to the global vos context; a handle to TL's
1843 control block can be extracted from its context
1844 ucSTAId: identifier of the station
1845 ucTid: identifier of the tspec
1846
1847 OUT
1848 puTxPktCount: the number of packets rx packet for this STA and TID
1849
1850 RETURN VALUE
1851 The result code associated with performing the operation
1852
1853 VOS_STATUS_E_INVAL: Input parameters are invalid
1854 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
1855 to TL cb is NULL ; access would cause a page fault
1856 VOS_STATUS_E_EXISTS: Station was not registered
1857 VOS_STATUS_SUCCESS: Everything is good :)
1858
1859 SIDE EFFECTS
1860
1861============================================================================*/
1862VOS_STATUS
1863WLANTL_GetRxPktCount
1864(
1865 v_PVOID_t pvosGCtx,
1866 v_U8_t ucSTAId,
1867 v_U8_t ucTid,
1868 v_U32_t* puRxPktCount
1869);
1870
1871/*==========================================================================
1872 VOSS SCHEDULER INTERACTION
1873 ==========================================================================*/
1874
1875/*==========================================================================
1876 FUNCTION WLANTL_McProcessMsg
1877
1878 DESCRIPTION
1879 Called by VOSS when a message was serialized for TL through the
1880 main thread/task.
1881
1882 DEPENDENCIES
1883 The TL must be initialized before this function can be called.
1884
1885 PARAMETERS
1886
1887 IN
1888 pvosGCtx: pointer to the global vos context; a handle to TL's
1889 control block can be extracted from its context
1890 message: type and content of the message
1891
1892
1893 RETURN VALUE
1894 The result code associated with performing the operation
1895
1896 VOS_STATUS_E_INVAL: invalid input parameters
1897 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1898 page fault
1899 VOS_STATUS_SUCCESS: Everything is good :)
1900
1901 SIDE EFFECTS
1902
1903============================================================================*/
1904VOS_STATUS
1905WLANTL_McProcessMsg
1906(
1907 v_PVOID_t pvosGCtx,
1908 vos_msg_t* message
1909);
1910
1911/*==========================================================================
1912 FUNCTION WLANTL_McFreeMsg
1913
1914 DESCRIPTION
1915 Called by VOSS to free a given TL message on the Main thread when there
1916 are messages pending in the queue when the whole system is been reset.
1917 For now, TL does not allocate any body so this function shout translate
1918 into a NOOP
1919
1920 DEPENDENCIES
1921 The TL must be initialized before this function can be called.
1922
1923 PARAMETERS
1924
1925 IN
1926 pvosGCtx: pointer to the global vos context; a handle to TL's
1927 control block can be extracted from its context
1928 message: type and content of the message
1929
1930
1931 RETURN VALUE
1932 The result code associated with performing the operation
1933
1934 VOS_STATUS_SUCCESS: Everything is good :)
1935
1936 SIDE EFFECTS
1937
1938============================================================================*/
1939VOS_STATUS
1940WLANTL_McFreeMsg
1941(
1942 v_PVOID_t pvosGCtx,
1943 vos_msg_t* message
1944);
1945
1946/*==========================================================================
1947 FUNCTION WLANTL_TxProcessMsg
1948
1949 DESCRIPTION
1950 Called by VOSS when a message was serialized for TL through the
1951 tx thread/task.
1952
1953 DEPENDENCIES
1954 The TL must be initialized before this function can be called.
1955
1956 PARAMETERS
1957
1958 IN
1959 pvosGCtx: pointer to the global vos context; a handle to TL's
1960 control block can be extracted from its context
1961 message: type and content of the message
1962
1963
1964 RETURN VALUE
1965 The result code associated with performing the operation
1966
1967 VOS_STATUS_E_INVAL: invalid input parameters
1968 VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
1969 page fault
1970 VOS_STATUS_SUCCESS: Everything is good :)
1971
1972 Other values can be returned as a result of a function call, please check
1973 corresponding API for more info.
1974 SIDE EFFECTS
1975
1976============================================================================*/
1977VOS_STATUS
1978WLANTL_TxProcessMsg
1979(
1980 v_PVOID_t pvosGCtx,
1981 vos_msg_t* message
1982);
1983
1984/*==========================================================================
1985 FUNCTION WLANTL_McFreeMsg
1986
1987 DESCRIPTION
1988 Called by VOSS to free a given TL message on the Main thread when there
1989 are messages pending in the queue when the whole system is been reset.
1990 For now, TL does not allocate any body so this function shout translate
1991 into a NOOP
1992
1993 DEPENDENCIES
1994 The TL must be initialized before this function can be called.
1995
1996 PARAMETERS
1997
1998 IN
1999 pvosGCtx: pointer to the global vos context; a handle to TL's
2000 control block can be extracted from its context
2001 message: type and content of the message
2002
2003
2004 RETURN VALUE
2005 The result code associated with performing the operation
2006
2007 VOS_STATUS_SUCCESS: Everything is good :)
2008
2009 SIDE EFFECTS
2010
2011============================================================================*/
2012VOS_STATUS
2013WLANTL_TxFreeMsg
2014(
2015 v_PVOID_t pvosGCtx,
2016 vos_msg_t* message
2017);
2018
2019
2020/*==========================================================================
2021 FUNCTION WLANTL_EnableUAPSDForAC
2022
2023 DESCRIPTION
2024 Called by HDD to enable UAPSD in TL. TL is in charge for sending trigger
2025 frames.
2026
2027 DEPENDENCIES
2028 The TL must be initialized before this function can be called.
2029
2030 PARAMETERS
2031
2032 IN
2033 pvosGCtx: pointer to the global vos context; a handle to TL's
2034 control block can be extracted from its context
2035 ucSTAId: station Id
2036 ucACId: AC for which U-APSD is being enabled
2037 ucTid TSpec Id
2038 uServiceInt: service interval used by TL to send trigger frames
2039 uSuspendInt: suspend interval used by TL to determine that an
2040 app is idle and should start sending trigg frms less often
2041 wTSDir: direction of TSpec
2042
2043 RETURN VALUE
2044 The result code associated with performing the operation
2045
2046 VOS_STATUS_SUCCESS: Everything is good :)
2047
2048 SIDE EFFECTS
2049
2050============================================================================*/
2051VOS_STATUS
2052WLANTL_EnableUAPSDForAC
2053(
2054 v_PVOID_t pvosGCtx,
2055 v_U8_t ucSTAId,
2056 WLANTL_ACEnumType ucACId,
2057 v_U8_t ucTid,
2058 v_U8_t ucUP,
2059 v_U32_t uServiceInt,
2060 v_U32_t uSuspendInt,
2061 WLANTL_TSDirType wTSDir
2062);
2063
2064
2065/*==========================================================================
2066 FUNCTION WLANTL_DisableUAPSDForAC
2067
2068 DESCRIPTION
2069 Called by HDD to disable UAPSD in TL. TL will stop sending trigger
2070 frames.
2071
2072 DEPENDENCIES
2073 The TL must be initialized before this function can be called.
2074
2075 PARAMETERS
2076
2077 IN
2078 pvosGCtx: pointer to the global vos context; a handle to TL's
2079 control block can be extracted from its context
2080 ucSTAId: station Id
2081 ucACId: AC for which U-APSD is being enabled
2082
2083
2084 RETURN VALUE
2085 The result code associated with performing the operation
2086
2087 VOS_STATUS_SUCCESS: Everything is good :)
2088
2089 SIDE EFFECTS
2090
2091============================================================================*/
2092VOS_STATUS
2093WLANTL_DisableUAPSDForAC
2094(
2095 v_PVOID_t pvosGCtx,
2096 v_U8_t ucSTAId,
2097 WLANTL_ACEnumType ucACId
2098);
2099
2100#if defined WLAN_FEATURE_NEIGHBOR_ROAMING
2101/*==========================================================================
2102 FUNCTION WLANTL_RegRSSIIndicationCB
2103
2104 DESCRIPTION Registration function to get notification if RSSI cross
2105 threshold.
2106 Client should register threshold, direction, and notification
2107 callback function pointer
2108
2109 DEPENDENCIES NONE
2110
2111 PARAMETERS in pAdapter - Global handle
2112 in rssiValue - RSSI threshold value
2113 in triggerEvent - Cross direction should be notified
2114 UP, DOWN, and CROSS
2115 in crossCBFunction - Notification CB Function
2116 in usrCtxt - user context
2117
2118 RETURN VALUE VOS_STATUS
2119
2120 SIDE EFFECTS NONE
2121
2122============================================================================*/
2123VOS_STATUS WLANTL_RegRSSIIndicationCB
2124(
2125 v_PVOID_t pAdapter,
2126 v_S7_t rssiValue,
2127 v_U8_t triggerEvent,
2128 WLANTL_RSSICrossThresholdCBType crossCBFunction,
2129 VOS_MODULE_ID moduleID,
2130 v_PVOID_t usrCtxt
2131);
2132
2133/*==========================================================================
2134 FUNCTION WLANTL_DeregRSSIIndicationCB
2135
2136 DESCRIPTION Remove specific threshold from list
2137
2138 DEPENDENCIES NONE
2139
2140 PARAMETERS in pAdapter - Global handle
2141 in rssiValue - RSSI threshold value
2142 in triggerEvent - Cross direction should be notified
2143 UP, DOWN, and CROSS
2144
2145 RETURN VALUE VOS_STATUS
2146
2147 SIDE EFFECTS NONE
2148
2149============================================================================*/
2150VOS_STATUS WLANTL_DeregRSSIIndicationCB
2151(
2152 v_PVOID_t pAdapter,
2153 v_S7_t rssiValue,
2154 v_U8_t triggerEvent,
2155 WLANTL_RSSICrossThresholdCBType crossCBFunction,
2156 VOS_MODULE_ID moduleID
2157);
2158
2159/*==========================================================================
2160
2161 FUNCTION
2162
2163 DESCRIPTION
2164
2165 PARAMETERS
2166
2167 RETURN VALUE
2168
2169============================================================================*/
2170VOS_STATUS WLANTL_BMPSRSSIRegionChangedNotification
2171(
2172 v_PVOID_t pAdapter,
2173 tpSirRSSINotification pRSSINotification
2174);
2175
2176/*==========================================================================
2177 FUNCTION WLANTL_SetAlpha
2178
2179 DESCRIPTION ALPLA is weight value to calculate AVG RSSI
2180 avgRSSI = (ALPHA * historyRSSI) + ((10 - ALPHA) * newRSSI)
2181 avgRSSI has (ALPHA * 10)% of history RSSI weight and
2182 (10 - ALPHA)% of newRSSI weight
2183 This portion is dynamically configurable.
2184 Default is ?
2185
2186 DEPENDENCIES NONE
2187
2188 PARAMETERS in pAdapter - Global handle
2189 in valueAlpah - ALPHA
2190
2191 RETURN VALUE VOS_STATUS
2192
2193 SIDE EFFECTS NONE
2194
2195============================================================================*/
2196VOS_STATUS WLANTL_SetAlpha
2197(
2198 v_PVOID_t pAdapter,
2199 v_U8_t valueAlpha
2200);
2201
2202/*==========================================================================
2203 FUNCTION WLANTL_RegGetTrafficStatus
2204
2205 DESCRIPTION Registration function for traffic status monitoring
2206 During measure period count data frames.
2207 If frame count is larger then IDLE threshold set as traffic ON
2208 or OFF.
2209 And traffic status is changed send report to client with
2210 registered callback function
2211
2212 DEPENDENCIES NONE
2213
2214 PARAMETERS in pAdapter - Global handle
2215 in idleThreshold - Traffic on or off threshold
2216 in measurePeriod - Traffic state check period
2217 in trfficStatusCB - traffic status changed notification
2218 CB function
2219 in usrCtxt - user context
2220
2221 RETURN VALUE VOS_STATUS
2222
2223 SIDE EFFECTS NONE
2224
2225============================================================================*/
2226VOS_STATUS WLANTL_RegGetTrafficStatus
2227(
2228 v_PVOID_t pAdapter,
2229 v_U32_t idleThreshold,
2230 v_U32_t measurePeriod,
2231 WLANTL_TrafficStatusChangedCBType trfficStatusCB,
2232 v_PVOID_t usrCtxt
2233);
2234#endif
2235/*==========================================================================
2236 FUNCTION WLANTL_GetStatistics
2237
2238 DESCRIPTION Get traffic statistics for identified station
2239
2240 DEPENDENCIES NONE
2241
2242 PARAMETERS in pAdapter - Global handle
2243 in statType - specific statistics field to reset
2244 out statBuffer - traffic statistics buffer
2245
2246 RETURN VALUE VOS_STATUS
2247
2248 SIDE EFFECTS NONE
2249
2250============================================================================*/
2251VOS_STATUS WLANTL_GetStatistics
2252(
2253 v_PVOID_t pAdapter,
2254 WLANTL_TRANSFER_STA_TYPE *statBuffer,
2255 v_U8_t STAid
2256);
2257
2258/*==========================================================================
2259 FUNCTION WLANTL_ResetStatistics
2260
2261 DESCRIPTION Reset statistics structure for identified station ID
2262 Reset means set values as 0
2263
2264 DEPENDENCIES NONE
2265
2266 PARAMETERS in pAdapter - Global handle
2267 in statType - specific statistics field to reset
2268
2269 RETURN VALUE VOS_STATUS
2270
2271 SIDE EFFECTS NONE
2272
2273============================================================================*/
2274VOS_STATUS WLANTL_ResetStatistics
2275(
2276 v_PVOID_t pAdapter,
2277 v_U8_t STAid
2278);
2279
2280/*==========================================================================
2281 FUNCTION WLANTL_GetSpecStatistic
2282
2283 DESCRIPTION Get specific field within statistics structure for
2284 identified station ID
2285
2286 DEPENDENCIES NONE
2287
2288 PARAMETERS in pAdapter - Global handle
2289 in statType - specific statistics field to reset
2290 in STAid - Station ID
2291 out buffer - Statistic value
2292
2293 RETURN VALUE VOS_STATUS
2294
2295 SIDE EFFECTS NONE
2296
2297============================================================================*/
2298VOS_STATUS WLANTL_GetSpecStatistic
2299(
2300 v_PVOID_t pAdapter,
2301 WLANTL_TRANSFER_STATIC_TYPE statType,
2302 v_U32_t *buffer,
2303 v_U8_t STAid
2304);
2305
2306/*==========================================================================
2307 FUNCTION WLANTL_ResetSpecStatistic
2308
2309 DESCRIPTION Reset specific field within statistics structure for
2310 identified station ID
2311 Reset means set as 0
2312
2313 DEPENDENCIES NONE
2314
2315 PARAMETERS in pAdapter - Global handle
2316 in statType - specific statistics field to reset
2317 in STAid - Station ID
2318
2319 RETURN VALUE VOS_STATUS
2320
2321 SIDE EFFECTS NONE
2322
2323============================================================================*/
2324VOS_STATUS WLANTL_ResetSpecStatistic
2325(
2326 v_PVOID_t pAdapter,
2327 WLANTL_TRANSFER_STATIC_TYPE statType,
2328 v_U8_t STAid
2329);
Jeff Johnson295189b2012-06-20 16:38:30 -07002330/*===============================================================================
2331 FUNCTION WLANTL_IsReplayPacket
2332
2333 DESCRIPTION This function does replay check for valid stations
2334
2335 DEPENDENCIES Validity of replay check must be done before the function
2336 is called
2337
2338 PARAMETERS currentReplayCounter current replay counter taken from RX BD
2339 previousReplayCounter previous replay counter taken from TL CB
2340
2341 RETRUN VOS_TRUE packet is a replay packet
2342 VOS_FALSE packet is not a replay packet
2343
2344 SIDE EFFECTS none
2345 ===============================================================================*/
2346v_BOOL_t WLANTL_IsReplayPacket
2347(
2348 v_U64_t currentReplayCounter,
2349 v_U64_t previousReplayCounter
2350);
2351
2352/*===============================================================================
2353 FUNCTION WLANTL_GetReplayCounterFromRxBD
2354
2355 DESCRIPTION This function extracts 48-bit replay packet number from RX BD
2356
2357 DEPENDENCIES Validity of replay check must be done before the function
2358 is called
2359
2360 PARAMETERS pucRxHeader pointer to RX BD header
2361
2362 RETRUN v_U64_t Packet number extarcted from RX BD
2363
2364 SIDE EFFECTS none
2365 ===============================================================================*/
2366v_U64_t
2367WLANTL_GetReplayCounterFromRxBD
2368(
2369 v_U8_t *pucRxBDHeader
2370);
Jeff Johnson295189b2012-06-20 16:38:30 -07002371
2372
2373
2374/*
2375 DESCRIPTION
2376 TL returns the weight currently maintained in TL.
2377 IN
2378 pvosGCtx: pointer to the global vos context; a handle to TL's
2379 or SME's control block can be extracted from its context
2380
2381 OUT
2382 pACWeights: Caller allocated memory for filling in weights
2383
2384 RETURN VALUE VOS_STATUS
2385*/
2386VOS_STATUS
2387WLANTL_GetACWeights
2388(
2389 v_PVOID_t pvosGCtx,
2390 v_U8_t* pACWeights
2391);
2392
2393
2394/*
2395 DESCRIPTION
2396 Change the weight currently maintained by TL.
2397 IN
2398 pvosGCtx: pointer to the global vos context; a handle to TL's
2399 or SME's control block can be extracted from its context
2400 pACWeights: Caller allocated memory contain the weights to use
2401
2402
2403 RETURN VALUE VOS_STATUS
2404*/
2405VOS_STATUS
2406WLANTL_SetACWeights
2407(
2408 v_PVOID_t pvosGCtx,
2409 v_U8_t* pACWeights
2410);
2411
Jeff Johnson295189b2012-06-20 16:38:30 -07002412/*==========================================================================
2413 FUNCTION WLANTL_GetSoftAPStatistics
2414
2415 DESCRIPTION Collect the cumulative statistics for all Softap stations
2416
2417 DEPENDENCIES NONE
2418
2419 PARAMETERS in pvosGCtx - Pointer to the global vos context
2420 bReset - If set TL statistics will be cleared after reading
2421 out statsSum - pointer to collected statistics
2422
2423 RETURN VALUE VOS_STATUS_SUCCESS : if the Statistics are successfully extracted
2424
2425 SIDE EFFECTS NONE
2426
2427============================================================================*/
2428VOS_STATUS WLANTL_GetSoftAPStatistics(v_PVOID_t pAdapter, WLANTL_TRANSFER_STA_TYPE *statsSum, v_BOOL_t bReset);
Jeff Johnson295189b2012-06-20 16:38:30 -07002429
2430#ifdef __cplusplus
2431 }
2432#endif
2433
2434
2435 /*===========================================================================
2436
2437 FUNCTION WLANTL_AssocFailed
2438
2439 DESCRIPTION
2440
2441 This function is used by PE to notify TL that cache needs to flushed
2442 when association is not successfully completed
2443
2444 Internally, TL post a message to TX_Thread to serialize the request to
2445 keep lock-free mechanism.
2446
2447
2448 DEPENDENCIES
2449
2450 TL must have been initialized before this gets called.
2451
2452
2453 PARAMETERS
2454
2455 ucSTAId: station id
2456
2457 RETURN VALUE
2458
2459 none
2460
2461 SIDE EFFECTS
2462 There may be race condition that PE call this API and send another association
2463 request immediately with same staId before TX_thread can process the message.
2464
2465 To avoid this, we might need PE to wait for TX_thread process the message,
2466 but this is not currently implemented.
2467
2468============================================================================*/
2469void WLANTL_AssocFailed(v_U8_t staId);
2470
2471
2472/*===============================================================================
2473 FUNCTION WLANTL_PostResNeeded
2474
2475 DESCRIPTION This function posts message to TL to reserve BD/PDU memory
2476
2477 DEPENDENCIES None
2478
2479 PARAMETERS pvosGCtx
2480
2481 RETURN None
2482
2483 SIDE EFFECTS none
2484 ===============================================================================*/
2485
2486void WLANTL_PostResNeeded(v_PVOID_t pvosGCtx);
2487
2488/*===========================================================================
2489
2490 FUNCTION WLANTL_Finish_ULA
2491
2492 DESCRIPTION
2493 This function is used by HDD to notify TL to finish Upper layer authentication
2494 incase the last EAPOL packet is pending in the TL queue.
2495 To avoid the race condition between sme set key and the last EAPOL packet
2496 the HDD module calls this function just before calling the sme_RoamSetKey.
2497
2498 DEPENDENCIES
2499
2500 TL must have been initialized before this gets called.
2501
2502
2503 PARAMETERS
2504
2505 callbackRoutine: HDD Callback function.
2506 callbackContext : HDD userdata context.
2507
2508 RETURN VALUE
2509
2510 VOS_STATUS_SUCCESS/VOS_STATUS_FAILURE
2511
2512 SIDE EFFECTS
2513
2514============================================================================*/
2515
2516VOS_STATUS WLANTL_Finish_ULA( void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08002517 void *callbackContext);
Jeff Johnson295189b2012-06-20 16:38:30 -07002518
2519/*===============================================================================
2520 FUNCTION WLANTL_UpdateRssiBmps
2521
2522 DESCRIPTION This function updates the TL's RSSI (in BMPS mode)
2523
2524 DEPENDENCIES None
2525
2526 PARAMETERS
2527
2528 pvosGCtx VOS context VOS Global context
2529 staId Station ID Station ID
2530 rssi RSSI (BMPS mode) RSSI in BMPS mode
2531
2532 RETURN None
2533
2534 SIDE EFFECTS none
2535 ===============================================================================*/
2536
2537void WLANTL_UpdateRssiBmps(v_PVOID_t pvosGCtx, v_U8_t staId, v_S7_t rssi);
2538
Gopichand Nakkala11acd112012-12-31 16:04:04 -08002539/*==========================================================================
2540 FUNCTION WLANTL_SetTxXmitPending
2541
2542 DESCRIPTION
2543 Called by the WDA when it wants to indicate that WDA_DS_TX_START_XMIT msg
2544 is pending in TL msg queue
2545
2546 DEPENDENCIES
2547 The TL must be registered with WDA before this function can be called.
2548
2549 PARAMETERS
2550
2551 IN
2552 pvosGCtx: pointer to the global vos context; a handle to TL's
2553 or WDA's control block can be extracted from its context
2554
2555 RETURN VALUE None
2556
2557 SIDE EFFECTS
2558
2559============================================================================*/
2560
2561v_VOID_t
2562WLANTL_SetTxXmitPending
2563(
2564 v_PVOID_t pvosGCtx
2565);
2566
2567/*==========================================================================
2568 FUNCTION WLANTL_IsTxXmitPending
2569
2570 DESCRIPTION
2571 Called by the WDA when it wants to know whether WDA_DS_TX_START_XMIT msg
2572 is pending in TL msg queue
2573
2574 DEPENDENCIES
2575 The TL must be registered with WDA before this function can be called.
2576
2577 PARAMETERS
2578
2579 IN
2580 pvosGCtx: pointer to the global vos context; a handle to TL's
2581 or WDA's control block can be extracted from its context
2582
2583 RETURN VALUE
2584 The result code associated with performing the operation
2585
2586 0: No WDA_DS_TX_START_XMIT msg pending
2587 1: Msg WDA_DS_TX_START_XMIT already pending in TL msg queue
2588
2589 SIDE EFFECTS
2590
2591============================================================================*/
2592
2593v_BOOL_t
2594WLANTL_IsTxXmitPending
2595(
2596 v_PVOID_t pvosGCtx
2597);
2598
2599/*==========================================================================
2600 FUNCTION WLANTL_ClearTxXmitPending
2601
2602 DESCRIPTION
2603 Called by the WDA when it wants to indicate that no WDA_DS_TX_START_XMIT msg
2604 is pending in TL msg queue
2605
2606 DEPENDENCIES
2607 The TL must be registered with WDA before this function can be called.
2608
2609 PARAMETERS
2610
2611 IN
2612 pvosGCtx: pointer to the global vos context; a handle to TL's
2613 or WDA's control block can be extracted from its context
2614
2615 RETURN VALUE None
2616
2617 SIDE EFFECTS
2618
2619============================================================================*/
2620
2621v_VOID_t
2622WLANTL_ClearTxXmitPending
2623(
2624 v_PVOID_t pvosGCtx
2625);
2626
Shailender Karmuchia734f332013-04-19 14:02:48 -07002627/*==========================================================================
2628 FUNCTION WLANTL_UpdateSTABssIdforIBSS
2629
2630 DESCRIPTION
2631 HDD will call this API to update the BSSID for this Station.
2632
2633 DEPENDENCIES
2634 The HDD Should registered the staID with TL before calling this function.
2635
2636 PARAMETERS
2637
2638 IN
2639 pvosGCtx: Pointer to the global vos context; a handle to TL's
2640 or WDA's control block can be extracted from its context
2641 IN
2642 ucSTAId The Station ID for Bssid to be updated
2643 IN
2644 pBssid BSSID to be updated
2645
2646 RETURN VALUE
2647 The result code associated with performing the operation
2648
2649 VOS_STATUS_E_INVAL: Input parameters are invalid
2650 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
2651 TL cb is NULL ; access would cause a page fault
2652 VOS_STATUS_E_EXISTS: Station was not registered
2653 VOS_STATUS_SUCCESS: Everything is good :)
2654
Madan Mohan Koyyalamudia96f5442013-05-10 11:32:06 +05302655 SIDE EFFECTS
Shailender Karmuchia734f332013-04-19 14:02:48 -07002656============================================================================*/
2657
2658VOS_STATUS
2659WLANTL_UpdateSTABssIdforIBSS
2660(
2661 v_PVOID_t pvosGCtx,
2662 v_U8_t ucSTAId,
2663 v_U8_t *pBssid
2664);
2665
2666
2667
Gopichand Nakkala8a2b1442013-05-29 15:33:14 +05302668/*===============================================================================
2669 FUNCTION WLANTL_UpdateLinkCapacity
2670
2671 DESCRIPTION This function updates the STA's Link Capacity in TL
2672
2673 DEPENDENCIES None
2674
2675 PARAMETERS
2676
2677 pvosGCtx VOS context VOS Global context
2678 staId Station ID Station ID
2679 linkCapacity linkCapacity Link Capacity
2680
2681 RETURN None
2682
2683 SIDE EFFECTS none
2684 ===============================================================================*/
2685
2686void
2687WLANTL_UpdateLinkCapacity
2688(
2689 v_PVOID_t pvosGCtx,
2690 v_U8_t staId,
2691 v_U32_t linkCapacity);
2692
2693/*===========================================================================
2694
2695 FUNCTION WLANTL_GetSTALinkCapacity
2696
2697 DESCRIPTION
2698
2699 Returns Link Capacity of a particular STA.
2700
2701 DEPENDENCIES
2702
2703 A station must have been registered before its state can be retrieved.
2704
Gopichand Nakkala8a2b1442013-05-29 15:33:14 +05302705 PARAMETERS
2706
2707 IN
2708 pvosGCtx: pointer to the global vos context; a handle to TL's
2709 control block can be extracted from its context
2710 ucSTAId: identifier of the station
2711
2712 OUT
2713 plinkCapacity: the current link capacity the connection to
2714 the given station
2715
2716
2717 RETURN VALUE
2718
2719 The result code associated with performing the operation
2720
2721 VOS_STATUS_E_INVAL: Input parameters are invalid
2722 VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
2723 TL cb is NULL ; access would cause a page fault
2724 VOS_STATUS_E_EXISTS: Station was not registered
2725 VOS_STATUS_SUCCESS: Everything is good :)
2726
2727 SIDE EFFECTS
2728
2729============================================================================*/
Madan Mohan Koyyalamudia96f5442013-05-10 11:32:06 +05302730
Gopichand Nakkala8a2b1442013-05-29 15:33:14 +05302731VOS_STATUS
2732WLANTL_GetSTALinkCapacity
2733(
2734 v_PVOID_t pvosGCtx,
2735 v_U8_t ucSTAId,
2736 v_U32_t *plinkCapacity
2737);
Madan Mohan Koyyalamudia96f5442013-05-10 11:32:06 +05302738
2739/*===========================================================================
2740 FUNCTION WLANTL_TxThreadDebugHandler
2741
2742 DESCRIPTION
2743 Printing TL Snapshot dump, processed under TxThread context, currently
2744 information regarding the global TlCb struture. Dumps information related
2745 to per active STA connection currently in use by TL.
2746
2747 DEPENDENCIES
2748 The TL must be initialized before this gets called.
2749
2750 PARAMETERS
2751
2752 IN
2753 pvosGCtx: Pointer to the global vos context; a handle to TL's
2754 or WDA's control block can be extracted from its context
2755
2756 RETURN VALUE None
2757
2758 SIDE EFFECTS
2759============================================================================*/
2760
2761v_VOID_t
2762WLANTL_TxThreadDebugHandler
2763(
2764 v_PVOID_t *pvosGCtx
2765);
2766
2767/*==========================================================================
2768 FUNCTION WLANTL_TLDebugMessage
2769
2770 DESCRIPTION
2771 Post a TL Snapshot request, posts message in TxThread.
2772
2773 DEPENDENCIES
2774 The TL must be initialized before this gets called.
2775
2776 PARAMETERS
2777
2778 IN
2779 displaySnapshot Boolean showing whether to dump the snapshot or not.
2780
2781 RETURN VALUE None
2782
2783 SIDE EFFECTS
2784
2785============================================================================*/
2786
2787v_VOID_t
2788WLANTL_TLDebugMessage
2789(
2790 v_BOOL_t displaySnapshot
2791);
2792
Jeff Johnson295189b2012-06-20 16:38:30 -07002793#endif /* #ifndef WLAN_QCT_WLANTL_H */