prima: WLAN Driver Release 3.1.7.9
This is the initial release of the Prima WLAN Driver
diff --git a/CORE/TL/inc/wlan_qct_tl.h b/CORE/TL/inc/wlan_qct_tl.h
new file mode 100644
index 0000000..610408c
--- /dev/null
+++ b/CORE/TL/inc/wlan_qct_tl.h
@@ -0,0 +1,2446 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * */
+
+#ifndef WLAN_QCT_WLANTL_H
+#define WLAN_QCT_WLANTL_H
+
+/*===========================================================================
+
+ W L A N T R A N S P O R T L A Y E R
+ E X T E R N A L A P I
+
+
+DESCRIPTION
+ This file contains the external API exposed by the wlan transport layer
+ module.
+
+
+ Copyright (c) 2008 QUALCOMM Incorporated. All Rights Reserved.
+ Qualcomm Confidential and Proprietary
+===========================================================================*/
+
+
+/*===========================================================================
+
+ EDIT HISTORY FOR FILE
+
+
+ This section contains comments describing changes made to the module.
+ Notice that changes are listed in reverse chronological order.
+
+
+ $Header:$ $DateTime: $ $Author: $
+
+
+when who what, where, why
+-------- --- ----------------------------------------------------------
+01/08/10 lti Added TL Data Caching
+10/15/09 rnair Modifying STADescType struct
+10/06/09 rnair Adding support for WAPI
+09/22/09 lti Add deregistration API for management client
+02/02/09 sch Add Handoff support
+12/09/08 lti Fixes for AMSS compilation
+09/05/08 lti Fixes after QOS unit testing
+08/06/08 lti Added QOS support
+05/01/08 lti Created module.
+
+===========================================================================*/
+
+
+
+/*===========================================================================
+
+ INCLUDE FILES FOR MODULE
+
+===========================================================================*/
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+#include "vos_api.h"
+#include "vos_packet.h"
+#include "sirApi.h"
+#ifdef WLAN_SOFTAP_FEATURE
+#include "csrApi.h"
+#include "sapApi.h"
+#endif
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+/*Offset of the OUI field inside the LLC/SNAP header*/
+#define WLANTL_LLC_OUI_OFFSET 3
+
+/*Size of the OUI type field inside the LLC/SNAP header*/
+#define WLANTL_LLC_OUI_SIZE 3
+
+/*Offset of the LLC/SNAP header*/
+#define WLANTL_LLC_SNAP_OFFSET 0
+
+/*Size of the LLC/SNAP header*/
+#define WLANTL_LLC_SNAP_SIZE 8
+
+/*============================================================================
+ * GENERIC STRUCTURES - not belonging to TL
+ * TO BE MOVED TO A GLOBAL HEADER
+ ============================================================================*/
+/*Maximum number of ACs */
+#define WLANTL_MAX_AC 4
+
+#ifdef WLAN_SOFTAP_FEATURE
+
+/* Bit Mask to represent All Stations */
+#define WLAN_ALL_STA 0xFF
+
+/* Maximum number of station supported by TL, including BC. */
+#define WLAN_MAX_STA_COUNT (HAL_NUM_STA)
+
+/* The symbolic station ID return to HDD to specify the packet is bc/mc */
+#define WLAN_RX_BCMC_STA_ID (WLAN_MAX_STA_COUNT + 1)
+
+/* The symbolic station ID return to HDD to specify the packet is to soft-AP itself */
+#define WLAN_RX_SAP_SELF_STA_ID (WLAN_MAX_STA_COUNT + 2)
+
+/* Used by HDS systme. This station ID is used by TL to tell upper layer that
+ this packet is for WDS and not for a loopback for an associated station. */
+#define WLANTL_RX_WDS_STAID WLAN_MAX_STA_COUNT
+
+/* Station ID used for BC traffic. This value will be used when upper layer registers
+ the broadcast client or allocate station strcuture to keep per-station info.*/
+//#define WLANTL_BC_STA_ID 0x00
+
+#endif
+
+#ifdef ANI_CHIPSET_VOLANS
+#define WLANTL_MAX_TID 15
+#endif
+/*--------------------------------------------------------------------------
+ Access category enum used by TL
+ - order must be kept as these values are used to setup the AC mask
+ --------------------------------------------------------------------------*/
+typedef enum
+{
+ WLANTL_AC_BK = 0,
+ WLANTL_AC_BE = 1,
+ WLANTL_AC_VI = 2,
+ WLANTL_AC_VO = 3
+}WLANTL_ACEnumType;
+
+/*---------------------------------------------------------------------------
+ STA Type
+---------------------------------------------------------------------------*/
+typedef enum
+{
+ /* Indicates a link to an AP*/
+ WLAN_STA_INFRA = 0,
+
+ /* AD-hoc link*/
+ WLAN_STA_IBSS,
+
+ /* BT-AMP link*/
+ WLAN_STA_BT_AMP,
+
+#ifdef WLAN_SOFTAP_FEATURE
+ /* SoftAP station */
+ WLAN_STA_SOFTAP,
+#endif
+
+ /* Invalid link*/
+ WLAN_STA_MAX
+
+}WLAN_STAType;
+
+/*---------------------------------------------------------------------------
+ BAP Management frame type
+---------------------------------------------------------------------------*/
+typedef enum
+{
+ /* BT-AMP packet of type data */
+ WLANTL_BT_AMP_TYPE_DATA = 0x0001,
+
+ /* BT-AMP packet of type activity report */
+ WLANTL_BT_AMP_TYPE_AR = 0x0002,
+
+ /* BT-AMP packet of type security frame */
+ WLANTL_BT_AMP_TYPE_SEC = 0x0003,
+
+ /* BT-AMP packet of type Link Supervision request frame */
+ WLANTL_BT_AMP_TYPE_LS_REQ = 0x0004,
+
+ /* BT-AMP packet of type Link Supervision reply frame */
+ WLANTL_BT_AMP_TYPE_LS_REP = 0x0005,
+
+ /* Invalid Frame */
+ WLANTL_BAP_INVALID_FRAME
+
+} WLANTL_BAPFrameEnumType;
+
+#ifdef WLAN_SOFTAP_FEATURE
+/* Type used to specify LWM threshold unit */
+typedef enum {
+ WLAN_LWM_THRESHOLD_BYTE = 0,
+
+ WLAN_LWM_THRESHOLD_PACKET
+} WLAN_LWM_Threshold_Type;
+#endif
+
+/*---------------------------------------------------------------------------
+ TL States
+---------------------------------------------------------------------------*/
+typedef enum
+{
+ /* Transition in this state made upon creation*/
+ WLANTL_STA_INIT = 0,
+
+ /* Transition happens after Assoc success if second level authentication
+ is needed*/
+ WLANTL_STA_CONNECTED,
+
+ /* Transition happens when second level auth is successful and keys are
+ properly installed */
+ WLANTL_STA_AUTHENTICATED,
+
+ /* Transition happens when connectivity is lost*/
+ WLANTL_STA_DISCONNECTED,
+
+ WLANTL_STA_MAX_STATE
+}WLANTL_STAStateType;
+
+
+/*---------------------------------------------------------------------------
+ STA Descriptor Type
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /*STA unique identifier, originating from HAL*/
+ v_U8_t ucSTAId;
+
+ /*STA MAC Address*/
+ v_MACADDR_t vSTAMACAddress;
+
+ /*BSSID for IBSS*/
+ v_MACADDR_t vBSSIDforIBSS;
+
+ /*Self MAC Address*/
+ v_MACADDR_t vSelfMACAddress;
+
+ /*Type of the STA*/
+ WLAN_STAType wSTAType;
+
+ /*flag for setting the state of the QOS for the link*/
+ v_U8_t ucQosEnabled;
+
+ /*enable FT in TL */
+ v_U8_t ucSwFrameTXXlation;
+ v_U8_t ucSwFrameRXXlation;
+
+ /*Flag for signaling TL if LLC header needs to be added for outgoing
+ packets*/
+ v_U8_t ucAddRmvLLC;
+
+ /*Flag for signaling if the privacy bit needs to be set*/
+ v_U8_t ucProtectedFrame;
+
+ /*DPU Signature used for unicast data - used for data caching*/
+ v_U8_t ucUcastSig;
+ /*Flag to indicate if STA is a WAPI STA*/
+ v_U8_t ucIsWapiSta;
+
+#ifdef FEATURE_WLAN_CCX
+ /*Flag to indicate if STA is a CCX STA*/
+ v_U8_t ucIsCcxSta;
+#endif
+
+ /*DPU Signature used for broadcast data - used for data caching*/
+ v_U8_t ucBcastSig;
+
+ /*Initial state at which the STA should be brought up to*/
+ WLANTL_STAStateType ucInitState;
+#ifdef ANI_CHIPSET_VOLANS
+ /* 1 means replay check is needed for the station,
+ 0 means replay check is not needed for the station*/
+ v_BOOL_t ucIsReplayCheckValid;
+#endif
+}WLAN_STADescType;
+
+/*---------------------------------------------------------------------------
+ TL Configuration
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /*AC weight for WFQ*/
+ v_U8_t ucAcWeights[WLANTL_MAX_AC];
+
+ /*Delayed trigger frame timmer: - used by TL to send trigger frames less
+ often when it has established that the App is suspended*/
+ v_U32_t uDelayedTriggerFrmInt;
+
+#ifdef WLAN_SOFTAP_FEATURE
+ /* Min Threshold for Processing Frames in TL */
+ v_U8_t uMinFramesProcThres;
+#endif
+}WLANTL_ConfigInfoType;
+
+/*---------------------------------------------------------------------------
+ TSPEC Direction Enum Type
+---------------------------------------------------------------------------*/
+typedef enum
+{
+ /* uplink */
+ WLANTL_TX_DIR = 0,
+
+ /* downlink */
+ WLANTL_RX_DIR = 1,
+
+ /*bidirectional*/
+ WLANTL_BI_DIR = 2,
+}WLANTL_TSDirType;
+
+/*============================================================================
+ * GENERIC STRUCTURES - END
+ ============================================================================*/
+
+
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+
+/*---------------------------------------------------------------------------
+ TL Error Type
+---------------------------------------------------------------------------*/
+typedef enum
+{
+ /* Generic error */
+ WLANTL_ERROR = 0,
+
+ /* No rx callback registered for data path */
+ WLANTL_NO_RX_DATA_CB,
+
+ /* No rx callback registered for management path*/
+ WLANTL_NO_RX_MGMT_CB,
+
+ /* Generic memory error*/
+ WLANTL_MEM_ERROR,
+
+ /* Bus error notified by BAL */
+ WLANTL_BUS_ERROR
+
+}WLANTL_ErrorType;
+
+/*---------------------------------------------------------------------------
+ STA priority type
+---------------------------------------------------------------------------*/
+typedef enum
+{
+ /* STA gets to tx every second round*/
+ WLANTL_STA_PRI_VERY_LOW = -2,
+
+ /* STA gets to tx every other round*/
+ WLANTL_STA_PRI_LOW = -1,
+
+ /* STA gets to tx each time */
+ WLANTL_STA_PRI_NORMAL = 0,
+
+ /* STA gets to tx twice each time*/
+ WLANTL_STA_PRI_HIGH = 1,
+
+ /* STA gets to tx three times each time*/
+ WLANTL_STA_PRI_VERY_HIGH = 2
+
+}WLANTL_STAPriorityType;
+
+/*---------------------------------------------------------------------------
+ Meta information requested from HDD by TL
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /* TID of the packet being sent */
+ v_U8_t ucTID;
+
+ /* UP of the packet being sent */
+ v_U8_t ucUP;
+
+ /* notifying TL if this is an EAPOL frame or not */
+ v_U8_t ucIsEapol;
+#ifdef FEATURE_WLAN_WAPI
+ /* notifying TL if this is a WAI frame or not */
+ v_U8_t ucIsWai;
+#endif
+ /* frame is 802.11 and it does not need translation */
+ v_U8_t ucDisableFrmXtl;
+
+ /* frame is broadcast */
+ v_U8_t ucBcast;
+
+ /* frame is multicast */
+ v_U8_t ucMcast;
+
+ /* frame type */
+ v_U8_t ucType;
+
+ /* timestamp */
+ v_U16_t usTimeStamp;
+
+ /* STA has more packets to send */
+ v_BOOL_t bMorePackets;
+}WLANTL_MetaInfoType;
+
+/*---------------------------------------------------------------------------
+ Meta information provided by TL to HDD on rx path
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /* UP of the packet being sent */
+ v_U8_t ucUP;
+ /* Address 3 Index of the received packet */
+ v_U16_t ucDesSTAId;
+}WLANTL_RxMetaInfoType;
+
+
+/*---------------------------------------------------------------------------
+ Handoff support and statistics defines and enum types
+---------------------------------------------------------------------------*/
+/* Threshold crossed event type definitions */
+#define WLANTL_HO_THRESHOLD_NA 0x00
+#define WLANTL_HO_THRESHOLD_DOWN 0x01
+#define WLANTL_HO_THRESHOLD_UP 0x02
+#define WLANTL_HO_THRESHOLD_CROSS 0x04
+
+/* Realtime traffic status */
+typedef enum
+{
+ WLANTL_HO_RT_TRAFFIC_STATUS_OFF,
+ WLANTL_HO_RT_TRAFFIC_STATUS_ON
+} WLANTL_HO_RT_TRAFFIC_STATUS_TYPE;
+
+/* Non-Realtime traffic status */
+typedef enum
+{
+ WLANTL_HO_NRT_TRAFFIC_STATUS_OFF,
+ WLANTL_HO_NRT_TRAFFIC_STATUS_ON
+} WLANTL_HO_NRT_TRAFFIC_STATUS_TYPE;
+
+/* Statistics type TL supported */
+typedef enum
+{
+ WLANTL_STATIC_TX_UC_FCNT,
+ WLANTL_STATIC_TX_MC_FCNT,
+ WLANTL_STATIC_TX_BC_FCNT,
+ WLANTL_STATIC_TX_UC_BCNT,
+ WLANTL_STATIC_TX_MC_BCNT,
+ WLANTL_STATIC_TX_BC_BCNT,
+ WLANTL_STATIC_RX_UC_FCNT,
+ WLANTL_STATIC_RX_MC_FCNT,
+ WLANTL_STATIC_RX_BC_FCNT,
+ WLANTL_STATIC_RX_UC_BCNT,
+ WLANTL_STATIC_RX_MC_BCNT,
+ WLANTL_STATIC_RX_BC_BCNT,
+ WLANTL_STATIC_RX_BCNT,
+ WLANTL_STATIC_RX_BCNT_CRC_OK,
+ WLANTL_STATIC_RX_RATE
+} WLANTL_TRANSFER_STATIC_TYPE;
+
+/*---------------------------------------------------------------------------
+ Handoff support and statistics structures
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ WLANTL_HO_RT_TRAFFIC_STATUS_TYPE rtTrafficStatus;
+ WLANTL_HO_NRT_TRAFFIC_STATUS_TYPE nrtTrafficStatus;
+} WLANTL_HO_TRAFFIC_STATUS_TYPE;
+
+#ifdef WLAN_SOFTAP_FEATURE
+typedef tSap_SoftapStats WLANTL_TRANSFER_STA_TYPE;
+#else
+typedef struct
+{
+ v_U32_t txUCFcnt;
+ v_U32_t txMCFcnt;
+ v_U32_t txBCFcnt;
+ v_U32_t txUCBcnt;
+ v_U32_t txMCBcnt;
+ v_U32_t txBCBcnt;
+ v_U32_t rxUCFcnt;
+ v_U32_t rxMCFcnt;
+ v_U32_t rxBCFcnt;
+ v_U32_t rxUCBcnt;
+ v_U32_t rxMCBcnt;
+ v_U32_t rxBCBcnt;
+ v_U32_t rxBcnt;
+ v_U32_t rxBcntCRCok;
+ v_U32_t rxRate;
+}WLANTL_TRANSFER_STA_TYPE;
+#endif
+
+/* Under here not public items, just use for internal */
+/* 3 SME 1 HDD */
+#define WLANTL_MAX_AVAIL_THRESHOLD 5
+#define WLANTL_HS_NUM_CLIENT 2
+#define WLANTL_SINGLE_CLNT_THRESHOLD 4
+
+/*----------------------------------------------------------------------------
+ * TL callback types
+ *--------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Type of the tx complete callback registered with TL.
+
+ TL will call this to notify the client when a transmission for a
+ packet has ended.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to
+ TL/HAL/PE/BAP/HDD control block can be extracted from
+ its context
+ vosDataBuff: pointer to the VOSS data buffer that was transmitted
+ wTxSTAtus: status of the transmission
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_TxCompCBType)( v_PVOID_t pvosGCtx,
+ vos_pkt_t* pFrameDataBuff,
+ VOS_STATUS wTxSTAtus );
+
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH HDD
+ ---------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Type of the fetch packet callback registered with TL.
+
+ It is called by the TL when the scheduling algorithms allows for
+ transmission of another packet to the module.
+ It will be called in the context of the BAL fetch transmit packet
+ function, initiated by the bus lower layer.
+
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle
+ to TL's or HDD's control block can be extracted
+ from its context
+
+ IN/OUT
+ pucSTAId: the Id of the station for which TL is requesting a
+ packet, in case HDD does not maintain per station
+ queues it can give the next packet in its queue
+ and put in the right value for the
+ pucAC: access category requested by TL, if HDD does not have
+ packets on this AC it can choose to service another AC
+ queue in the order of priority
+
+ OUT
+ vosDataBuff: pointer to the VOSS data buffer that was transmitted
+ tlMetaInfo: meta info related to the data frame
+
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_STAFetchPktCBType)(
+ v_PVOID_t pvosGCtx,
+ v_U8_t* pucSTAId,
+ WLANTL_ACEnumType ucAC,
+ vos_pkt_t** vosDataBuff,
+ WLANTL_MetaInfoType* tlMetaInfo);
+
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Type of the receive callback registered with TL.
+
+ TL will call this to notify the client when a packet was received
+ for a registered STA.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to
+ TL's or HDD's control block can be extracted from
+ its context
+ vosDataBuff: pointer to the VOSS data buffer that was received
+ (it may be a linked list)
+ ucSTAId: station id
+ pRxMetaInfo: meta info for the received packet(s)
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_STARxCBType)( v_PVOID_t pvosGCtx,
+ vos_pkt_t* vosDataBuff,
+ v_U8_t ucSTAId,
+ WLANTL_RxMetaInfoType* pRxMetaInfo);
+
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH BAP
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Type of the receive callback registered with TL for BAP.
+
+ The registered reception callback is being triggered by TL whenever a
+ frame was received and it was filtered as a non-data BT AMP packet.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ vosDataBuff: pointer to the vOSS buffer containing the received packet;
+ no chaining will be done on this path
+ frameType: type of the frame to be indicated to BAP.
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_BAPRxCBType)( v_PVOID_t pvosGCtx,
+ vos_pkt_t* vosDataBuff,
+ WLANTL_BAPFrameEnumType frameType);
+
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Callback registered with TL for BAP, this is required inorder for
+ TL to inform BAP, that the flush operation requested has been completed.
+
+ The registered reception callback is being triggered by TL whenever a
+ frame SIR_TL_HAL_FLUSH_AC_RSP is received by TL from HAL.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ vosDataBuff: pointer to the vOSS buffer containing the received packet;
+ no chaining will be done on this path
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_FlushOpCompCBType)( v_PVOID_t pvosGCtx,
+ v_U8_t ucStaId,
+ v_U8_t ucTID,
+ v_U8_t status);
+/*----------------------------------------------------------------------------
+ INTERACTION WITH PE
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Type of the receive callback registered with TL for PE.
+
+ Upon receipt of a management frame TL will call the registered receive
+ callback and forward this frame to the interested module, in our case PE.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ vosFrmBuf: pointer to a vOSS buffer containing the management frame
+ received
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_MgmtFrmRxCBType)( v_PVOID_t pvosGCtx,
+ v_PVOID_t vosBuff);
+
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH HAL
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+ DESCRIPTION
+ Type of the fetch packet callback registered with TL.
+
+ HAL calls this API when it wishes to suspend transmission for a
+ particular STA.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier of the station for which the request is made;
+ a value of 0 assumes suspend on all active station
+ pfnSuspendTxCB: pointer to the suspend result notification in case the
+ call is asynchronous
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANTL_SuspendCBType)( v_PVOID_t pvosGCtx,
+ v_U8_t* ucSTAId,
+ VOS_STATUS vosStatus);
+
+
+/*==========================================================================
+
+ DESCRIPTION
+ Traffic status changed callback function
+ Should be registered to let client know that traffic status is changed
+ REF WLANTL_RegGetTrafficStatus
+
+ PARAMETERS
+ pAdapter Global handle pointer
+ trafficStatus RT and NRT current traffic status
+ pUserCtxt pre registered client context
+
+ RETURN VALUE
+ VOS_STATUS
+
+ SIDE EFFECTS
+ NONE
+
+============================================================================*/
+/* IF traffic status is changed, send notification to SME */
+typedef VOS_STATUS (*WLANTL_TrafficStatusChangedCBType)
+(
+ v_PVOID_t pAdapter,
+ WLANTL_HO_TRAFFIC_STATUS_TYPE trafficStatus,
+ v_PVOID_t pUserCtxt
+);
+
+/*==========================================================================
+
+ DESCRIPTION
+ RSSI threshold crossed notification callback function
+ REF WLANTL_RegRSSIIndicationCB
+
+ PARAMETERS
+ pAdapter Global handle pointer
+ rssiNotification Notification event type
+ pUserCtxt pre registered client context
+
+ RETURN VALUE
+
+ SIDE EFFECTS
+
+============================================================================*/
+/* If RSSI realm is changed, send notification to Clients, SME, HDD */
+typedef VOS_STATUS (*WLANTL_RSSICrossThresholdCBType)
+(
+ v_PVOID_t pAdapter,
+ v_U8_t rssiNotification,
+ v_PVOID_t pUserCtxt
+);
+
+/*----------------------------------------------------------------------------
+ * Function Declarations and Documentation
+ * -------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+ FUNCTION WLANTL_Open
+
+ DESCRIPTION
+ Called by HDD at driver initialization. TL will initialize all its
+ internal resources and will wait for the call to start to register
+ with the other modules.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ pTLConfig: TL Configuration
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
+ fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_Open
+(
+ v_PVOID_t pvosGCtx,
+ WLANTL_ConfigInfoType* pTLConfig
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_Start
+
+ DESCRIPTION
+ Called by HDD as part of the overall start procedure. TL will use this
+ call to register with BAL as a transport layer entity.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
+ fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ Other codes can be returned as a result of a BAL failure; see BAL API
+ for more info
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_Start
+(
+ v_PVOID_t pvosGCtx
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_Stop
+
+ DESCRIPTION
+ Called by HDD to stop operation in TL, before close. TL will suspend all
+ frame transfer operation and will wait for the close request to clean up
+ its resources.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
+ fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_Stop
+(
+ v_PVOID_t pvosGCtx
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_Close
+
+ DESCRIPTION
+ Called by HDD during general driver close procedure. TL will clean up
+ all the internal resources.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a page
+ fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_Close
+(
+ v_PVOID_t pvosGCtx
+);
+
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH HDD
+ ---------------------------------------------------------------------------*/
+/*==========================================================================
+
+ FUNCTION WLANTL_ConfigureSwFrameTXXlationForAll
+
+ DESCRIPTION
+ Function to disable/enable frame translation for all association stations.
+
+ DEPENDENCIES
+
+ PARAMETERS
+ IN
+ pvosGCtx: VOS context
+ EnableFrameXlation TRUE means enable SW translation for all stations.
+ .
+
+ RETURN VALUE
+
+ void.
+
+============================================================================*/
+void
+WLANTL_ConfigureSwFrameTXXlationForAll
+(
+ v_PVOID_t pvosGCtx,
+ v_BOOL_t enableFrameXlation
+);
+
+/*===========================================================================
+
+ FUNCTION WLANTL_RegisterSTAClient
+
+ DESCRIPTION
+
+ This function is used by HDD to register as a client for data services
+ with TL. HDD will call this API for each new station that it adds,
+ thus having the flexibility of registering different callback for each
+ STA it services.
+
+ DEPENDENCIES
+
+ TL must have been initialized before this gets called.
+
+ Restriction:
+ Main thread will have higher priority that Tx and Rx threads thus
+ guaranteeing that a station will be added before any data can be
+ received for it. (This enables TL to be lock free)
+
+ PARAMETERS
+
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ pfnStARx: function pointer to the receive packet handler from HDD
+ pfnSTATxComp: function pointer to the transmit complete confirmation
+ handler from HDD
+ pfnSTAFetchPkt: function pointer to the packet retrieval routine in HDD
+ wSTADescType: STA Descriptor, contains information related to the
+ new added STA
+
+ RETURN VALUE
+
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
+ TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was already registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_RegisterSTAClient
+(
+ v_PVOID_t pvosGCtx,
+ WLANTL_STARxCBType pfnSTARx,
+ WLANTL_TxCompCBType pfnSTATxComp,
+ WLANTL_STAFetchPktCBType pfnSTAFetchPkt,
+ WLAN_STADescType* wSTADescType ,
+ v_S7_t rssi
+);
+
+/*===========================================================================
+
+ FUNCTION WLANTL_ClearSTAClient
+
+ DESCRIPTION
+
+ HDD will call this API when it no longer needs data services for the
+ particular station.
+
+ DEPENDENCIES
+
+ A station must have been registered before the clear registration is
+ called.
+
+ PARAMETERS
+
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier for the STA to be cleared
+
+ RETURN VALUE
+
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
+ TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_ClearSTAClient
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId
+);
+
+/*===========================================================================
+
+ FUNCTION WLANTL_ChangeSTAState
+
+ DESCRIPTION
+
+ HDD will make this notification whenever a change occurs in the
+ connectivity state of a particular STA.
+
+ DEPENDENCIES
+
+ A station must have been registered before the change state can be
+ called.
+
+ RESTRICTION: A station is being notified as authenticated before the
+ keys are installed in HW. This way if a frame is received
+ before the keys are installed DPU will drop that frame.
+
+ Main thread has higher priority that Tx and Rx threads thus guaranteeing
+ the following:
+ - a station will be in assoc state in TL before TL receives any data
+ for it
+
+ PARAMETERS
+
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier for the STA that is pending transmission
+ tlSTAState: the new state of the connection to the given station
+
+
+ RETURN VALUE
+
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer to
+ TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_ChangeSTAState
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ WLANTL_STAStateType tlSTAState
+);
+
+/*===========================================================================
+
+ FUNCTION WLANTL_STAPktPending
+
+ DESCRIPTION
+
+ HDD will call this API when a packet is pending transmission in its
+ queues.
+
+ DEPENDENCIES
+
+ A station must have been registered before the packet pending
+ notification can be sent.
+
+ RESTRICTION: TL will not count packets for pending notification.
+ HDD is expected to send the notification only when
+ non-empty event gets triggered. Worst case scenario
+ is that TL might end up making a call when Hdds
+ queues are actually empty.
+
+ PARAMETERS
+
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier for the STA that is pending transmission
+ ucAC: access category of the non-empty queue
+
+ RETURN VALUE
+
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_STAPktPending
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ WLANTL_ACEnumType ucAc
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_SetSTAPriority
+
+ DESCRIPTION
+
+ TL exposes this API to allow upper layers a rough control over the
+ priority of transmission for a given station when supporting multiple
+ connections.
+
+ DEPENDENCIES
+
+ A station must have been registered before the change in priority can be
+ called.
+
+ PARAMETERS
+
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier for the STA that has to change priority
+
+ RETURN VALUE
+
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_SetSTAPriority
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ WLANTL_STAPriorityType tlSTAPri
+);
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH BAP
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+ FUNCTION WLANTL_RegisterBAPClient
+
+ DESCRIPTION
+ Called by SME to register itself as client for non-data BT-AMP packets.
+
+ DEPENDENCIES
+ TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ pfnTlBAPRxFrm: pointer to the receive processing routine for non-data
+ BT-AMP packets
+ pfnFlushOpCompleteCb:
+ pointer to the function that will inform BAP that the
+ flush operation is complete.
+
+ RETURN VALUE
+
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: BAL client was already registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_RegisterBAPClient
+(
+ v_PVOID_t pvosGCtx,
+ WLANTL_BAPRxCBType pfnTlBAPRx,
+ WLANTL_FlushOpCompCBType pfnFlushOpCompleteCb
+);
+
+
+/*==========================================================================
+
+ FUNCTION WLANTL_TxBAPFrm
+
+ DESCRIPTION
+ BAP calls this when it wants to send a frame to the module
+
+ DEPENDENCIES
+ BAP must be registered with TL before this function can be called.
+
+ RESTRICTION: BAP CANNOT push any packets to TL until it did not receive
+ a tx complete from the previous packet, that means BAP
+ sends one packet, wait for tx complete and then
+ sends another one
+
+ If BAP sends another packet before TL manages to process the
+ previously sent packet call will end in failure
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or BAP's control block can be extracted from its context
+ vosDataBuff: pointer to the vOSS buffer containing the packet to be
+ transmitted
+ pMetaInfo: meta information about the packet
+ pfnTlBAPTxComp: pointer to a transmit complete routine for notifying
+ the result of the operation over the bus
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_E_EXISTS: BAL client was not yet registered
+ VOS_STATUS_E_BUSY: The previous BT-AMP packet was not yet transmitted
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ Other failure messages may be returned from the BD header handling
+ routines, please check apropriate API for more info.
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_TxBAPFrm
+(
+ v_PVOID_t pvosGCtx,
+ vos_pkt_t* vosDataBuff,
+ WLANTL_MetaInfoType* pMetaInfo,
+ WLANTL_TxCompCBType pfnTlBAPTxComp
+);
+
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH SME
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+ FUNCTION WLANTL_GetRssi
+
+ DESCRIPTION
+ TL will extract the RSSI information from every data packet from the
+ ongoing traffic and will store it. It will provide the result to SME
+ upon request.
+
+ DEPENDENCIES
+
+ WARNING: the read and write of this value will not be protected
+ by locks, therefore the information obtained after a read
+ might not always be consistent.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ ucSTAId: station identifier for the requested value
+
+ OUT
+ puRssi: the average value of the RSSI
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: STA was not yet registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_GetRssi
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ v_S7_t* puRssi
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_GetLinkQuality
+
+ DESCRIPTION
+ TL will extract the LinkQuality information from every data packet from the
+ ongoing traffic and will store it. It will provide the result to SME
+ upon request.
+
+ DEPENDENCIES
+
+ WARNING: the read and write of this value will not be protected
+ by locks, therefore the information obtained after a read
+ might not always be consistent.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ ucSTAId: station identifier for the requested value
+
+ OUT
+ puLinkQuality: the average value of the LinkQuality
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: STA was not yet registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_GetLinkQuality
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ v_U32_t* puLinkQuality
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_FlushStaTID
+
+ DESCRIPTION
+ TL provides this API as an interface to SME (BAP) layer. TL inturn posts a
+ message to HAL. This API is called by the SME inorder to perform a flush
+ operation.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ ucSTAId: station identifier for the requested value
+ ucTid: Tspec ID for the new BA session
+
+ OUT
+ The response for this post is received in the main thread, via a response
+ message from HAL to TL.
+
+ RETURN VALUE
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+============================================================================*/
+VOS_STATUS
+WLANTL_FlushStaTID
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ v_U8_t ucTid
+);
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH PE
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+ FUNCTION WLANTL_RegisterMgmtFrmClient
+
+ DESCRIPTION
+ Called by PE to register as a client for management frames delivery.
+
+ DEPENDENCIES
+ TL must be initialized before this API can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to
+ TL's control block can be extracted from its context
+ pfnTlMgmtFrmRx: pointer to the receive processing routine for
+ management frames
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_E_EXISTS: Mgmt Frame client was already registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_RegisterMgmtFrmClient
+(
+ v_PVOID_t pvosGCtx,
+ WLANTL_MgmtFrmRxCBType pfnTlMgmtFrmRx
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_DeRegisterMgmtFrmClient
+
+ DESCRIPTION
+ Called by PE to deregister as a client for management frames delivery.
+
+ DEPENDENCIES
+ TL must be initialized before this API can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to
+ TL's control block can be extracted from its context
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_E_EXISTS: Mgmt Frame client was never registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_DeRegisterMgmtFrmClient
+(
+ v_PVOID_t pvosGCtx
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_TxMgmtFrm
+
+ DESCRIPTION
+ Called by PE when it want to send out a management frame.
+ HAL will also use this API for the few frames it sends out, they are not
+ management frames howevere it is accepted that an exception will be
+ allowed ONLY for the usage of HAL.
+ Generic data frames SHOULD NOT travel through this function.
+
+ DEPENDENCIES
+ TL must be initialized before this API can be called.
+
+ RESTRICTION: If PE sends another packet before TL manages to process the
+ previously sent packet call will end in failure
+
+ Frames comming through here must be 802.11 frames, frame
+ translation in UMA will be automatically disabled.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context;a handle to TL's
+ control block can be extracted from its context
+ vosFrmBuf: pointer to a vOSS buffer containing the management
+ frame to be transmitted
+ usFrmLen: the length of the frame to be transmitted; information
+ is already included in the vOSS buffer
+ wFrmType: the type of the frame being transmitted
+ tid: tid used to transmit this frame
+ pfnCompTxFunc: function pointer to the transmit complete routine
+ pvBDHeader: pointer to the BD header, if NULL it means it was not
+ yet constructed and it lies within TL's responsibility
+ to do so; if not NULL it is expected that it was
+ already packed inside the vos packet
+ ucAckResponse: flag notifying it an interrupt is needed for the
+ acknowledgement received when the frame is sent out
+ the air and ; the interrupt will be processed by HAL,
+ only one such frame can be pending in the system at
+ one time.
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_E_EXISTS: Mgmt Frame client was not yet registered
+ VOS_STATUS_E_BUSY: The previous Mgmt packet was not yet transmitted
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ Other failure messages may be returned from the BD header handling
+ routines, please check apropriate API for more info.
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_TxMgmtFrm
+(
+ v_PVOID_t pvosGCtx,
+ vos_pkt_t* vosFrmBuf,
+ v_U16_t usFrmLen,
+ v_U8_t ucFrmType,
+ v_U8_t tid,
+ WLANTL_TxCompCBType pfnCompTxFunc,
+ v_PVOID_t voosBDHeader,
+ v_U8_t ucAckResponse
+);
+
+
+/*----------------------------------------------------------------------------
+ INTERACTION WITH HAL
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+ FUNCTION WLANTL_ResetNotification
+
+ DESCRIPTION
+ HAL notifies TL when the module is being reset.
+ Currently not used.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_ResetNotification
+(
+ v_PVOID_t pvosGCtx
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_SuspendDataTx
+
+ DESCRIPTION
+ HAL calls this API when it wishes to suspend transmission for a
+ particular STA.
+
+ DEPENDENCIES
+ The STA for which the request is made must be first registered with
+ TL by HDD.
+
+ RESTRICTION: In case of a suspend, the flag write and read will not be
+ locked: worst case scenario one more packet can get
+ through before the flag gets updated (we can make this
+ write atomic as well to guarantee consistency)
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ pucSTAId: identifier of the station for which the request is made;
+ a value of NULL assumes suspend on all active station
+ pfnSuspendTxCB: pointer to the suspend result notification in case the
+ call is asynchronous
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_SuspendDataTx
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t* ucSTAId,
+ WLANTL_SuspendCBType pfnSuspendTx
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_ResumeDataTx
+
+ DESCRIPTION
+ Called by HAL to resume data transmission for a given STA.
+
+ WARNING: If a station was individually suspended a global resume will
+ not resume that station
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ pucSTAId: identifier of the station which is being resumed; NULL
+ translates into global resume
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_ResumeDataTx
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t* pucSTAId
+);
+
+
+/*----------------------------------------------------------------------------
+ CLIENT INDEPENDENT INTERFACE
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+ FUNCTION WLANTL_GetTxPktCount
+
+ DESCRIPTION
+ TL will provide the number of transmitted packets counted per
+ STA per TID.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier of the station
+ ucTid: identifier of the tspec
+
+ OUT
+ puTxPktCount: the number of packets tx packet for this STA and TID
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_GetTxPktCount
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ v_U8_t ucTid,
+ v_U32_t* puTxPktCount
+);
+
+/*==========================================================================
+
+ FUNCTION WLANTL_GetRxPktCount
+
+ DESCRIPTION
+ TL will provide the number of received packets counted per
+ STA per TID.
+
+ DEPENDENCIES
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: identifier of the station
+ ucTid: identifier of the tspec
+
+ OUT
+ puTxPktCount: the number of packets rx packet for this STA and TID
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: Input parameters are invalid
+ VOS_STATUS_E_FAULT: Station ID is outside array boundaries or pointer
+ to TL cb is NULL ; access would cause a page fault
+ VOS_STATUS_E_EXISTS: Station was not registered
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_GetRxPktCount
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ v_U8_t ucTid,
+ v_U32_t* puRxPktCount
+);
+
+/*==========================================================================
+ VOSS SCHEDULER INTERACTION
+ ==========================================================================*/
+
+/*==========================================================================
+ FUNCTION WLANTL_McProcessMsg
+
+ DESCRIPTION
+ Called by VOSS when a message was serialized for TL through the
+ main thread/task.
+
+ DEPENDENCIES
+ The TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ message: type and content of the message
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: invalid input parameters
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_McProcessMsg
+(
+ v_PVOID_t pvosGCtx,
+ vos_msg_t* message
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_McFreeMsg
+
+ DESCRIPTION
+ Called by VOSS to free a given TL message on the Main thread when there
+ are messages pending in the queue when the whole system is been reset.
+ For now, TL does not allocate any body so this function shout translate
+ into a NOOP
+
+ DEPENDENCIES
+ The TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ message: type and content of the message
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_McFreeMsg
+(
+ v_PVOID_t pvosGCtx,
+ vos_msg_t* message
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_TxProcessMsg
+
+ DESCRIPTION
+ Called by VOSS when a message was serialized for TL through the
+ tx thread/task.
+
+ DEPENDENCIES
+ The TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ message: type and content of the message
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_E_INVAL: invalid input parameters
+ VOS_STATUS_E_FAULT: pointer to TL cb is NULL ; access would cause a
+ page fault
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ Other values can be returned as a result of a function call, please check
+ corresponding API for more info.
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_TxProcessMsg
+(
+ v_PVOID_t pvosGCtx,
+ vos_msg_t* message
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_McFreeMsg
+
+ DESCRIPTION
+ Called by VOSS to free a given TL message on the Main thread when there
+ are messages pending in the queue when the whole system is been reset.
+ For now, TL does not allocate any body so this function shout translate
+ into a NOOP
+
+ DEPENDENCIES
+ The TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ message: type and content of the message
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_TxFreeMsg
+(
+ v_PVOID_t pvosGCtx,
+ vos_msg_t* message
+);
+
+
+/*==========================================================================
+ FUNCTION WLANTL_EnableUAPSDForAC
+
+ DESCRIPTION
+ Called by HDD to enable UAPSD in TL. TL is in charge for sending trigger
+ frames.
+
+ DEPENDENCIES
+ The TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: station Id
+ ucACId: AC for which U-APSD is being enabled
+ ucTid TSpec Id
+ uServiceInt: service interval used by TL to send trigger frames
+ uSuspendInt: suspend interval used by TL to determine that an
+ app is idle and should start sending trigg frms less often
+ wTSDir: direction of TSpec
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_EnableUAPSDForAC
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ WLANTL_ACEnumType ucACId,
+ v_U8_t ucTid,
+ v_U8_t ucUP,
+ v_U32_t uServiceInt,
+ v_U32_t uSuspendInt,
+ WLANTL_TSDirType wTSDir
+);
+
+
+/*==========================================================================
+ FUNCTION WLANTL_DisableUAPSDForAC
+
+ DESCRIPTION
+ Called by HDD to disable UAPSD in TL. TL will stop sending trigger
+ frames.
+
+ DEPENDENCIES
+ The TL must be initialized before this function can be called.
+
+ PARAMETERS
+
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ control block can be extracted from its context
+ ucSTAId: station Id
+ ucACId: AC for which U-APSD is being enabled
+
+
+ RETURN VALUE
+ The result code associated with performing the operation
+
+ VOS_STATUS_SUCCESS: Everything is good :)
+
+ SIDE EFFECTS
+
+============================================================================*/
+VOS_STATUS
+WLANTL_DisableUAPSDForAC
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t ucSTAId,
+ WLANTL_ACEnumType ucACId
+);
+
+#if defined WLAN_FEATURE_NEIGHBOR_ROAMING
+/*==========================================================================
+ FUNCTION WLANTL_RegRSSIIndicationCB
+
+ DESCRIPTION Registration function to get notification if RSSI cross
+ threshold.
+ Client should register threshold, direction, and notification
+ callback function pointer
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in rssiValue - RSSI threshold value
+ in triggerEvent - Cross direction should be notified
+ UP, DOWN, and CROSS
+ in crossCBFunction - Notification CB Function
+ in usrCtxt - user context
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_RegRSSIIndicationCB
+(
+ v_PVOID_t pAdapter,
+ v_S7_t rssiValue,
+ v_U8_t triggerEvent,
+ WLANTL_RSSICrossThresholdCBType crossCBFunction,
+ VOS_MODULE_ID moduleID,
+ v_PVOID_t usrCtxt
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_DeregRSSIIndicationCB
+
+ DESCRIPTION Remove specific threshold from list
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in rssiValue - RSSI threshold value
+ in triggerEvent - Cross direction should be notified
+ UP, DOWN, and CROSS
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_DeregRSSIIndicationCB
+(
+ v_PVOID_t pAdapter,
+ v_S7_t rssiValue,
+ v_U8_t triggerEvent,
+ WLANTL_RSSICrossThresholdCBType crossCBFunction,
+ VOS_MODULE_ID moduleID
+);
+
+/*==========================================================================
+
+ FUNCTION
+
+ DESCRIPTION
+
+ PARAMETERS
+
+ RETURN VALUE
+
+============================================================================*/
+VOS_STATUS WLANTL_BMPSRSSIRegionChangedNotification
+(
+ v_PVOID_t pAdapter,
+ tpSirRSSINotification pRSSINotification
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_SetAlpha
+
+ DESCRIPTION ALPLA is weight value to calculate AVG RSSI
+ avgRSSI = (ALPHA * historyRSSI) + ((10 - ALPHA) * newRSSI)
+ avgRSSI has (ALPHA * 10)% of history RSSI weight and
+ (10 - ALPHA)% of newRSSI weight
+ This portion is dynamically configurable.
+ Default is ?
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in valueAlpah - ALPHA
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_SetAlpha
+(
+ v_PVOID_t pAdapter,
+ v_U8_t valueAlpha
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_RegGetTrafficStatus
+
+ DESCRIPTION Registration function for traffic status monitoring
+ During measure period count data frames.
+ If frame count is larger then IDLE threshold set as traffic ON
+ or OFF.
+ And traffic status is changed send report to client with
+ registered callback function
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in idleThreshold - Traffic on or off threshold
+ in measurePeriod - Traffic state check period
+ in trfficStatusCB - traffic status changed notification
+ CB function
+ in usrCtxt - user context
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_RegGetTrafficStatus
+(
+ v_PVOID_t pAdapter,
+ v_U32_t idleThreshold,
+ v_U32_t measurePeriod,
+ WLANTL_TrafficStatusChangedCBType trfficStatusCB,
+ v_PVOID_t usrCtxt
+);
+#endif
+/*==========================================================================
+ FUNCTION WLANTL_GetStatistics
+
+ DESCRIPTION Get traffic statistics for identified station
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in statType - specific statistics field to reset
+ out statBuffer - traffic statistics buffer
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_GetStatistics
+(
+ v_PVOID_t pAdapter,
+ WLANTL_TRANSFER_STA_TYPE *statBuffer,
+ v_U8_t STAid
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_ResetStatistics
+
+ DESCRIPTION Reset statistics structure for identified station ID
+ Reset means set values as 0
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in statType - specific statistics field to reset
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_ResetStatistics
+(
+ v_PVOID_t pAdapter,
+ v_U8_t STAid
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_GetSpecStatistic
+
+ DESCRIPTION Get specific field within statistics structure for
+ identified station ID
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in statType - specific statistics field to reset
+ in STAid - Station ID
+ out buffer - Statistic value
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_GetSpecStatistic
+(
+ v_PVOID_t pAdapter,
+ WLANTL_TRANSFER_STATIC_TYPE statType,
+ v_U32_t *buffer,
+ v_U8_t STAid
+);
+
+/*==========================================================================
+ FUNCTION WLANTL_ResetSpecStatistic
+
+ DESCRIPTION Reset specific field within statistics structure for
+ identified station ID
+ Reset means set as 0
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pAdapter - Global handle
+ in statType - specific statistics field to reset
+ in STAid - Station ID
+
+ RETURN VALUE VOS_STATUS
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_ResetSpecStatistic
+(
+ v_PVOID_t pAdapter,
+ WLANTL_TRANSFER_STATIC_TYPE statType,
+ v_U8_t STAid
+);
+#ifdef ANI_CHIPSET_VOLANS
+/*===============================================================================
+ FUNCTION WLANTL_IsReplayPacket
+
+ DESCRIPTION This function does replay check for valid stations
+
+ DEPENDENCIES Validity of replay check must be done before the function
+ is called
+
+ PARAMETERS currentReplayCounter current replay counter taken from RX BD
+ previousReplayCounter previous replay counter taken from TL CB
+
+ RETRUN VOS_TRUE packet is a replay packet
+ VOS_FALSE packet is not a replay packet
+
+ SIDE EFFECTS none
+ ===============================================================================*/
+v_BOOL_t WLANTL_IsReplayPacket
+(
+ v_U64_t currentReplayCounter,
+ v_U64_t previousReplayCounter
+);
+
+/*===============================================================================
+ FUNCTION WLANTL_GetReplayCounterFromRxBD
+
+ DESCRIPTION This function extracts 48-bit replay packet number from RX BD
+
+ DEPENDENCIES Validity of replay check must be done before the function
+ is called
+
+ PARAMETERS pucRxHeader pointer to RX BD header
+
+ RETRUN v_U64_t Packet number extarcted from RX BD
+
+ SIDE EFFECTS none
+ ===============================================================================*/
+v_U64_t
+WLANTL_GetReplayCounterFromRxBD
+(
+ v_U8_t *pucRxBDHeader
+);
+#endif /*End of #ifdef ANI_CHIPSET_VOLANS*/
+
+
+
+/*
+ DESCRIPTION
+ TL returns the weight currently maintained in TL.
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+
+ OUT
+ pACWeights: Caller allocated memory for filling in weights
+
+ RETURN VALUE VOS_STATUS
+*/
+VOS_STATUS
+WLANTL_GetACWeights
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t* pACWeights
+);
+
+
+/*
+ DESCRIPTION
+ Change the weight currently maintained by TL.
+ IN
+ pvosGCtx: pointer to the global vos context; a handle to TL's
+ or SME's control block can be extracted from its context
+ pACWeights: Caller allocated memory contain the weights to use
+
+
+ RETURN VALUE VOS_STATUS
+*/
+VOS_STATUS
+WLANTL_SetACWeights
+(
+ v_PVOID_t pvosGCtx,
+ v_U8_t* pACWeights
+);
+
+#ifdef WLAN_SOFTAP_FEATURE
+/*==========================================================================
+ FUNCTION WLANTL_GetSoftAPStatistics
+
+ DESCRIPTION Collect the cumulative statistics for all Softap stations
+
+ DEPENDENCIES NONE
+
+ PARAMETERS in pvosGCtx - Pointer to the global vos context
+ bReset - If set TL statistics will be cleared after reading
+ out statsSum - pointer to collected statistics
+
+ RETURN VALUE VOS_STATUS_SUCCESS : if the Statistics are successfully extracted
+
+ SIDE EFFECTS NONE
+
+============================================================================*/
+VOS_STATUS WLANTL_GetSoftAPStatistics(v_PVOID_t pAdapter, WLANTL_TRANSFER_STA_TYPE *statsSum, v_BOOL_t bReset);
+#endif
+
+#ifdef __cplusplus
+ }
+#endif
+
+
+ /*===========================================================================
+
+ FUNCTION WLANTL_AssocFailed
+
+ DESCRIPTION
+
+ This function is used by PE to notify TL that cache needs to flushed
+ when association is not successfully completed
+
+ Internally, TL post a message to TX_Thread to serialize the request to
+ keep lock-free mechanism.
+
+
+ DEPENDENCIES
+
+ TL must have been initialized before this gets called.
+
+
+ PARAMETERS
+
+ ucSTAId: station id
+
+ RETURN VALUE
+
+ none
+
+ SIDE EFFECTS
+ There may be race condition that PE call this API and send another association
+ request immediately with same staId before TX_thread can process the message.
+
+ To avoid this, we might need PE to wait for TX_thread process the message,
+ but this is not currently implemented.
+
+============================================================================*/
+void WLANTL_AssocFailed(v_U8_t staId);
+
+
+/*===============================================================================
+ FUNCTION WLANTL_PostResNeeded
+
+ DESCRIPTION This function posts message to TL to reserve BD/PDU memory
+
+ DEPENDENCIES None
+
+ PARAMETERS pvosGCtx
+
+ RETURN None
+
+ SIDE EFFECTS none
+ ===============================================================================*/
+
+void WLANTL_PostResNeeded(v_PVOID_t pvosGCtx);
+
+/*===========================================================================
+
+ FUNCTION WLANTL_Finish_ULA
+
+ DESCRIPTION
+ This function is used by HDD to notify TL to finish Upper layer authentication
+ incase the last EAPOL packet is pending in the TL queue.
+ To avoid the race condition between sme set key and the last EAPOL packet
+ the HDD module calls this function just before calling the sme_RoamSetKey.
+
+ DEPENDENCIES
+
+ TL must have been initialized before this gets called.
+
+
+ PARAMETERS
+
+ callbackRoutine: HDD Callback function.
+ callbackContext : HDD userdata context.
+
+ RETURN VALUE
+
+ VOS_STATUS_SUCCESS/VOS_STATUS_FAILURE
+
+ SIDE EFFECTS
+
+============================================================================*/
+
+VOS_STATUS WLANTL_Finish_ULA( void (*callbackRoutine) (void *callbackContext),
+ void *callbackContext);
+
+/*===============================================================================
+ FUNCTION WLANTL_UpdateRssiBmps
+
+ DESCRIPTION This function updates the TL's RSSI (in BMPS mode)
+
+ DEPENDENCIES None
+
+ PARAMETERS
+
+ pvosGCtx VOS context VOS Global context
+ staId Station ID Station ID
+ rssi RSSI (BMPS mode) RSSI in BMPS mode
+
+ RETURN None
+
+ SIDE EFFECTS none
+ ===============================================================================*/
+
+void WLANTL_UpdateRssiBmps(v_PVOID_t pvosGCtx, v_U8_t staId, v_S7_t rssi);
+
+#endif /* #ifndef WLAN_QCT_WLANTL_H */