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