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