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