telephonyserver/etelpacketdata/inc/etelQoS.h
branchopencode
changeset 24 6638e7f4bd8f
parent 19 1f776524b15c
--- a/telephonyserver/etelpacketdata/inc/etelQoS.h	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserver/etelpacketdata/inc/etelQoS.h	Thu May 06 15:10:38 2010 +0100
@@ -1,756 +1,756 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// ETel Multimode Packet Data API - Quality of Service (QoS) support
-// GPRS Rel97/98, CDMAOne, CDMA2000, Release 99 and Release 4.
-// 
-// Copyright (c) Symbian Software Ltd. 2002-2009.  All rights reserved.
-// 
-//
-#ifndef __ETELQOS_H__
-#define __ETELQOS_H__
-
-#ifndef __ETELDEFAULTQOS_H__
-
-#include "etelpckt.h"
-
-class RPacketContext;
-class CPacketQoSPtrHolder;
-
-
-class RPacketQoS : public RTelSubSessionBase
-/**
-Encapsulates functionality to set the Requested and Minimum Quality of Service 
-options for a particular context (or "service configuration" in CDMA parlance), 
-as represented by the RPacketContext class.
- 
-Methods are available to set and get the QoS options, query the QoS capabilities 
-of the network service and notify the client if a change in the negotiated QoS 
-options occurs.
-
-A client must first create an instance of RPacketContext before opening a new 
-RPacketQoS, since when creating a new RPacketQoS, the client must call the 
-RPacketQoS::OpenNewQoS() function and pass in a reference to an RPacketContext 
-instance. 
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	//
-	// Nested enums and classes
-	//
-	/** Defines the QoS reliability settings for GRPS networks. */
-	enum TQoSReliability	// GPRS Release 97/98
-		{
-		/** Best effort or subscribed value. */
-		EUnspecifiedReliabilityClass = 0x01,
-		/** Reliability Class 1. */
-		EReliabilityClass1			 = 0x02,
-		/** Reliability Class 2. */
-		EReliabilityClass2			 = 0x04,
-		/** Reliability Class 3. */
-		EReliabilityClass3			 = 0x08,
-		/** Reliability Class 4. */
-		EReliabilityClass4			 = 0x10,
-		/** Reliability Class 5. */
-		EReliabilityClass5			 = 0x20
-		};
-
-	/** Defines the QoS precedence for GRPS networks. */
-	enum TQoSPrecedence		// GPRS Release 97/98
-		{
-		/** Best effort or subscribed value */
-		EUnspecifiedPrecedence		= 0x01, 
-		/** High priority precedence. */
-		EPriorityHighPrecedence     = 0x02,
-		/** Medium priority precedence. */
-		EPriorityMediumPrecedence  = 0x04,
-		/** Low priority precedence. */
-		EPriorityLowPrecedence		= 0x08
-		};
-
-	/** Defines the QoS delay for GPRS and CDMA200 networks.
-	 */
-	enum TQoSDelay			// GPRS Release 97/98, CDMA2000
-		{
-		/** Best effort or subscribed value. */
-		EUnspecifiedDelayClass	= 0x01, 
-		/** Delay class 1. */
-		EDelayClass1			= 0x02,
-		/** Delay class 2. */
-		EDelayClass2			= 0x04,
-		/** Delay class 3. */
-		EDelayClass3			= 0x08,
-		/** Delay class 4. */
-		EDelayClass4			= 0x10,
-		/** Delay 40 milli seconds.
-	
-		CDMA2000 specific
-		@deprecated 9.5		
-		 */
-		EDelay40ms				= 0x20,	
-		/** Delay 120 milli seconds.
-	
-		CDMA2000 specific 
-		@deprecated 9.5
-		*/
-		EDelay120ms				= 0x40,	
-		/** Delay 360 milli seconds.
-	
-		CDMA2000 specific 
-		@deprecated 9.5
-		*/
-		EDelay360ms				= 0x80	
-		};
-
-	/** Defines the QoS peak throughput rates for GRPS networks. */
-	enum TQoSPeakThroughput // GPRS Release 97/98
-		{
-		/** Best effort or subscribed value. */
-		EUnspecifiedPeakThroughput  = 0x001, 
-		/** Peak throughput of 1,000. */
-		EPeakThroughput1000			= 0x002,
-		/** Peak throughput of 2,000. */
-		EPeakThroughput2000			= 0x004,
-		/** Peak throughput of 4,000. */
-		EPeakThroughput4000			= 0x008,
-		/** Peak throughput of 8,000. */
-		EPeakThroughput8000			= 0x010,
-		/** Peak throughput of 16,000. */
-		EPeakThroughput16000		= 0x020,
-		/** Peak throughput of 32,000. */
-		EPeakThroughput32000		= 0x040,
-		/** Peak throughput of 64,000. */
-		EPeakThroughput64000		= 0x080,
-		/** Peak throughput of 128,000. */
-		EPeakThroughput128000		= 0x100,
-		/** Peak throughput of 256,000. */
-		EPeakThroughput256000		= 0x200
-		};
-
-	/** Defines the mean throughput for GRPS networks. */
-	enum TQoSMeanThroughput	// GPRS Release 97/98 
-		{
-		/** Unsubscribed value. */
-		EUnspecifiedMeanThroughput	= 0x00001,
-		/** Mean throughput of 100. */
-		EMeanThroughput100			= 0x00002,
-		/** Mean throughput of 200. */
-		EMeanThroughput200			= 0x00004,
-		/** Mean throughput of 500. */
-		EMeanThroughput500			= 0x00008,
-		/** Mean throughput of 1,000. */
-		EMeanThroughput1000			= 0x00010,
-		/** Mean throughput of 2,000. */
-		EMeanThroughput2000			= 0x00020,
-		/** Mean throughput of 5,000. */
-		EMeanThroughput5000			= 0x00040,
-		/** Mean throughput of 10,000. */
-		EMeanThroughput10000		= 0x00080,
-		/** Mean throughput of 20,000. */
-		EMeanThroughput20000		= 0x00100,
-		/** Mean throughput of 50,000. */
-		EMeanThroughput50000		= 0x00200,
-		/** Mean throughput of 100,000. */
-		EMeanThroughput100000		= 0x00400,
-		/** Mean throughput of 200,000. */
-		EMeanThroughput200000		= 0x00800,
-		/** Mean throughput of 500,000. */
-		EMeanThroughput500000		= 0x01000,
-		/** Mean throughput of 1,000,000. */
-		EMeanThroughput1000000		= 0x02000,
-		/** Mean throughput of 2,000,000. */
-		EMeanThroughput2000000		= 0x04000,
-		/** Mean throughput of 5,000,000. */
-		EMeanThroughput5000000		= 0x08000,
-		/** Mean throughput of 10,000,000. */
-		EMeanThroughput10000000		= 0x10000,
-		/** Mean throughput of 20,000,000. */
-		EMeanThroughput20000000		= 0x20000,
-		/** Mean throughput of 50,000,000. */
-		EMeanThroughput50000000		= 0x40000,
-		/** Best effort. */
-		EMeanThroughputBestEffort	= 0x80000
-		};
-
-	/** Defines the QoS link priority for CMDA2000 networks. */
-	enum TQoSLinkPriority	
-		{
-		/** No link priority. */
-		ELinkPriority00 = 0x0001, 
-		/** 1/13th's of user's subscription priority. */
-		ELinkPriority01 = 0x0002,
-		/** 2/13th's of user's subscription priority. */
-		ELinkPriority02 = 0x0004,
-		/** 3/13th's of user's subscription priority. */
-		ELinkPriority03	= 0x0008,
-		/** 4/13th's of user's subscription priority. */
-		ELinkPriority04	= 0x0010,
-		/** 5/13th's of user's subscription priority. */
-		ELinkPriority05	= 0x0020,
-		/** 6/13th's of user's subscription priority. */
-		ELinkPriority06	= 0x0040,	
-		/** 7/13th's of user's subscription priority. */
-		ELinkPriority07	= 0x0080,
-		/** 8/13th's of user's subscription priority. */
-		ELinkPriority08	= 0x0100,
-		/** 9/13th's of user's subscription priority. */
-		ELinkPriority09	= 0x0200,
-		/** 10/13th's of user's subscription priority. */
-		ELinkPriority10	= 0x0400,
-		/** 11/13th's of user's subscription priority. */
-		ELinkPriority11	= 0x0800,
-		/** 12/13th's of user's subscription priority. */
-		ELinkPriority12	= 0x1000,
-		/** Subscription priority (13/13th's). */
-		ELinkPriority13	= 0x2000	
-		};
-
-	/** Defines the QoS data loss rate. */
-	enum TQoSDataLoss
-		{
-		/** 1% data loss rate. */
-		EDataLoss1	 =	0x01,	
-		/** 2% data loss rate. */
-		EDataLoss2	 =	0x02,	
-		/** 5% data loss rate. */
-		EDataLoss5	 =	0x04,	
-		/** 10% data loss rate. */
-		EDataLoss10	 =	0x08	
-		};
-
-	/** Defines the QoS data rate. */
-	enum TQoSDataRate
-		{
-		/** A data rate of 8 kb/s. */
-		EDataRate8kbps	  =	0x01,
-		/** A data rate of 32 kb/s. */
-		EDataRate32kbps	  =	0x02,
-		/** A data rate of 64 kb/s. */
-		EDataRate64kbps	  =	0x04,
-		/** A data rate of 144 kb/s. */
-		EDataRate144kbps  =	0x08,
-		/** A data rate of 384 kb/s */
-		EDataRate384kbps  =	0x10
-		};
-
-	//
-	// TRLPMode - allows the client to specify (if desired) one of the following:
-	// transparent only, tranparent preferred, non-transparent only or non-transparent 
-	// preferred Radio Link Protocol Mode
-	//
-	/** Defines the Radio Link Protocol (RPL) mode. */
-	enum TRLPMode
-		{
-		/** RPL mode unknown. */
-		KRLPUnknown				= 0x01,		
-		/** Transparent mode only. */
-		KRLPTransparent			= 0x02,
-		/** Non-transparent mode only. */
-		KRLPNonTransparent		= 0x04,
-		/** Transparent mode preferred. */
-		KRLPTransparentPref		= 0x08,
-		/** Non-transparent mode preferred. */
-		KRLPNonTransparentPref	= 0x10
-		};
-
-	// The enums TTrafficClass, TDeliveryOrder,TErroneousSDUDelivery, TBitErrorRatio,
-	// TSDUErrorRatio, TTrafficHandlingPriority have been assigned values because
-	// the same enums are used both in the TQoSR99_R4Requested / Negotiated classes and 
-	// in the TQoSCapsR99_R4 class. The Caps class has to indicate which, for instance, 
-	// traffic classes are supported in a bitfield, so the enums have been defined as 
-	// different bits in a bit field.
-	enum TTrafficClass			
-		{
-		ETrafficClassUnspecified	= 0x01,		//< Traffic class - Unspecified
-		ETrafficClassConversational	= 0x02,		//< Traffic class - Conversational
-		ETrafficClassStreaming		= 0x04,		//< Traffic class - Streaming
-		ETrafficClassInteractive	= 0x08,		//< Traffic class - Interactive
-		ETrafficClassBackground		= 0x10		//< Traffic class - Background
-		};
-
-	enum TDeliveryOrder		
-		{
-		EDeliveryOrderUnspecified	= 0x01,		//< SDU Delivery order - Unspecified
-		EDeliveryOrderRequired		= 0x02,		//< SDU Delivery order - Required to be in sequence
-		EDeliveryOrderNotRequired	= 0x04		//< SDU Delivery order - Not Required to be in sequence
-		};
-
-	enum TErroneousSDUDelivery		// Erroneous SDU Delivery
-		{
-		EErroneousSDUDeliveryUnspecified	= 0x01,	//< Unspecified
-		EErroneousSDUNoDetection			= 0x02,	//< Erroneous SDUs delivered - Error detection not considered.
-		EErroneousSDUDeliveryRequired		= 0x04,	//< Erroneous SDUs delivered + error indication - Error detection employed.
-		EErroneousSDUDeliveryNotRequired	= 0x08	//< Erroneous SDUs discarded - Error detection is employed.
-		};
-
-	enum TBitErrorRatio				// Residual Bit Error Rate
-		{
-		EBERUnspecified				= 0x01,		//< Target residual undetected BER - Unspecified
-		EBERFivePerHundred			= 0x02,		//< Target residual BER - 0.05
-		EBEROnePerHundred			= 0x04,		//< Target residual BER - 0.01
-		EBERFivePerThousand			= 0x08,		//< Target residual BER - 0.005
-		EBERFourPerThousand			= 0x10,		//< Target residual BER - 0.004
-		EBEROnePerThousand			= 0x20,		//< Target residual BER - 0.001
-		EBEROnePerTenThousand		= 0x40,		//< Target residual BER - 0.0001
-		EBEROnePerHundredThousand	= 0x80,		//< Target residual BER - 0.00001
-		EBEROnePerMillion			= 0x100,	//< Target residual BER - 0.000001
-		EBERSixPerHundredMillion	= 0x200		//< Target residual BER - 0.00000006
-		};
-
-	enum TSDUErrorRatio				// SDU Error Ratio
-		{
-		ESDUErrorRatioUnspecified			= 0x01,	//< Target value of Erroneous SDUs - Unspecified
-		ESDUErrorRatioOnePerTen				= 0x02,	//< Target SDU error ratio - 0.1
-		ESDUErrorRatioOnePerHundred			= 0x04,	//< Target SDU error ratio - 0.01
-		ESDUErrorRatioSevenPerThousand		= 0x08,	//< Target SDU error ratio - 0.007
-		ESDUErrorRatioOnePerThousand		= 0x10,	//< Target SDU error ratio - 0.001
-		ESDUErrorRatioOnePerTenThousand		= 0x20,	//< Target SDU error ratio - 0.0001
-		ESDUErrorRatioOnePerHundredThousand	= 0x40,	//< Target SDU error ratio - 0.00001
-		ESDUErrorRatioOnePerMillion			= 0x80	//< Target SDU error ratio - 0.000001
-		};
-
-	enum TTrafficHandlingPriority	// Traffic handling priority
-		{
-		ETrafficPriorityUnspecified	= 0x01,		//< Unspecified Priority level
-		ETrafficPriority1			= 0x02,		//< Priority level 1
-		ETrafficPriority2			= 0x04,		//< Priority level 2
-		ETrafficPriority3			= 0x08		//< Priority level 3
-		};
-
-	struct TBitRate					// Bit rates for uplink and downlink
-		{
-		TInt iUplinkRate;			//< Uplink bitrate in kbps. Range 0 - 16000
-		TInt iDownlinkRate;			//< Downlink bitrate in kbps. Range 0 - 16000
-		};
-			
-	/**
-	Source statistics descriptor - as defined in 3GPP TS 23.107 and TS 24.008.
-	
-	@publishedPartner
-	@released
-	*/
-	enum TSourceStatisticsDescriptor	
-		{
-		/** Unknown source statistics descriptor. */
-		ESourceStatisticsDescriptorUnknown	= 0x0,		
-		/** Speech source statistics descriptor. */
-		ESourceStatisticsDescriptorSpeech	= 0x01,		 
-		};
-		
-	//
-	// QoS capabilities classes
-	//
-	class TQoSCapsGPRS : public TPacketDataConfigBase
-	/**
-	Supported GPRS QoS capabilities.
-	
-	@deprecated v9.3 Use TQoSCapsR99_R4 or TQoSCapsR5 instead. 
-	*/
-		{
-	public:
-		IMPORT_C TQoSCapsGPRS(); // iExtensionId = KConfigGPRS
-	public:
-		/** Bit-wise sum of the TQoSPrecedence attributes. 
-		
-		The default value is EUnspecifiedPrecedence. */
-		TUint iPrecedence;
-		/** Bit-wise sum of the TQoSDelay attributes. 
-		
-		The default value is EUnspecifiedDelay. */
-		TUint iDelay;
-		/** Bit-wise sum of the TQoSReliability attributes. 
-		
-		The default value is EUnspecifiedReliability. */
-		TUint iReliability;
-		/** Bit-wise sum of the TQoSPeakThroughput attributes. 
-		
-		The default value is EUnspecifiedPeakThroughput. */
-		TUint iPeak;
-		/** Bit-wise sum of the TQoSMeanThroughput attributes. 
-		
-		The default value is EUnspecifiedMeanThroughput. */
-		TUint iMean;
-		};
-
-	class TQoSCapsCDMA2000 : public TPacketDataConfigBase
-	/**
-	Supported CDMA2000 QoS capabilities.
-
-	@publishedPartner
-	@released	
-	@deprecated 9.5
-	*/
-		{
-	public:
-		IMPORT_C TQoSCapsCDMA2000(); // iExtensionId = KConfigCDMA
-	public:
-		/** Bit-wise sum of the TQoSLinkPriority attributes. */
-		TUint	iPriority;
-		/** Bit-wise sum of the TQoSDataRate attributes for the uplink. */
-		TUint	iUplinkRate;
-		/** Bit-wise sum of the TQoSDataRate attributes for the downlink. */
-		TUint	iDownlinkRate;
-		/** Bit-wise sum of the TQoSDataLoss attributes. */
-		TUint	iFwdLossRate;
-		/** Bit-wise sum of the TQoSDataLoss attributes. */
-		TUint	iRevLossRate;
-		/** Bit-wise sum of the TQoSDelay attributes. */
-		TUint	iFwdMaxDelay;
-		/** Bit-wise sum of the TQoSDelay attributes. */
-		TUint	iRevMaxDelay;
-		};
-
-	
-	class TQoSCapsR99_R4 : public TPacketDataConfigBase
-	/**
-	GPRS/UMTS Rel99 and UMTS Rel4 QoS capabilities class.
-	
-	@publishedPartner
-	@released
-	*/
-		{
-	public:
-		IMPORT_C TQoSCapsR99_R4(); 
-	public:
-		TUint iTrafficClass;			//< Supported traffic class of the MT
-		TUint iDeliveryOrderReqd;		//< SDU sequential delivery
-		TUint iDeliverErroneousSDU;		//< Delivery of erroneous SDUs
-		TUint iBER;						//< Target Bit Error Ratio (BER)
-		TUint iSDUErrorRatio;			//< Target SDU Error Ratio
-		TUint iTrafficHandlingPriority; //< Traffic handling priority
-		};
-		
-	class TQoSCapsR5 : public TQoSCapsR99_R4
-	/**
-	UMTS Rel5 QoS capabilities class.
-	
-	@publishedPartner
-	@released
-	*/
-		{
-	public:
-		IMPORT_C TQoSCapsR5(); 
-	public:
-		TUint iSignallingIndication;		//< Requested signalling indication 
-		TUint iSourceStatisticsDescriptor;	//< Requested source statistics descriptor
-		};
-
-	//
-	// QoS configuration classes
-	//
-	class TQoSGPRSRequested : public TPacketDataConfigBase	// GPRS Rel97/98
-	/**
-	The GPRS QoS that is requested.
-	
-	@deprecated v9.3 Use TQoSR99_R4Requested or TQoSR5Requested instead.
-	*/
-		{
-	public:
-		IMPORT_C TQoSGPRSRequested();
-	public:
-		/** Precedence requested. The default is EUnspecifiedPrecedence.
-	
-		@see TQoSPrecedence */
-		TQoSPrecedence		iReqPrecedence;
-		/** Minimum precedence. The default is EUnspecifiedPrecedence.
-	
-		@see TQoSPrecedence */
-		TQoSPrecedence		iMinPrecedence;
-		/** Requested QoS Delay. The default is EUnspecifiedDelayClass.
-	
-		@see TQoSDelay */
-		TQoSDelay			iReqDelay;
-		/** Minimum delay requested. The default is EUnspecifiedDelayClass.
-	
-		@see TQoSDelay */
-		TQoSDelay			iMinDelay;
-		/** Requested reliability. The default is EUnspecifiedReliabilityClass.
-	
-		@see TQoSReliability */
-		TQoSReliability		iReqReliability;
-		/** Requested minimum reliability . The default is EUnspecifiedReliabilityClass.
-	
-		@see TQoSReliability */
-		TQoSReliability		iMinReliability;
-		/** Requested peak throughput . The default is EUnspecifiedPeakThroughput.
-	
-		@see TQoSPeakThroughput */
-		TQoSPeakThroughput	iReqPeakThroughput;
-		/** Requested minimum peak throughput. The default is EUnspecifiedPeakThroughput.
-	
-		@see TQoSPeakThroughput */
-		TQoSPeakThroughput	iMinPeakThroughput;
-		/** Requested QoS mean throughput. The default is EUnspecifiedMeanThroughput.
-	
-		@see TQoSMeanThroughput */
-		TQoSMeanThroughput	iReqMeanThroughput;
-		/** Requested minimum QoS mean throughput. The default is EUnspecifiedMeanThroughput.
-	
-		@see TQoSMeanThroughput */
-		TQoSMeanThroughput	iMinMeanThroughput;
-		};
-		
-	class TQoSGPRSNegotiated : public TPacketDataConfigBase	// GPRS Rel97/98
-	/** Contains the negotiated QoS values - returned by the GPRS network 
-	after activating a connection and determining the QoS profile. 
-
-	@deprecated v9.3 Use TQoSR99_R4Negotiated or TQoSR5Negotiated instead.
-	*/
-		{
-	public:
-		IMPORT_C TQoSGPRSNegotiated();
-	public:
-		/** Negotiated QoS precedence. The default is EUnspecifiedPrecedence.
-	
-		@see TQoSPrecedence */
-		TQoSPrecedence		iPrecedence;
-		/** Negotiated QoS delay. The default is EUnspecifiedPeakThroughput.
-	
-		@see TQoSDelay */
-		TQoSDelay			iDelay;
-		/** Negotiated QoS reliability. The default is EUnspecifiedReliabilityClass.
-	
-		@see TQoSReliability */
-		TQoSReliability		iReliability;
-		/** Negotiated QoS peak throughput. The default is EUnspecifiedPeakThroughput.
-	
-		@see TQoSPeakThroughput */
-		TQoSPeakThroughput	iPeakThroughput;
-		/** Negotiated QoS mean throughput. The default is EUnspecifiedMeanThroughput.
-	
-		@see TQoSMeanThroughput */
-		TQoSMeanThroughput	iMeanThroughput;
-		};
-
-	class TQoSCDMA2000Requested : public TPacketDataConfigBase	// CDMA2000
-	/**
-	The CDMA2000 QoS requested from the network.
-
-	@publishedPartner
-	@released
-	@deprecated 9.5
-	*/
-		{
-	public:
-		IMPORT_C TQoSCDMA2000Requested();
-	public:
-		/** The request assured mode. */
-		TBool				iAssuredMode; // assured vs. non-assured mode
-		/** The RPL mode requested.
-	
-		@see TRLPMode */
-		TRLPMode			iRLPMode;
-		/** The link priority requested.
-	
-		@see TQoSLinkPriority */
-		TQoSLinkPriority	iPriority;
-		/** The uplink rate requested.
-	
-		@see TQoSDataRate */
-		TQoSDataRate		iReqUplinkRate;
-		/** The minimum uplink rate requested.
-	
-		@see TQoSDataRate */
-		TQoSDataRate		iMinUplinkRate;
-		/** The downlink rate requested
-	
-		@see TQoSDataRate */
-		TQoSDataRate		iReqDownlinkRate;
-		/** The minimum downlink rate requested.
-	
-		@see TQoSDataRate */
-		TQoSDataRate		iMinDownlinkRate;
-		/** The forward loss rate requested. */
-		TQoSDataLoss		iFwdRequestedLossRate;
-		TQoSDataLoss		iRevRequestedLossRate;
-		/** The forward accepted loss rate. */
-		TQoSDataLoss		iFwdAcceptedLossRate;
-		/** The reverse accepted loss rate. */
-		TQoSDataLoss		iRevAcceptedLossRate;
-		/** The forward maximum requested delay. */
-		TQoSDelay			iFwdMaxRequestedDelay;
-		/** The reverse maximum requested delay. */
-		TQoSDelay			iRevMaxRequestedDelay;
-		/** The forward maximum accepted delay. */
-		TQoSDelay			iFwdMaxAcceptedDelay;
-		/** The reverse maximum accepted delay. */
-		TQoSDelay			iRevMaxAcceptedDelay;
-		};
-
-	class TQoSCDMA2000Negotiated : public TPacketDataConfigBase	// CDMA2000
-	/**
-	The negotiated CDMA200 QoS parameters.
-
-	@publishedPartner
-	@released
-	@deprecated 9.5
-	*/
-		{
-	public:
-		IMPORT_C TQoSCDMA2000Negotiated();
-	public:
-		/** Negotiated assured mode. */
-		TBool				iAssuredMode; // assured vs. non-assured mode. 
-		/** Negotiated Radio Link Protocol mode.
-	
-		@see TRLPMode */
-		TRLPMode			iRLPMode;
-		/** Negotiated QoS link priority.
-	
-		@see TQoSLinkPriority */
-		TQoSLinkPriority	iPriority;
-		/** Negotiated uplink rate.
-	
-		@see TQoSDataRate */
-		TQoSDataRate		iUplinkRate;
-		/** Negotiated downlink rate.
-	
-		@see TQoSDataRate */
-		TQoSDataRate		iDownlinkRate;
-		/** Negotiated forward data loss rate.
-	
-		@see TQoSDataLoss */
-		TQoSDataLoss		iFwdDataLossRate;
-		/** Negotiated reverse data loss rate.
-	
-		@see TQoSDataLoss */
-		TQoSDataLoss		iRevDataLossRate;
-		/** Negotiated forward maximum delay.
-	
-		@see TQoSDelay */
-		TQoSDelay			iFwdMaxDelay;
-		/** Negotiated reverse maximum delay.
-	
-		@see TQoSDelay */
-		TQoSDelay			iRevMaxDelay;
-		};
-
-	
-	class TQoSR99_R4Requested : public TPacketDataConfigBase	
-	/**
-	Contains the requested and minimum values for the 
-	GPRS/UMTS Rel99 and UMTS Rel4 QoS profile attributes.
-	
-	@publishedPartner
-	@released
-	*/
-		{
-	public:
-		IMPORT_C TQoSR99_R4Requested();
-	public:
-		TTrafficClass				iReqTrafficClass;			//< Requested traffic class	
-		TTrafficClass				iMinTrafficClass;			//< Minimum acceptable traffic class
-		TDeliveryOrder				iReqDeliveryOrderReqd;		//< Requested value for sequential SDU delivery
-		TDeliveryOrder				iMinDeliveryOrderReqd;		//< Minimum acceptable value for sequential SDU delivery
-		TErroneousSDUDelivery		iReqDeliverErroneousSDU;	//< Requested value for erroneous SDU delivery
-		TErroneousSDUDelivery		iMinDeliverErroneousSDU;	//< Minimum acceptable value for erroneous SDU delivery
-		TInt						iReqMaxSDUSize;				//< Request maximum SDU size
-		TInt						iMinAcceptableMaxSDUSize;	//< Minimum acceptable SDU size
-		TBitRate					iReqMaxRate;				//< Requested maximum bit rates on uplink and downlink
-		TBitRate					iMinAcceptableMaxRate;		//< Minimum acceptable bit rates on uplink and downlink
-		TBitErrorRatio				iReqBER;					//< Requested target BER
-		TBitErrorRatio				iMaxBER;					//< Maximum acceptable target BER
-		TSDUErrorRatio				iReqSDUErrorRatio;			//< Requested target SDU error ratio
-		TSDUErrorRatio				iMaxSDUErrorRatio;			//< Maximum acceptable target SDU error ratio
-		TTrafficHandlingPriority	iReqTrafficHandlingPriority;//< Requested traffic handling priority
-		TTrafficHandlingPriority	iMinTrafficHandlingPriority;//< Minimum acceptable traffic handling priority
-		TInt						iReqTransferDelay;			//< Requested transfer delay (in milliseconds)
-		TInt						iMaxTransferDelay;			//< Maximum acceptable  transfer delay (in milliseconds)
-		TBitRate					iReqGuaranteedRate;			//< Requested guaranteed bit rates on uplink and downlink
-		TBitRate					iMinGuaranteedRate;			//< Minimum acceptable guaranteed bit rates on uplink and downlink
-		};
-
-	class TQoSR99_R4Negotiated : public TPacketDataConfigBase		
-	/**
-	Contains the negotiated values for the GPRS/UMTS Rel99
-	and UMTS Rel4 QoS profile.
-
-	@publishedPartner
-	@released
-	*/
-		{
-	public:
-		IMPORT_C TQoSR99_R4Negotiated();
-	public:
-		TTrafficClass				iTrafficClass;				//< Negotiated traffic class
-		TDeliveryOrder				iDeliveryOrderReqd;			//< Negotiated value for sequential SDU delivery
-		TErroneousSDUDelivery		iDeliverErroneousSDU;		//< Negotiated value for erroneous SDU delivery
-		TInt						iMaxSDUSize;				//< Negotiated maximum SDU size (in octets)
-		TBitRate					iMaxRate;					//< Negotiated maximum bit rates on the uplink and downlink
-		TBitErrorRatio				iBER;						//< Negotiated target BER
-		TSDUErrorRatio				iSDUErrorRatio;				//< Negotiated target SDU error ratio
-		TTrafficHandlingPriority	iTrafficHandlingPriority;	//< Negotiated traffic handling priority
-		TInt						iTransferDelay;				//< Negotiated transfer delay (in milliseconds)
-		TBitRate					iGuaranteedRate;			//< Negotiated guaranteed bit rates on the uplink and downlink
-		};
-
-
-	class TQoSR5Requested : public TQoSR99_R4Requested	
-	/**
-	Contains the requested and minimum values for the 
-	UMTS/IMS 3GPP Rel5 QoS profile attributes.
-	
-	@publishedPartner
-	@released
-	*/
-		{
-	public:
-		IMPORT_C TQoSR5Requested();
-	public:	
-		/** Requested signalling indication. */
-		TBool						iSignallingIndication;			 
-		/** Requested source statistics descriptor. */
-		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;			
-		};
-
-
-	
-	class TQoSR5Negotiated : public TQoSR99_R4Negotiated	
-	/**
-	Contains the negotiated values for the UMTS/IMS 3GPP Rel5 QoS profile.
-
-	@publishedPartner
-	@released
-	*/
-		{
-	public:
-		IMPORT_C TQoSR5Negotiated();
-	public:	
-		/** Negotiated signalling indication. */	
-		TBool						iSignallingIndication;			
-		/** Negotiated source statistics descriptor. */
-		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;	 		
-		};
-		
-	IMPORT_C		RPacketQoS();
-	IMPORT_C TInt	OpenNewQoS(RPacketContext& aPacketContext, TDes& aProfileName);
-	IMPORT_C TInt	OpenExistingQoS(RPacketContext& aPacketContext, const TDesC& aProfileName); 
-	IMPORT_C void	Close();
-
-	IMPORT_C void	SetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
-	IMPORT_C void	GetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
-	IMPORT_C void	GetProfileCapabilities(TRequestStatus& aStatus, TDes8& aProfileCaps) const;
-	IMPORT_C void	NotifyProfileChanged(TRequestStatus& aStatus, TDes8& aProfile) const;
-protected:
-	IMPORT_C virtual void ConstructL();
-	IMPORT_C virtual void Destruct();
-private:
-	CPacketQoSPtrHolder* iEtelPacketQoSPtrHolder;
-	};
-
-#endif
-	
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ETel Multimode Packet Data API - Quality of Service (QoS) support
+// GPRS Rel97/98, CDMAOne, CDMA2000, Release 99 and Release 4.
+// 
+// Copyright (c) Symbian Software Ltd. 2002-2009.  All rights reserved.
+// 
+//
+#ifndef __ETELQOS_H__
+#define __ETELQOS_H__
+
+#ifndef __ETELDEFAULTQOS_H__
+
+#include "etelpckt.h"
+
+class RPacketContext;
+class CPacketQoSPtrHolder;
+
+
+class RPacketQoS : public RTelSubSessionBase
+/**
+Encapsulates functionality to set the Requested and Minimum Quality of Service 
+options for a particular context (or "service configuration" in CDMA parlance), 
+as represented by the RPacketContext class.
+ 
+Methods are available to set and get the QoS options, query the QoS capabilities 
+of the network service and notify the client if a change in the negotiated QoS 
+options occurs.
+
+A client must first create an instance of RPacketContext before opening a new 
+RPacketQoS, since when creating a new RPacketQoS, the client must call the 
+RPacketQoS::OpenNewQoS() function and pass in a reference to an RPacketContext 
+instance. 
+
+@publishedPartner
+@released
+*/
+	{
+public:
+	//
+	// Nested enums and classes
+	//
+	/** Defines the QoS reliability settings for GRPS networks. */
+	enum TQoSReliability	// GPRS Release 97/98
+		{
+		/** Best effort or subscribed value. */
+		EUnspecifiedReliabilityClass = 0x01,
+		/** Reliability Class 1. */
+		EReliabilityClass1			 = 0x02,
+		/** Reliability Class 2. */
+		EReliabilityClass2			 = 0x04,
+		/** Reliability Class 3. */
+		EReliabilityClass3			 = 0x08,
+		/** Reliability Class 4. */
+		EReliabilityClass4			 = 0x10,
+		/** Reliability Class 5. */
+		EReliabilityClass5			 = 0x20
+		};
+
+	/** Defines the QoS precedence for GRPS networks. */
+	enum TQoSPrecedence		// GPRS Release 97/98
+		{
+		/** Best effort or subscribed value */
+		EUnspecifiedPrecedence		= 0x01, 
+		/** High priority precedence. */
+		EPriorityHighPrecedence     = 0x02,
+		/** Medium priority precedence. */
+		EPriorityMediumPrecedence  = 0x04,
+		/** Low priority precedence. */
+		EPriorityLowPrecedence		= 0x08
+		};
+
+	/** Defines the QoS delay for GPRS and CDMA200 networks.
+	 */
+	enum TQoSDelay			// GPRS Release 97/98, CDMA2000
+		{
+		/** Best effort or subscribed value. */
+		EUnspecifiedDelayClass	= 0x01, 
+		/** Delay class 1. */
+		EDelayClass1			= 0x02,
+		/** Delay class 2. */
+		EDelayClass2			= 0x04,
+		/** Delay class 3. */
+		EDelayClass3			= 0x08,
+		/** Delay class 4. */
+		EDelayClass4			= 0x10,
+		/** Delay 40 milli seconds.
+	
+		CDMA2000 specific
+		@deprecated 9.5		
+		 */
+		EDelay40ms				= 0x20,	
+		/** Delay 120 milli seconds.
+	
+		CDMA2000 specific 
+		@deprecated 9.5
+		*/
+		EDelay120ms				= 0x40,	
+		/** Delay 360 milli seconds.
+	
+		CDMA2000 specific 
+		@deprecated 9.5
+		*/
+		EDelay360ms				= 0x80	
+		};
+
+	/** Defines the QoS peak throughput rates for GRPS networks. */
+	enum TQoSPeakThroughput // GPRS Release 97/98
+		{
+		/** Best effort or subscribed value. */
+		EUnspecifiedPeakThroughput  = 0x001, 
+		/** Peak throughput of 1,000. */
+		EPeakThroughput1000			= 0x002,
+		/** Peak throughput of 2,000. */
+		EPeakThroughput2000			= 0x004,
+		/** Peak throughput of 4,000. */
+		EPeakThroughput4000			= 0x008,
+		/** Peak throughput of 8,000. */
+		EPeakThroughput8000			= 0x010,
+		/** Peak throughput of 16,000. */
+		EPeakThroughput16000		= 0x020,
+		/** Peak throughput of 32,000. */
+		EPeakThroughput32000		= 0x040,
+		/** Peak throughput of 64,000. */
+		EPeakThroughput64000		= 0x080,
+		/** Peak throughput of 128,000. */
+		EPeakThroughput128000		= 0x100,
+		/** Peak throughput of 256,000. */
+		EPeakThroughput256000		= 0x200
+		};
+
+	/** Defines the mean throughput for GRPS networks. */
+	enum TQoSMeanThroughput	// GPRS Release 97/98 
+		{
+		/** Unsubscribed value. */
+		EUnspecifiedMeanThroughput	= 0x00001,
+		/** Mean throughput of 100. */
+		EMeanThroughput100			= 0x00002,
+		/** Mean throughput of 200. */
+		EMeanThroughput200			= 0x00004,
+		/** Mean throughput of 500. */
+		EMeanThroughput500			= 0x00008,
+		/** Mean throughput of 1,000. */
+		EMeanThroughput1000			= 0x00010,
+		/** Mean throughput of 2,000. */
+		EMeanThroughput2000			= 0x00020,
+		/** Mean throughput of 5,000. */
+		EMeanThroughput5000			= 0x00040,
+		/** Mean throughput of 10,000. */
+		EMeanThroughput10000		= 0x00080,
+		/** Mean throughput of 20,000. */
+		EMeanThroughput20000		= 0x00100,
+		/** Mean throughput of 50,000. */
+		EMeanThroughput50000		= 0x00200,
+		/** Mean throughput of 100,000. */
+		EMeanThroughput100000		= 0x00400,
+		/** Mean throughput of 200,000. */
+		EMeanThroughput200000		= 0x00800,
+		/** Mean throughput of 500,000. */
+		EMeanThroughput500000		= 0x01000,
+		/** Mean throughput of 1,000,000. */
+		EMeanThroughput1000000		= 0x02000,
+		/** Mean throughput of 2,000,000. */
+		EMeanThroughput2000000		= 0x04000,
+		/** Mean throughput of 5,000,000. */
+		EMeanThroughput5000000		= 0x08000,
+		/** Mean throughput of 10,000,000. */
+		EMeanThroughput10000000		= 0x10000,
+		/** Mean throughput of 20,000,000. */
+		EMeanThroughput20000000		= 0x20000,
+		/** Mean throughput of 50,000,000. */
+		EMeanThroughput50000000		= 0x40000,
+		/** Best effort. */
+		EMeanThroughputBestEffort	= 0x80000
+		};
+
+	/** Defines the QoS link priority for CMDA2000 networks. */
+	enum TQoSLinkPriority	
+		{
+		/** No link priority. */
+		ELinkPriority00 = 0x0001, 
+		/** 1/13th's of user's subscription priority. */
+		ELinkPriority01 = 0x0002,
+		/** 2/13th's of user's subscription priority. */
+		ELinkPriority02 = 0x0004,
+		/** 3/13th's of user's subscription priority. */
+		ELinkPriority03	= 0x0008,
+		/** 4/13th's of user's subscription priority. */
+		ELinkPriority04	= 0x0010,
+		/** 5/13th's of user's subscription priority. */
+		ELinkPriority05	= 0x0020,
+		/** 6/13th's of user's subscription priority. */
+		ELinkPriority06	= 0x0040,	
+		/** 7/13th's of user's subscription priority. */
+		ELinkPriority07	= 0x0080,
+		/** 8/13th's of user's subscription priority. */
+		ELinkPriority08	= 0x0100,
+		/** 9/13th's of user's subscription priority. */
+		ELinkPriority09	= 0x0200,
+		/** 10/13th's of user's subscription priority. */
+		ELinkPriority10	= 0x0400,
+		/** 11/13th's of user's subscription priority. */
+		ELinkPriority11	= 0x0800,
+		/** 12/13th's of user's subscription priority. */
+		ELinkPriority12	= 0x1000,
+		/** Subscription priority (13/13th's). */
+		ELinkPriority13	= 0x2000	
+		};
+
+	/** Defines the QoS data loss rate. */
+	enum TQoSDataLoss
+		{
+		/** 1% data loss rate. */
+		EDataLoss1	 =	0x01,	
+		/** 2% data loss rate. */
+		EDataLoss2	 =	0x02,	
+		/** 5% data loss rate. */
+		EDataLoss5	 =	0x04,	
+		/** 10% data loss rate. */
+		EDataLoss10	 =	0x08	
+		};
+
+	/** Defines the QoS data rate. */
+	enum TQoSDataRate
+		{
+		/** A data rate of 8 kb/s. */
+		EDataRate8kbps	  =	0x01,
+		/** A data rate of 32 kb/s. */
+		EDataRate32kbps	  =	0x02,
+		/** A data rate of 64 kb/s. */
+		EDataRate64kbps	  =	0x04,
+		/** A data rate of 144 kb/s. */
+		EDataRate144kbps  =	0x08,
+		/** A data rate of 384 kb/s */
+		EDataRate384kbps  =	0x10
+		};
+
+	//
+	// TRLPMode - allows the client to specify (if desired) one of the following:
+	// transparent only, tranparent preferred, non-transparent only or non-transparent 
+	// preferred Radio Link Protocol Mode
+	//
+	/** Defines the Radio Link Protocol (RPL) mode. */
+	enum TRLPMode
+		{
+		/** RPL mode unknown. */
+		KRLPUnknown				= 0x01,		
+		/** Transparent mode only. */
+		KRLPTransparent			= 0x02,
+		/** Non-transparent mode only. */
+		KRLPNonTransparent		= 0x04,
+		/** Transparent mode preferred. */
+		KRLPTransparentPref		= 0x08,
+		/** Non-transparent mode preferred. */
+		KRLPNonTransparentPref	= 0x10
+		};
+
+	// The enums TTrafficClass, TDeliveryOrder,TErroneousSDUDelivery, TBitErrorRatio,
+	// TSDUErrorRatio, TTrafficHandlingPriority have been assigned values because
+	// the same enums are used both in the TQoSR99_R4Requested / Negotiated classes and 
+	// in the TQoSCapsR99_R4 class. The Caps class has to indicate which, for instance, 
+	// traffic classes are supported in a bitfield, so the enums have been defined as 
+	// different bits in a bit field.
+	enum TTrafficClass			
+		{
+		ETrafficClassUnspecified	= 0x01,		//< Traffic class - Unspecified
+		ETrafficClassConversational	= 0x02,		//< Traffic class - Conversational
+		ETrafficClassStreaming		= 0x04,		//< Traffic class - Streaming
+		ETrafficClassInteractive	= 0x08,		//< Traffic class - Interactive
+		ETrafficClassBackground		= 0x10		//< Traffic class - Background
+		};
+
+	enum TDeliveryOrder		
+		{
+		EDeliveryOrderUnspecified	= 0x01,		//< SDU Delivery order - Unspecified
+		EDeliveryOrderRequired		= 0x02,		//< SDU Delivery order - Required to be in sequence
+		EDeliveryOrderNotRequired	= 0x04		//< SDU Delivery order - Not Required to be in sequence
+		};
+
+	enum TErroneousSDUDelivery		// Erroneous SDU Delivery
+		{
+		EErroneousSDUDeliveryUnspecified	= 0x01,	//< Unspecified
+		EErroneousSDUNoDetection			= 0x02,	//< Erroneous SDUs delivered - Error detection not considered.
+		EErroneousSDUDeliveryRequired		= 0x04,	//< Erroneous SDUs delivered + error indication - Error detection employed.
+		EErroneousSDUDeliveryNotRequired	= 0x08	//< Erroneous SDUs discarded - Error detection is employed.
+		};
+
+	enum TBitErrorRatio				// Residual Bit Error Rate
+		{
+		EBERUnspecified				= 0x01,		//< Target residual undetected BER - Unspecified
+		EBERFivePerHundred			= 0x02,		//< Target residual BER - 0.05
+		EBEROnePerHundred			= 0x04,		//< Target residual BER - 0.01
+		EBERFivePerThousand			= 0x08,		//< Target residual BER - 0.005
+		EBERFourPerThousand			= 0x10,		//< Target residual BER - 0.004
+		EBEROnePerThousand			= 0x20,		//< Target residual BER - 0.001
+		EBEROnePerTenThousand		= 0x40,		//< Target residual BER - 0.0001
+		EBEROnePerHundredThousand	= 0x80,		//< Target residual BER - 0.00001
+		EBEROnePerMillion			= 0x100,	//< Target residual BER - 0.000001
+		EBERSixPerHundredMillion	= 0x200		//< Target residual BER - 0.00000006
+		};
+
+	enum TSDUErrorRatio				// SDU Error Ratio
+		{
+		ESDUErrorRatioUnspecified			= 0x01,	//< Target value of Erroneous SDUs - Unspecified
+		ESDUErrorRatioOnePerTen				= 0x02,	//< Target SDU error ratio - 0.1
+		ESDUErrorRatioOnePerHundred			= 0x04,	//< Target SDU error ratio - 0.01
+		ESDUErrorRatioSevenPerThousand		= 0x08,	//< Target SDU error ratio - 0.007
+		ESDUErrorRatioOnePerThousand		= 0x10,	//< Target SDU error ratio - 0.001
+		ESDUErrorRatioOnePerTenThousand		= 0x20,	//< Target SDU error ratio - 0.0001
+		ESDUErrorRatioOnePerHundredThousand	= 0x40,	//< Target SDU error ratio - 0.00001
+		ESDUErrorRatioOnePerMillion			= 0x80	//< Target SDU error ratio - 0.000001
+		};
+
+	enum TTrafficHandlingPriority	// Traffic handling priority
+		{
+		ETrafficPriorityUnspecified	= 0x01,		//< Unspecified Priority level
+		ETrafficPriority1			= 0x02,		//< Priority level 1
+		ETrafficPriority2			= 0x04,		//< Priority level 2
+		ETrafficPriority3			= 0x08		//< Priority level 3
+		};
+
+	struct TBitRate					// Bit rates for uplink and downlink
+		{
+		TInt iUplinkRate;			//< Uplink bitrate in kbps. Range 0 - 16000
+		TInt iDownlinkRate;			//< Downlink bitrate in kbps. Range 0 - 16000
+		};
+			
+	/**
+	Source statistics descriptor - as defined in 3GPP TS 23.107 and TS 24.008.
+	
+	@publishedPartner
+	@released
+	*/
+	enum TSourceStatisticsDescriptor	
+		{
+		/** Unknown source statistics descriptor. */
+		ESourceStatisticsDescriptorUnknown	= 0x0,		
+		/** Speech source statistics descriptor. */
+		ESourceStatisticsDescriptorSpeech	= 0x01,		 
+		};
+		
+	//
+	// QoS capabilities classes
+	//
+	class TQoSCapsGPRS : public TPacketDataConfigBase
+	/**
+	Supported GPRS QoS capabilities.
+	
+	@deprecated v9.3 Use TQoSCapsR99_R4 or TQoSCapsR5 instead. 
+	*/
+		{
+	public:
+		IMPORT_C TQoSCapsGPRS(); // iExtensionId = KConfigGPRS
+	public:
+		/** Bit-wise sum of the TQoSPrecedence attributes. 
+		
+		The default value is EUnspecifiedPrecedence. */
+		TUint iPrecedence;
+		/** Bit-wise sum of the TQoSDelay attributes. 
+		
+		The default value is EUnspecifiedDelay. */
+		TUint iDelay;
+		/** Bit-wise sum of the TQoSReliability attributes. 
+		
+		The default value is EUnspecifiedReliability. */
+		TUint iReliability;
+		/** Bit-wise sum of the TQoSPeakThroughput attributes. 
+		
+		The default value is EUnspecifiedPeakThroughput. */
+		TUint iPeak;
+		/** Bit-wise sum of the TQoSMeanThroughput attributes. 
+		
+		The default value is EUnspecifiedMeanThroughput. */
+		TUint iMean;
+		};
+
+	class TQoSCapsCDMA2000 : public TPacketDataConfigBase
+	/**
+	Supported CDMA2000 QoS capabilities.
+
+	@publishedPartner
+	@released	
+	@deprecated 9.5
+	*/
+		{
+	public:
+		IMPORT_C TQoSCapsCDMA2000(); // iExtensionId = KConfigCDMA
+	public:
+		/** Bit-wise sum of the TQoSLinkPriority attributes. */
+		TUint	iPriority;
+		/** Bit-wise sum of the TQoSDataRate attributes for the uplink. */
+		TUint	iUplinkRate;
+		/** Bit-wise sum of the TQoSDataRate attributes for the downlink. */
+		TUint	iDownlinkRate;
+		/** Bit-wise sum of the TQoSDataLoss attributes. */
+		TUint	iFwdLossRate;
+		/** Bit-wise sum of the TQoSDataLoss attributes. */
+		TUint	iRevLossRate;
+		/** Bit-wise sum of the TQoSDelay attributes. */
+		TUint	iFwdMaxDelay;
+		/** Bit-wise sum of the TQoSDelay attributes. */
+		TUint	iRevMaxDelay;
+		};
+
+	
+	class TQoSCapsR99_R4 : public TPacketDataConfigBase
+	/**
+	GPRS/UMTS Rel99 and UMTS Rel4 QoS capabilities class.
+	
+	@publishedPartner
+	@released
+	*/
+		{
+	public:
+		IMPORT_C TQoSCapsR99_R4(); 
+	public:
+		TUint iTrafficClass;			//< Supported traffic class of the MT
+		TUint iDeliveryOrderReqd;		//< SDU sequential delivery
+		TUint iDeliverErroneousSDU;		//< Delivery of erroneous SDUs
+		TUint iBER;						//< Target Bit Error Ratio (BER)
+		TUint iSDUErrorRatio;			//< Target SDU Error Ratio
+		TUint iTrafficHandlingPriority; //< Traffic handling priority
+		};
+		
+	class TQoSCapsR5 : public TQoSCapsR99_R4
+	/**
+	UMTS Rel5 QoS capabilities class.
+	
+	@publishedPartner
+	@released
+	*/
+		{
+	public:
+		IMPORT_C TQoSCapsR5(); 
+	public:
+		TUint iSignallingIndication;		//< Requested signalling indication 
+		TUint iSourceStatisticsDescriptor;	//< Requested source statistics descriptor
+		};
+
+	//
+	// QoS configuration classes
+	//
+	class TQoSGPRSRequested : public TPacketDataConfigBase	// GPRS Rel97/98
+	/**
+	The GPRS QoS that is requested.
+	
+	@deprecated v9.3 Use TQoSR99_R4Requested or TQoSR5Requested instead.
+	*/
+		{
+	public:
+		IMPORT_C TQoSGPRSRequested();
+	public:
+		/** Precedence requested. The default is EUnspecifiedPrecedence.
+	
+		@see TQoSPrecedence */
+		TQoSPrecedence		iReqPrecedence;
+		/** Minimum precedence. The default is EUnspecifiedPrecedence.
+	
+		@see TQoSPrecedence */
+		TQoSPrecedence		iMinPrecedence;
+		/** Requested QoS Delay. The default is EUnspecifiedDelayClass.
+	
+		@see TQoSDelay */
+		TQoSDelay			iReqDelay;
+		/** Minimum delay requested. The default is EUnspecifiedDelayClass.
+	
+		@see TQoSDelay */
+		TQoSDelay			iMinDelay;
+		/** Requested reliability. The default is EUnspecifiedReliabilityClass.
+	
+		@see TQoSReliability */
+		TQoSReliability		iReqReliability;
+		/** Requested minimum reliability . The default is EUnspecifiedReliabilityClass.
+	
+		@see TQoSReliability */
+		TQoSReliability		iMinReliability;
+		/** Requested peak throughput . The default is EUnspecifiedPeakThroughput.
+	
+		@see TQoSPeakThroughput */
+		TQoSPeakThroughput	iReqPeakThroughput;
+		/** Requested minimum peak throughput. The default is EUnspecifiedPeakThroughput.
+	
+		@see TQoSPeakThroughput */
+		TQoSPeakThroughput	iMinPeakThroughput;
+		/** Requested QoS mean throughput. The default is EUnspecifiedMeanThroughput.
+	
+		@see TQoSMeanThroughput */
+		TQoSMeanThroughput	iReqMeanThroughput;
+		/** Requested minimum QoS mean throughput. The default is EUnspecifiedMeanThroughput.
+	
+		@see TQoSMeanThroughput */
+		TQoSMeanThroughput	iMinMeanThroughput;
+		};
+		
+	class TQoSGPRSNegotiated : public TPacketDataConfigBase	// GPRS Rel97/98
+	/** Contains the negotiated QoS values - returned by the GPRS network 
+	after activating a connection and determining the QoS profile. 
+
+	@deprecated v9.3 Use TQoSR99_R4Negotiated or TQoSR5Negotiated instead.
+	*/
+		{
+	public:
+		IMPORT_C TQoSGPRSNegotiated();
+	public:
+		/** Negotiated QoS precedence. The default is EUnspecifiedPrecedence.
+	
+		@see TQoSPrecedence */
+		TQoSPrecedence		iPrecedence;
+		/** Negotiated QoS delay. The default is EUnspecifiedPeakThroughput.
+	
+		@see TQoSDelay */
+		TQoSDelay			iDelay;
+		/** Negotiated QoS reliability. The default is EUnspecifiedReliabilityClass.
+	
+		@see TQoSReliability */
+		TQoSReliability		iReliability;
+		/** Negotiated QoS peak throughput. The default is EUnspecifiedPeakThroughput.
+	
+		@see TQoSPeakThroughput */
+		TQoSPeakThroughput	iPeakThroughput;
+		/** Negotiated QoS mean throughput. The default is EUnspecifiedMeanThroughput.
+	
+		@see TQoSMeanThroughput */
+		TQoSMeanThroughput	iMeanThroughput;
+		};
+
+	class TQoSCDMA2000Requested : public TPacketDataConfigBase	// CDMA2000
+	/**
+	The CDMA2000 QoS requested from the network.
+
+	@publishedPartner
+	@released
+	@deprecated 9.5
+	*/
+		{
+	public:
+		IMPORT_C TQoSCDMA2000Requested();
+	public:
+		/** The request assured mode. */
+		TBool				iAssuredMode; // assured vs. non-assured mode
+		/** The RPL mode requested.
+	
+		@see TRLPMode */
+		TRLPMode			iRLPMode;
+		/** The link priority requested.
+	
+		@see TQoSLinkPriority */
+		TQoSLinkPriority	iPriority;
+		/** The uplink rate requested.
+	
+		@see TQoSDataRate */
+		TQoSDataRate		iReqUplinkRate;
+		/** The minimum uplink rate requested.
+	
+		@see TQoSDataRate */
+		TQoSDataRate		iMinUplinkRate;
+		/** The downlink rate requested
+	
+		@see TQoSDataRate */
+		TQoSDataRate		iReqDownlinkRate;
+		/** The minimum downlink rate requested.
+	
+		@see TQoSDataRate */
+		TQoSDataRate		iMinDownlinkRate;
+		/** The forward loss rate requested. */
+		TQoSDataLoss		iFwdRequestedLossRate;
+		TQoSDataLoss		iRevRequestedLossRate;
+		/** The forward accepted loss rate. */
+		TQoSDataLoss		iFwdAcceptedLossRate;
+		/** The reverse accepted loss rate. */
+		TQoSDataLoss		iRevAcceptedLossRate;
+		/** The forward maximum requested delay. */
+		TQoSDelay			iFwdMaxRequestedDelay;
+		/** The reverse maximum requested delay. */
+		TQoSDelay			iRevMaxRequestedDelay;
+		/** The forward maximum accepted delay. */
+		TQoSDelay			iFwdMaxAcceptedDelay;
+		/** The reverse maximum accepted delay. */
+		TQoSDelay			iRevMaxAcceptedDelay;
+		};
+
+	class TQoSCDMA2000Negotiated : public TPacketDataConfigBase	// CDMA2000
+	/**
+	The negotiated CDMA200 QoS parameters.
+
+	@publishedPartner
+	@released
+	@deprecated 9.5
+	*/
+		{
+	public:
+		IMPORT_C TQoSCDMA2000Negotiated();
+	public:
+		/** Negotiated assured mode. */
+		TBool				iAssuredMode; // assured vs. non-assured mode. 
+		/** Negotiated Radio Link Protocol mode.
+	
+		@see TRLPMode */
+		TRLPMode			iRLPMode;
+		/** Negotiated QoS link priority.
+	
+		@see TQoSLinkPriority */
+		TQoSLinkPriority	iPriority;
+		/** Negotiated uplink rate.
+	
+		@see TQoSDataRate */
+		TQoSDataRate		iUplinkRate;
+		/** Negotiated downlink rate.
+	
+		@see TQoSDataRate */
+		TQoSDataRate		iDownlinkRate;
+		/** Negotiated forward data loss rate.
+	
+		@see TQoSDataLoss */
+		TQoSDataLoss		iFwdDataLossRate;
+		/** Negotiated reverse data loss rate.
+	
+		@see TQoSDataLoss */
+		TQoSDataLoss		iRevDataLossRate;
+		/** Negotiated forward maximum delay.
+	
+		@see TQoSDelay */
+		TQoSDelay			iFwdMaxDelay;
+		/** Negotiated reverse maximum delay.
+	
+		@see TQoSDelay */
+		TQoSDelay			iRevMaxDelay;
+		};
+
+	
+	class TQoSR99_R4Requested : public TPacketDataConfigBase	
+	/**
+	Contains the requested and minimum values for the 
+	GPRS/UMTS Rel99 and UMTS Rel4 QoS profile attributes.
+	
+	@publishedPartner
+	@released
+	*/
+		{
+	public:
+		IMPORT_C TQoSR99_R4Requested();
+	public:
+		TTrafficClass				iReqTrafficClass;			//< Requested traffic class	
+		TTrafficClass				iMinTrafficClass;			//< Minimum acceptable traffic class
+		TDeliveryOrder				iReqDeliveryOrderReqd;		//< Requested value for sequential SDU delivery
+		TDeliveryOrder				iMinDeliveryOrderReqd;		//< Minimum acceptable value for sequential SDU delivery
+		TErroneousSDUDelivery		iReqDeliverErroneousSDU;	//< Requested value for erroneous SDU delivery
+		TErroneousSDUDelivery		iMinDeliverErroneousSDU;	//< Minimum acceptable value for erroneous SDU delivery
+		TInt						iReqMaxSDUSize;				//< Request maximum SDU size
+		TInt						iMinAcceptableMaxSDUSize;	//< Minimum acceptable SDU size
+		TBitRate					iReqMaxRate;				//< Requested maximum bit rates on uplink and downlink
+		TBitRate					iMinAcceptableMaxRate;		//< Minimum acceptable bit rates on uplink and downlink
+		TBitErrorRatio				iReqBER;					//< Requested target BER
+		TBitErrorRatio				iMaxBER;					//< Maximum acceptable target BER
+		TSDUErrorRatio				iReqSDUErrorRatio;			//< Requested target SDU error ratio
+		TSDUErrorRatio				iMaxSDUErrorRatio;			//< Maximum acceptable target SDU error ratio
+		TTrafficHandlingPriority	iReqTrafficHandlingPriority;//< Requested traffic handling priority
+		TTrafficHandlingPriority	iMinTrafficHandlingPriority;//< Minimum acceptable traffic handling priority
+		TInt						iReqTransferDelay;			//< Requested transfer delay (in milliseconds)
+		TInt						iMaxTransferDelay;			//< Maximum acceptable  transfer delay (in milliseconds)
+		TBitRate					iReqGuaranteedRate;			//< Requested guaranteed bit rates on uplink and downlink
+		TBitRate					iMinGuaranteedRate;			//< Minimum acceptable guaranteed bit rates on uplink and downlink
+		};
+
+	class TQoSR99_R4Negotiated : public TPacketDataConfigBase		
+	/**
+	Contains the negotiated values for the GPRS/UMTS Rel99
+	and UMTS Rel4 QoS profile.
+
+	@publishedPartner
+	@released
+	*/
+		{
+	public:
+		IMPORT_C TQoSR99_R4Negotiated();
+	public:
+		TTrafficClass				iTrafficClass;				//< Negotiated traffic class
+		TDeliveryOrder				iDeliveryOrderReqd;			//< Negotiated value for sequential SDU delivery
+		TErroneousSDUDelivery		iDeliverErroneousSDU;		//< Negotiated value for erroneous SDU delivery
+		TInt						iMaxSDUSize;				//< Negotiated maximum SDU size (in octets)
+		TBitRate					iMaxRate;					//< Negotiated maximum bit rates on the uplink and downlink
+		TBitErrorRatio				iBER;						//< Negotiated target BER
+		TSDUErrorRatio				iSDUErrorRatio;				//< Negotiated target SDU error ratio
+		TTrafficHandlingPriority	iTrafficHandlingPriority;	//< Negotiated traffic handling priority
+		TInt						iTransferDelay;				//< Negotiated transfer delay (in milliseconds)
+		TBitRate					iGuaranteedRate;			//< Negotiated guaranteed bit rates on the uplink and downlink
+		};
+
+
+	class TQoSR5Requested : public TQoSR99_R4Requested	
+	/**
+	Contains the requested and minimum values for the 
+	UMTS/IMS 3GPP Rel5 QoS profile attributes.
+	
+	@publishedPartner
+	@released
+	*/
+		{
+	public:
+		IMPORT_C TQoSR5Requested();
+	public:	
+		/** Requested signalling indication. */
+		TBool						iSignallingIndication;			 
+		/** Requested source statistics descriptor. */
+		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;			
+		};
+
+
+	
+	class TQoSR5Negotiated : public TQoSR99_R4Negotiated	
+	/**
+	Contains the negotiated values for the UMTS/IMS 3GPP Rel5 QoS profile.
+
+	@publishedPartner
+	@released
+	*/
+		{
+	public:
+		IMPORT_C TQoSR5Negotiated();
+	public:	
+		/** Negotiated signalling indication. */	
+		TBool						iSignallingIndication;			
+		/** Negotiated source statistics descriptor. */
+		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;	 		
+		};
+		
+	IMPORT_C		RPacketQoS();
+	IMPORT_C TInt	OpenNewQoS(RPacketContext& aPacketContext, TDes& aProfileName);
+	IMPORT_C TInt	OpenExistingQoS(RPacketContext& aPacketContext, const TDesC& aProfileName); 
+	IMPORT_C void	Close();
+
+	IMPORT_C void	SetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
+	IMPORT_C void	GetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
+	IMPORT_C void	GetProfileCapabilities(TRequestStatus& aStatus, TDes8& aProfileCaps) const;
+	IMPORT_C void	NotifyProfileChanged(TRequestStatus& aStatus, TDes8& aProfile) const;
+protected:
+	IMPORT_C virtual void ConstructL();
+	IMPORT_C virtual void Destruct();
+private:
+	CPacketQoSPtrHolder* iEtelPacketQoSPtrHolder;
+	};
+
+#endif
+	
 #endif
\ No newline at end of file