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