Home | History | Annotate | Download | only in Inc
      1 
      2 /** \file qosMngr.h
      3  *  \brief QOS manager module internal header file
      4  *
      5  *  \see qosMngr.c
      6  */
      7 /****************************************************************************
      8 **+-----------------------------------------------------------------------+**
      9 **|                                                                       |**
     10 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
     11 **| All rights reserved.                                                  |**
     12 **|                                                                       |**
     13 **| Redistribution and use in source and binary forms, with or without    |**
     14 **| modification, are permitted provided that the following conditions    |**
     15 **| are met:                                                              |**
     16 **|                                                                       |**
     17 **|  * Redistributions of source code must retain the above copyright     |**
     18 **|    notice, this list of conditions and the following disclaimer.      |**
     19 **|  * Redistributions in binary form must reproduce the above copyright  |**
     20 **|    notice, this list of conditions and the following disclaimer in    |**
     21 **|    the documentation and/or other materials provided with the         |**
     22 **|    distribution.                                                      |**
     23 **|  * Neither the name Texas Instruments nor the names of its            |**
     24 **|    contributors may be used to endorse or promote products derived    |**
     25 **|    from this software without specific prior written permission.      |**
     26 **|                                                                       |**
     27 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     28 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     29 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     30 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     31 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     32 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     33 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     34 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     35 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     36 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     37 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     38 **|                                                                       |**
     39 **+-----------------------------------------------------------------------+**
     40 ****************************************************************************/
     41 
     42 /***************************************************************************/
     43 /*                                                                         */
     44 /*    MODULE:   qosMgr.h                                                   */
     45 /*    PURPOSE:  QOS manager module internal header file                    */
     46 /*                                                                         */
     47 /***************************************************************************/
     48 #ifndef __QOS_MNGR_H__
     49 #define __QOS_MNGR_H__
     50 
     51 #include "paramOut.h"
     52 #include "trafficAdmControl.h"
     53 
     54 /*
     55  *          Defines
     56  */
     57 
     58 #define QOS_MNGR_INIT_BIT_LOCAL_VECTOR     (0x01)
     59 #define QOS_MNGR_INIT_BIT_ADM_CTRL	   (0x02)
     60 
     61 #define AC_PARAMS_AIFSN_MASK               (0x0f)
     62 #define AC_PARAMS_ACI_MASK                 (0x60)
     63 #define AC_PARAMS_CWMIN_MASK               (0x0f)
     64 #define AC_PARAMS_CWMAX_MASK               (0xf0)
     65 #define AC_PARAMS_ACM_MASK                 (0x10)
     66 
     67 
     68 #if 0
     69 #define PS_PARAMETERS_LEGACY 					(0)
     70 #define PS_PARAMETERS_UPSD_TRIGGER_ENABLE_MASK	(0x01)
     71 #define PS_PARAMETERS_UPSD_DELIVERY_ENABLE_MASK	(0x02)
     72 #define	PS_UPSD_TRIGER_AND_DELIVERY	(PS_PARAMETERS_UPSD_TRIGGER_ENABLE_MASK | PS_PARAMETERS_UPSD_DELIVERY_ENABLE_MASK)
     73 
     74 #define CONVERT_DRIVER_PS_MODE_TO_FW(PsMode_e)	((PsMode_e == UPSD) ? PS_UPSD_TRIGER_AND_DELIVERY : PS_PARAMETERS_LEGACY)
     75 #endif
     76 
     77 
     78 /*
     79  *          Enumerations
     80  */
     81 
     82 
     83 /*
     84  *          Structures
     85  */
     86 
     87 typedef struct
     88 {
     89 	tspecInfo_t		currentTspecInfo[MAX_NUM_OF_AC];
     90 	tspecInfo_t		candidateTspecInfo[MAX_NUM_OF_AC];
     91 	UINT16			totalAllocatedMediumTime;
     92 }resourceMgmt_t;
     93 
     94 /*
     95  * per AC parameters
     96  */
     97 typedef struct
     98 {
     99 	queueTrafficParams_t  QtrafficParams;    /* AC traffic confogiration params */
    100     queueTrafficParams_t  QTrafficInitParams;/* for disconnect - defaults traffic params */
    101 	acQosParams_t         acQosParams;
    102 	acQosParams_t         acQosInitParams;
    103 	AckPolicy_e       wmeAcAckPolicy;     /* ack policy per AC               */
    104 	PSScheme_e            currentWmeAcPsMode; /* current wme per ac power save mode */
    105 	PSScheme_e            desiredWmeAcPsMode; /* desired wme per ac power save mode */
    106 	admissionState_e	apInitAdmissionState; /* AC admission state              */
    107 	UINT32		        msduLifeTimeParam;
    108 }acParams_t;
    109 
    110 
    111 typedef TI_STATUS (*qosMngrCallb_t) (TI_HANDLE hApConn, trafficAdmRequestStatus_e result);
    112 
    113 /*
    114  *  qosMngr handle
    115  */
    116 
    117 typedef struct
    118 {
    119     TI_HANDLE           hSiteMgr;
    120     TI_HANDLE           hHalCtrl;
    121     TI_HANDLE           hTxData;
    122 	TI_HANDLE			hEvHandler;
    123 
    124     TI_HANDLE           hMeasurementMngr;
    125     TI_HANDLE           hSmeSm;
    126     TI_HANDLE			hCtrlData;
    127     TI_HANDLE			hMemMgr;
    128     TI_HANDLE			hExcMgr;
    129 
    130     TI_HANDLE           hReport;
    131     TI_HANDLE           hOs;
    132 
    133     BOOL                WMEEnable;                           /* driver supports WME protocol       */
    134     BOOL                WMESiteSupport;                      /* site support WME protocol          */
    135     qosProtocols_e      activeProtocol;                      /* active protocol: EXC,WME or none.  */
    136     BOOL                tagZeroConverHeader;                 /* converting tag zero headers        */
    137 
    138 	UINT8				qosPacketBurstEnable;				 /* Packet Burst is Enable or NOT      */
    139 	UINT32				qosPacketBurstTxOpLimit;			 /* TxOp limit in case of NON_QOS */
    140 															 /* protocol and Packet Burst is Enable */
    141 
    142 	acParams_t          acParams[MAX_NUM_OF_AC];             /* per ac parameters                  */
    143 
    144     BOOL                isConnected;                         /* Connected or not ?                       */
    145 	PSScheme_e			desiredPsMode;						 /* The desired PS mode of the station */
    146 	PSScheme_e			currentPsMode;						 /* The current PS mode of the station */
    147 	UINT8				ApQosCapabilityParameters;
    148 	UINT8				desiredMaxSpLen;
    149 	PSScheme_e			desiredVoiceDeliveryProtocol;
    150 
    151 	headerConvetMode_e  headerConvetMode;
    152 	rxTimeOut_t         rxTimeOut;
    153 
    154 
    155 	/* traffic admission control parameters */
    156 	BOOL				trafficAdmCtrlEnable;				 /* driver supports Admission control  */
    157 	trafficAdmCtrl_t	*pTrafficAdmCtrl;					 /* adm ctrl object */
    158 	resourceMgmt_t		resourceMgmtTable;
    159     UINT8               QosNullDataTemplateUserPriority;     /* Holds the last User Priority set into the firmware in the QOS Null data template */
    160 
    161 	BOOL				performTSPECRenegotiation;
    162 	BOOL				voiceTspecConfigured;
    163 	BOOL				videoTspecConfigured;
    164 	TI_HANDLE 			TSPECNegotiationResultModule;
    165 	qosMngrCallb_t   	TSPECNegotiationResultCallb;
    166 	OS_802_11_QOS_TSPEC_PARAMS	tspecRenegotiationParams[MAX_NUM_OF_AC];
    167 } qosMngr_t;
    168 
    169 
    170 #endif /* QOS_MNGR_H */
    171