164064216a8433360745f69edddce19a606659163The Android Open Source Project/** \file qosMngr_API.h
264064216a8433360745f69edddce19a606659163The Android Open Source Project *  \brief QOS manager module external header file
364064216a8433360745f69edddce19a606659163The Android Open Source Project *
464064216a8433360745f69edddce19a606659163The Android Open Source Project *  \see qosMngr.c
564064216a8433360745f69edddce19a606659163The Android Open Source Project */
664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************
764064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
864064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
964064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
1064064216a8433360745f69edddce19a606659163The Android Open Source Project**| All rights reserved.                                                  |**
1164064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
1264064216a8433360745f69edddce19a606659163The Android Open Source Project**| Redistribution and use in source and binary forms, with or without    |**
1364064216a8433360745f69edddce19a606659163The Android Open Source Project**| modification, are permitted provided that the following conditions    |**
1464064216a8433360745f69edddce19a606659163The Android Open Source Project**| are met:                                                              |**
1564064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
1664064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions of source code must retain the above copyright     |**
1764064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer.      |**
1864064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions in binary form must reproduce the above copyright  |**
1964064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer in    |**
2064064216a8433360745f69edddce19a606659163The Android Open Source Project**|    the documentation and/or other materials provided with the         |**
2164064216a8433360745f69edddce19a606659163The Android Open Source Project**|    distribution.                                                      |**
2264064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Neither the name Texas Instruments nor the names of its            |**
2364064216a8433360745f69edddce19a606659163The Android Open Source Project**|    contributors may be used to endorse or promote products derived    |**
2464064216a8433360745f69edddce19a606659163The Android Open Source Project**|    from this software without specific prior written permission.      |**
2564064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
2664064216a8433360745f69edddce19a606659163The Android Open Source Project**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
2764064216a8433360745f69edddce19a606659163The Android Open Source Project**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
2864064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
2964064216a8433360745f69edddce19a606659163The Android Open Source Project**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
3064064216a8433360745f69edddce19a606659163The Android Open Source Project**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
3164064216a8433360745f69edddce19a606659163The Android Open Source Project**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
3264064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
3364064216a8433360745f69edddce19a606659163The Android Open Source Project**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
3464064216a8433360745f69edddce19a606659163The Android Open Source Project**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
3564064216a8433360745f69edddce19a606659163The Android Open Source Project**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
3664064216a8433360745f69edddce19a606659163The Android Open Source Project**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
3764064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
3864064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
3964064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/
4064064216a8433360745f69edddce19a606659163The Android Open Source Project
4164064216a8433360745f69edddce19a606659163The Android Open Source Project/***************************************************************************/
4264064216a8433360745f69edddce19a606659163The Android Open Source Project/*																		   */
4364064216a8433360745f69edddce19a606659163The Android Open Source Project/*	  MODULE:	qosMgr_API.h						   	  				   */
4464064216a8433360745f69edddce19a606659163The Android Open Source Project/*    PURPOSE:	QOS manager module external header file	   				   */
4564064216a8433360745f69edddce19a606659163The Android Open Source Project/*																		   */
4664064216a8433360745f69edddce19a606659163The Android Open Source Project/***************************************************************************/
4764064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef __QOS_MNGR_API_H__
4864064216a8433360745f69edddce19a606659163The Android Open Source Project#define __QOS_MNGR_API_H__
4964064216a8433360745f69edddce19a606659163The Android Open Source Project
5064064216a8433360745f69edddce19a606659163The Android Open Source Project#include "802_11Defs.h"
5164064216a8433360745f69edddce19a606659163The Android Open Source Project
5264064216a8433360745f69edddce19a606659163The Android Open Source Project#define MAX_NUM_OF_TID						16
5364064216a8433360745f69edddce19a606659163The Android Open Source Project#define FIRST_TID							8
5464064216a8433360745f69edddce19a606659163The Android Open Source Project
5564064216a8433360745f69edddce19a606659163The Android Open Source Project#define USER_PRIORITY_4 (WMEQosTagToACTable[4])
5664064216a8433360745f69edddce19a606659163The Android Open Source Project#define USER_PRIORITY_6 (WMEQosTagToACTable[6])
5764064216a8433360745f69edddce19a606659163The Android Open Source Project
5864064216a8433360745f69edddce19a606659163The Android Open Source Project
5964064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef struct
6064064216a8433360745f69edddce19a606659163The Android Open Source Project{
6164064216a8433360745f69edddce19a606659163The Android Open Source Project	acTrfcType_e		AC;
6264064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8				tid;
6364064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8				userPriority;
6464064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT16				nominalMsduSize; /* in bytes */
6564064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32				meanDataRate;	 /* bits per second */
6664064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT16				surplausBwAllowance;
6764064216a8433360745f69edddce19a606659163The Android Open Source Project	INT32				minimumPHYRate;
6864064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT16				mediumTime;
6964064216a8433360745f69edddce19a606659163The Android Open Source Project	BOOL				UPSDFlag;
7064064216a8433360745f69edddce19a606659163The Android Open Source Project	streamDirection_e	streamDirection;
7164064216a8433360745f69edddce19a606659163The Android Open Source Project	trafficAdmState_e	trafficAdmState;
7264064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8				statusCode;
7364064216a8433360745f69edddce19a606659163The Android Open Source Project}tspecInfo_t;
7464064216a8433360745f69edddce19a606659163The Android Open Source Project
7564064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef enum
7664064216a8433360745f69edddce19a606659163The Android Open Source Project{
7764064216a8433360745f69edddce19a606659163The Android Open Source Project	STATUS_TRAFFIC_ADM_REQUEST_ACCEPT    	= 0,
7864064216a8433360745f69edddce19a606659163The Android Open Source Project    STATUS_TRAFFIC_ADM_REQUEST_REJECT		= 1,
7964064216a8433360745f69edddce19a606659163The Android Open Source Project   	STATUS_TRAFFIC_ADM_REQUEST_TIMEOUT		= 2,
8064064216a8433360745f69edddce19a606659163The Android Open Source Project} trafficAdmRequestStatus_e;
8164064216a8433360745f69edddce19a606659163The Android Open Source Project
8264064216a8433360745f69edddce19a606659163The Android Open Source Project
8364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE qosMngr_create(TI_HANDLE hOs);
8464064216a8433360745f69edddce19a606659163The Android Open Source Project
8564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_destroy(TI_HANDLE hQosMngr);
8664064216a8433360745f69edddce19a606659163The Android Open Source Project
8764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS   qosMngr_config(TI_HANDLE     	        hQosMngr,
8864064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE		        hHalCtrl,
8964064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE		        hSiteMgr,
9064064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE		        hReport,
9164064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE		        hOs,
9264064216a8433360745f69edddce19a606659163The Android Open Source Project                           TI_HANDLE                hTxData,
9364064216a8433360745f69edddce19a606659163The Android Open Source Project                           TI_HANDLE                hMeasurementMngr,
9464064216a8433360745f69edddce19a606659163The Android Open Source Project                           TI_HANDLE                hSmeSm,
9564064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE				hMemMgr,
9664064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE				hCtrlData,
9764064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE				hEvHandler,
9864064216a8433360745f69edddce19a606659163The Android Open Source Project						   TI_HANDLE				hExcMgr,
9964064216a8433360745f69edddce19a606659163The Android Open Source Project						   QosMngrInitParams_t		*pQosMngrInitParams);
10064064216a8433360745f69edddce19a606659163The Android Open Source Project
10164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_disconnect(TI_HANDLE hQosMngr);
10264064216a8433360745f69edddce19a606659163The Android Open Source Project
10364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_connect(TI_HANDLE hQosMngr);
10464064216a8433360745f69edddce19a606659163The Android Open Source Project
10564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_setParams(TI_HANDLE  hQosMngr,paramInfo_t *pParamInfo);
10664064216a8433360745f69edddce19a606659163The Android Open Source Project
10745544f73189f4649d4afb21a0dab72cd70971e2fDmitry ShmidtTI_STATUS qosMngr_setParamsPartial(TI_HANDLE  hQosMngr,paramInfoPartial_t *pParamInfo);
10845544f73189f4649d4afb21a0dab72cd70971e2fDmitry Shmidt
10964064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_getParams(TI_HANDLE  hQosMngr,paramInfo_t *pParamInfo);
11064064216a8433360745f69edddce19a606659163The Android Open Source Project
11145544f73189f4649d4afb21a0dab72cd70971e2fDmitry ShmidtTI_STATUS qosMngr_getParamsPatial(TI_HANDLE  hQosMngr,paramInfoPartial_t *pParamInfo);
11245544f73189f4649d4afb21a0dab72cd70971e2fDmitry Shmidt
11364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_assocReqBuild(TI_HANDLE  hQosMngr, UINT8 *pQosIe, UINT8 *pLen);
11464064216a8433360745f69edddce19a606659163The Android Open Source Project
11564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_setSite(TI_HANDLE hQosMngr, assocRsp_t *assocRsp);
11664064216a8433360745f69edddce19a606659163The Android Open Source Project
11764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid      qosMngr_updateIEinfo(TI_HANDLE hQosMngr, UINT8 *pQosIeParams,qosProtocols_e qosSetProtocol);
11864064216a8433360745f69edddce19a606659163The Android Open Source Project
11964064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT8 qosMngr_evalSite(TI_HANDLE hQosMngr, BOOL siteAPSDSupport);
12064064216a8433360745f69edddce19a606659163The Android Open Source Project
12164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_getQosCapabiltyInfeElement(TI_HANDLE  hQosMngr, UINT8 *pQosIe, UINT8 *pLen);
12264064216a8433360745f69edddce19a606659163The Android Open Source Project
12364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_requestAdmission(TI_HANDLE			hQosMngr,
12464064216a8433360745f69edddce19a606659163The Android Open Source Project                                   OS_802_11_QOS_TSPEC_PARAMS *addTspecParams);
12564064216a8433360745f69edddce19a606659163The Android Open Source Project
12664064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_deleteAdmission(TI_HANDLE hQosMngr, OS_802_11_QOS_DELETE_TSPEC_PARAMS *delAdmissionParams);
12764064216a8433360745f69edddce19a606659163The Android Open Source Project
12864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_selectActiveProtocol(TI_HANDLE  hQosMngr);
12964064216a8433360745f69edddce19a606659163The Android Open Source Project
13064064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_setAcPsDeliveryMode(TI_HANDLE  hQosMngr);
13164064216a8433360745f69edddce19a606659163The Android Open Source Project
13264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_sendUnexpectedTSPECResponseEvent(TI_HANDLE	hQosMngr,
13364064216a8433360745f69edddce19a606659163The Android Open Source Project								   tspecInfo_t	*pTspecInfo);
13464064216a8433360745f69edddce19a606659163The Android Open Source Project
13564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS qosMngr_setAdmissionInfo(TI_HANDLE	hQosMngr,
13664064216a8433360745f69edddce19a606659163The Android Open Source Project								   UINT8		acID,
13764064216a8433360745f69edddce19a606659163The Android Open Source Project								   tspecInfo_t	*pTspecInfo,
13864064216a8433360745f69edddce19a606659163The Android Open Source Project								   trafficAdmRequestStatus_e trafficAdmRequestStatus);
13964064216a8433360745f69edddce19a606659163The Android Open Source Project
14064064216a8433360745f69edddce19a606659163The Android Open Source Project
14164064216a8433360745f69edddce19a606659163The Android Open Source Project
14264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS QosMngr_receiveActionFrames(TI_HANDLE hQosMngr, UINT8* pData, UINT8 action, UINT32 bodyLen);
14364064216a8433360745f69edddce19a606659163The Android Open Source Project
14464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid qosMngr_checkTspecRenegResults(TI_HANDLE hQosMngr, assocRsp_t *assocRsp);
14564064216a8433360745f69edddce19a606659163The Android Open Source Project
14664064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 qosMngr_buildTSPec(TI_HANDLE hQosMngr, UINT32 user_priority, UINT8 *pQosIe);
14764064216a8433360745f69edddce19a606659163The Android Open Source Project
14864064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* __QOS_MNGR_API_H__ */
14964064216a8433360745f69edddce19a606659163The Android Open Source Project
150