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