| /* |
| * qosMngr.h |
| * |
| * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| |
| /** \file qosMngr.h |
| * \brief QOS manager module internal header file |
| * |
| * \see qosMngr.c |
| */ |
| |
| /***************************************************************************/ |
| /* */ |
| /* MODULE: qosMgr.h */ |
| /* PURPOSE: QOS manager module internal header file */ |
| /* */ |
| /***************************************************************************/ |
| #ifndef __QOS_MNGR_H__ |
| #define __QOS_MNGR_H__ |
| |
| #include "paramOut.h" |
| #include "trafficAdmControl.h" |
| |
| /* |
| * Defines |
| */ |
| |
| #define QOS_MNGR_INIT_BIT_LOCAL_VECTOR (0x01) |
| #define QOS_MNGR_INIT_BIT_ADM_CTRL (0x02) |
| |
| #define AC_PARAMS_AIFSN_MASK (0x0f) |
| #define AC_PARAMS_ACI_MASK (0x60) |
| #define AC_PARAMS_CWMIN_MASK (0x0f) |
| #define AC_PARAMS_CWMAX_MASK (0xf0) |
| #define AC_PARAMS_ACM_MASK (0x10) |
| |
| #define MAX_ENABLED_PS_RX_STREAMS 4 |
| |
| #if 0 |
| #define PS_PARAMETERS_LEGACY (0) |
| #define PS_PARAMETERS_UPSD_TRIGGER_ENABLE_MASK (0x01) |
| #define PS_PARAMETERS_UPSD_DELIVERY_ENABLE_MASK (0x02) |
| #define PS_UPSD_TRIGER_AND_DELIVERY (PS_PARAMETERS_UPSD_TRIGGER_ENABLE_MASK | PS_PARAMETERS_UPSD_DELIVERY_ENABLE_MASK) |
| |
| #define CONVERT_DRIVER_PS_MODE_TO_FW(PsMode_e) ((PsMode_e == UPSD) ? PS_UPSD_TRIGER_AND_DELIVERY : PS_PARAMETERS_LEGACY) |
| #endif |
| |
| |
| /* |
| * Enumerations |
| */ |
| #define RX_QUEUE_WIN_SIZE 8 |
| |
| typedef enum |
| { |
| BA_POLICY_DISABLE = 0, |
| BA_POLICY_INITIATOR = 1, |
| BA_POLICY_RECEIVER = 2, |
| BA_POLICY_INITIATOR_AND_RECEIVER = 3 |
| } EqosMngrBaPolicy; |
| |
| |
| /* |
| * Structures |
| */ |
| |
| typedef struct |
| { |
| tspecInfo_t currentTspecInfo[MAX_NUM_OF_AC]; |
| tspecInfo_t candidateTspecInfo[MAX_NUM_OF_AC]; |
| TI_UINT16 totalAllocatedMediumTime; |
| }resourceMgmt_t; |
| |
| /* |
| * per AC parameters |
| */ |
| typedef struct |
| { |
| TQueueTrafficParams QtrafficParams; /* AC traffic confogiration params */ |
| TQueueTrafficParams QTrafficInitParams;/* for disconnect - defaults traffic params */ |
| TAcQosParams acQosParams; |
| TAcQosParams acQosInitParams; |
| AckPolicy_e wmeAcAckPolicy; /* ack policy per AC */ |
| PSScheme_e currentWmeAcPsMode; /* current wme per ac power save mode */ |
| PSScheme_e desiredWmeAcPsMode; /* desired wme per ac power save mode */ |
| EAdmissionState apInitAdmissionState; /* AC admission state */ |
| TI_UINT32 msduLifeTimeParam; |
| }acParams_t; |
| |
| |
| typedef TI_STATUS (*qosMngrCallb_t) (TI_HANDLE hApConn, trafficAdmRequestStatus_e result); |
| |
| /* |
| * qosMngr handle |
| */ |
| |
| typedef struct |
| { |
| TI_HANDLE hSiteMgr; |
| TI_HANDLE hTWD; |
| TI_HANDLE hTxCtrl; |
| TI_HANDLE hTxMgmtQ; |
| TI_HANDLE hEvHandler; |
| TI_HANDLE hRoamMng; |
| |
| TI_HANDLE hMeasurementMngr; |
| TI_HANDLE hSmeSm; |
| TI_HANDLE hCtrlData; |
| TI_HANDLE hXCCMgr; |
| |
| TI_HANDLE hReport; |
| TI_HANDLE hOs; |
| TI_HANDLE hTimer; |
| TI_HANDLE hStaCap; |
| |
| TI_BOOL WMEEnable; /* driver supports WME protocol */ |
| TI_BOOL WMESiteSupport; /* site support WME protocol */ |
| EQosProtocol activeProtocol; /* active protocol: XCC,WME or none. */ |
| TI_BOOL tagZeroConverHeader; /* converting tag zero headers */ |
| |
| TI_UINT8 qosPacketBurstEnable; /* Packet Burst is Enable or NOT */ |
| TI_UINT32 qosPacketBurstTxOpLimit; /* TxOp limit in case of NON_QOS */ |
| /* protocol and Packet Burst is Enable */ |
| |
| acParams_t acParams[MAX_NUM_OF_AC]; /* per ac parameters */ |
| |
| TI_BOOL isConnected; /* Connected or not ? */ |
| PSScheme_e desiredPsMode; /* The desired PS mode of the station */ |
| PSScheme_e currentPsMode; /* The current PS mode of the station */ |
| TI_UINT8 ApQosCapabilityParameters; |
| TI_UINT8 desiredMaxSpLen; |
| |
| EHeaderConvertMode headerConvetMode; |
| TRxTimeOut rxTimeOut; |
| |
| /* PS Rx streaming parameters */ |
| TPsRxStreaming aTidPsRxStreaming[MAX_NUM_OF_802_1d_TAGS];/* Per TID PS-Rx-Streaming configured parameters */ |
| TI_UINT32 uNumEnabledPsRxStreams; /* the number of enabled TID-PS-Rx-Streams */ |
| |
| /* traffic admission control parameters */ |
| TI_BOOL trafficAdmCtrlEnable; /* driver supports Admission control */ |
| trafficAdmCtrl_t *pTrafficAdmCtrl; /* adm ctrl object */ |
| resourceMgmt_t resourceMgmtTable; |
| TI_UINT8 QosNullDataTemplateUserPriority; /* Holds the last User Priority set into the firmware in the QOS Null data template */ |
| |
| TI_BOOL performTSPECRenegotiation; |
| TI_BOOL voiceTspecConfigured; |
| TI_BOOL videoTspecConfigured; |
| TI_HANDLE TSPECNegotiationResultModule; |
| qosMngrCallb_t TSPECNegotiationResultCallb; |
| OS_802_11_QOS_TSPEC_PARAMS tspecRenegotiationParams[MAX_NUM_OF_AC]; |
| |
| TI_BOOL bCwFromUserEnable; |
| TI_UINT8 uDesireCwMin; /**< The contention window minimum size (in slots) from ini file */ |
| TI_UINT16 uDesireCwMax; /**< The contention window maximum size (in slots) from ini file */ |
| |
| /* 802.11n BA session */ |
| TI_UINT8 aBaPolicy[MAX_NUM_OF_802_1d_TAGS]; |
| TI_UINT16 aBaInactivityTimeout[MAX_NUM_OF_802_1d_TAGS]; |
| TI_BOOL bEnableBurstMode; |
| } qosMngr_t; |
| |
| |
| #endif /* QOS_MNGR_H */ |