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