--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/utils/tiQosTypes.h Tue Jun 29 12:34:26 2010 +0100
@@ -0,0 +1,366 @@
+/*
+ * tiQosTypes.h
+ *
+ * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 or BSD License which accompanies
+ * this distribution. The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below.
+ *
+ * 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.
+ */
+
+
+/*--------------------------------------------------------------------------*/
+/* Module: tiQosTypes.h*/
+/**/
+/* Purpose: */
+/**/
+/*--------------------------------------------------------------------------*/
+
+#ifndef TI_QOS_TYPES_H
+#define TI_QOS_TYPES_H
+
+
+#include "TWDriver.h"
+
+/*
+ * This enum defines the protocol modes of the QOS management object
+ */
+typedef enum
+{
+ QOS_WME,
+ QOS_NONE
+
+} EQosProtocol;
+
+
+/*
+ * This enum includes the header converting modes configured to dataCtrl object.
+ */
+typedef enum
+{
+ HDR_CONVERT_NONE,
+ HDR_CONVERT_QOS,
+ HDR_CONVERT_LEGACY
+
+} EHeaderConvertMode;
+
+
+typedef enum
+{
+ QOS_AC_BE = 0,
+ QOS_AC_BK,
+ QOS_AC_VI,
+ QOS_AC_VO,
+ QOS_HIGHEST_AC_INDEX = QOS_AC_VO
+
+} EAcTrfcType;
+
+
+#define FIRST_AC_INDEX QOS_AC_BE
+#define AC_PARAMS_MAX_TSID 15
+#define MAX_APSD_CONF 0xffff
+
+
+typedef enum
+{
+ DROP_NEW_PACKET = 0,
+ DROP_OLD_PACKET
+
+} EQOverflowPolicy;
+
+
+typedef enum
+{
+ AC_NOT_ADMITTED,
+ AC_WAIT_ADMISSION,
+ AC_ADMITTED
+
+} ETrafficAdmState;
+
+
+/*
+ * This enum defines the admission state configured to dataCtrl object.
+ */
+typedef enum
+{
+ ADMISSION_NOT_REQUIRED,
+ ADMISSION_REQUIRED
+
+} EAdmissionState;
+
+
+typedef struct
+{
+ /* Power save mode */
+ TI_UINT8 PsMode;
+ TI_UINT16 TxQueueSize;
+ TI_UINT8 QueueIndex;
+ EQOverflowPolicy QueueOvFlowPolicy;
+ TI_UINT8 ackPolicy;
+ TI_UINT32 MsduLifeTime;
+
+} TAcTrfcCtrl;
+
+typedef struct
+{
+ /* header converting mode */
+ EHeaderConvertMode headerConverMode;
+ /* flag for converting zero tags */
+ TI_BOOL convertTagZeroFrames;
+ /* AC admission state */
+ ETrafficAdmState admissionState;
+ /* AC admission is mandatory */
+ EAdmissionState admissionRequired;
+ /* Tag to AC classification */
+ EAcTrfcType tag_ToAcClsfrTable[MAX_NUM_OF_802_1d_TAGS];
+
+} TQosParams;
+
+
+typedef struct
+{
+ TAcTrfcCtrl acTrfcCtrl;
+ TQosParams qosParams;
+ TI_UINT8 *tsrsArr;
+ TI_UINT8 tsrsArrLen;
+ TI_UINT8 acID;
+
+} TTxDataQosParams;
+
+
+typedef struct _OS_802_11_QOS_PARAMS
+{
+ TI_UINT32 acID;
+ TI_UINT32 MaxLifeTime;
+ TI_UINT32 PSDeliveryProtocol;
+ TI_UINT32 VoiceDeliveryProtocol;
+
+} OS_802_11_QOS_PARAMS;
+
+
+typedef struct
+{
+ TI_UINT32 psPoll;
+ TI_UINT32 UPSD;
+
+} OS_802_11_QOS_RX_TIMEOUT_PARAMS;
+
+
+typedef struct _OS_802_11_AC_QOS_PARAMS
+{
+ TI_UINT32 uAC;
+ TI_UINT32 uAssocAdmissionCtrlFlag;
+ TI_UINT32 uAIFS;
+ TI_UINT32 uCwMin;
+ TI_UINT32 uCwMax;
+ TI_UINT32 uTXOPLimit;
+
+} OS_802_11_AC_QOS_PARAMS;
+
+
+typedef struct _OS_802_11_AP_QOS_CAPABILITIES_PARAMS
+{
+ TI_UINT32 uQOSFlag;
+ TI_UINT32 uAPSDFlag;
+
+} OS_802_11_AP_QOS_CAPABILITIES_PARAMS;
+
+
+typedef struct _OS_802_11_QOS_TSPEC_PARAMS
+{
+ TI_UINT32 uUserPriority;
+ TI_UINT32 uNominalMSDUsize; /* in bytes */
+ TI_UINT32 uMeanDataRate; /* bits per second */
+ TI_UINT32 uMinimumPHYRate; /* 1,2,5,6,9,11,12,18,......*/
+ TI_UINT32 uSurplusBandwidthAllowance;
+ TI_UINT32 uAPSDFlag;
+ TI_UINT32 uMediumTime;
+ TI_UINT32 uReasonCode;
+
+} OS_802_11_QOS_TSPEC_PARAMS;
+
+
+typedef struct _OS_802_11_QOS_DELETE_TSPEC_PARAMS
+{
+ TI_UINT32 uUserPriority;
+ TI_UINT32 uReasonCode;
+} OS_802_11_QOS_DELETE_TSPEC_PARAMS;
+
+
+typedef struct _OS_802_11_QOS_DESIRED_PS_MODE
+{
+ TI_UINT32 uDesiredPsMode;
+ TI_UINT32 uDesiredWmeAcPsMode[QOS_HIGHEST_AC_INDEX + 1];
+
+} OS_802_11_QOS_DESIRED_PS_MODE;
+
+
+/* When this value is added to reason code in TSPEC events, it indicates a TSPEC response which was unexpected at the time */
+/* For example, a TSPEC response arrives after a TSPEC timeout */
+#define TSPEC_RESPONSE_UNEXPECTED 0x1000
+
+
+typedef enum
+{
+ ADDTS_RESPONSE_ACCEPT = 0,
+/* ADDTS_RESPONSE_REJECT, - according to the standard*/
+ ADDTS_RESPONSE_AP_PARAM_INVALID = 253,
+ ADDTS_RESPONSE_TIMEOUT = 254,
+ TSPEC_DELETED_BY_AP = 255
+
+} ETspecStatus;
+
+
+typedef struct _OS_802_11_AC_UPSD_STATUS_PARAMS
+{
+ TI_UINT32 uAC;
+ TI_UINT32 uCurrentUAPSDStatus;
+ TI_UINT32 pCurrentAdmissionStatus;
+
+} OS_802_11_AC_UPSD_STATUS_PARAMS;
+
+
+typedef struct _OS_802_11_THRESHOLD_CROSS_PARAMS
+{
+ TI_UINT32 uAC;
+ TI_UINT32 uHighThreshold;
+ TI_UINT32 uLowThreshold;
+
+} OS_802_11_THRESHOLD_CROSS_PARAMS;
+
+
+typedef struct OS_802_11_THRESHOLD_CROSS_INDICATION_PARAMS
+{
+ TI_UINT32 uAC;
+ TI_UINT32 uHighOrLowThresholdFlag; /* According to thresholdCross_e enum */
+ TI_UINT32 uAboveOrBelowFlag; /* According to thresholdCrossDirection_e enum */
+
+} OS_802_11_THRESHOLD_CROSS_INDICATION_PARAMS;
+
+
+typedef enum
+{
+ HIGH_THRESHOLD_CROSS,
+ LOW_THRESHOLD_CROSS
+
+} EThresholdCross;
+
+
+typedef enum
+{
+ CROSS_ABOVE,
+ CROSS_BELOW
+
+} EThresholdCrossDirection;
+
+
+typedef struct
+{
+ TI_UINT32 dstIpAddress;
+ TI_UINT32 dstPort;
+ TI_UINT32 PktTag;
+ TI_UINT32 userPriority;
+
+} TStreamTrafficProperties;
+
+
+typedef enum
+{
+ UPLINK_DIRECTION = 0,
+ DOWNLINK_DIRECTION = 1,
+ RESERVED_DIRECTION = 2,
+ BI_DIRECTIONAL = 3
+
+} EStreamDirection;
+
+
+/* classification algorithms:
+ 0) D-tag to D-tag
+ 1) DSCP to D-tag
+ 2) Destination port number to D-tag
+ 3) Destination IP&Port to D-tag
+*/
+typedef enum
+{
+ D_TAG_CLSFR = 0,
+ DSCP_CLSFR = 1,
+ PORT_CLSFR = 2,
+ IPPORT_CLSFR = 3,
+ CLSFR_MAX_TYPE = IPPORT_CLSFR
+
+} EClsfrType;
+
+
+
+/*************************/
+/* classifier params */
+/*************************/
+
+/* Destination IP address and port number */
+typedef struct
+{
+ TI_UINT32 DstIPAddress;
+ TI_UINT16 DstPortNum;
+
+} TIpPort;
+
+/* Classification mapping table */
+typedef struct
+{
+ union
+ {
+ TIpPort DstIPPort; /* for destination IP&Port classifier*/
+ TI_UINT16 DstPortNum; /* for destination Port classifier*/
+ TI_UINT8 CodePoint; /* for DSCP classifier*/
+ } Dscp;
+
+ TI_UINT8 DTag;
+
+} TClsfrTableEntry;
+
+/* number of classifier entries in the classification table */
+#define NUM_OF_CLSFR_TABLE_ENTRIES 16
+
+typedef struct
+{
+ EClsfrType eClsfrType; /* The type of the classifier: D-tag, DSCP, Port or IP&Port */
+ TI_UINT32 uNumActiveEntries; /* The number of active entries in the classification table */
+ TClsfrTableEntry ClsfrTable[NUM_OF_CLSFR_TABLE_ENTRIES]; /* Classification table - size changed from 15 to 16*/
+
+} TClsfrParams;
+
+typedef struct{
+ TI_UINT8 voiceTspecConfigure;
+ TI_UINT8 videoTspecConfigure;
+}TSpecConfigure;
+
+#endif /* TI_QOS_TYPES_H */
+