epoc32/include/etelqos.h
branchSymbian2
changeset 2 2fe1408b6811
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/epoc32/include/etelqos.h	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -0,0 +1,744 @@
     1.4 +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 +// All rights reserved.
     1.6 +// This component and the accompanying materials are made available
     1.7 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +// ETel Multimode Packet Data API - Quality of Service (QoS) support
    1.18 +// GPRS Rel97/98, CDMAOne, CDMA2000, Release 99 and Release 4.
    1.19 +// 
    1.20 +//
    1.21 +
    1.22 +
    1.23 +#if!defined(__ETELQOS_H__)
    1.24 +#define __ETELQOS_H__
    1.25 +
    1.26 +#include "etelpckt.h"
    1.27 +
    1.28 +class RPacketContext;
    1.29 +class CPacketQoSPtrHolder;
    1.30 +
    1.31 +
    1.32 +class RPacketQoS : public RTelSubSessionBase
    1.33 +/**
    1.34 +Encapsulates functionality to set the Requested and Minimum Quality of Service 
    1.35 +options for a particular context (or "service configuration" in CDMA parlance), 
    1.36 +as represented by the RPacketContext class.
    1.37 + 
    1.38 +Methods are available to set and get the QoS options, query the QoS capabilities 
    1.39 +of the network service and notify the client if a change in the negotiated QoS 
    1.40 +options occurs.
    1.41 +
    1.42 +A client must first create an instance of RPacketContext before opening a new 
    1.43 +RPacketQoS, since when creating a new RPacketQoS, the client must call the 
    1.44 +RPacketQoS::OpenNewQoS() function and pass in a reference to an RPacketContext 
    1.45 +instance. 
    1.46 +
    1.47 +@publishedPartner
    1.48 +@released
    1.49 +*/
    1.50 +	{
    1.51 +public:
    1.52 +	//
    1.53 +	// Nested enums and classes
    1.54 +	//
    1.55 +	/** Defines the QoS reliability settings for GRPS networks. */
    1.56 +	enum TQoSReliability	// GPRS Release 97/98
    1.57 +		{
    1.58 +		/** Best effort or subscribed value. */
    1.59 +		EUnspecifiedReliabilityClass = 0x01,
    1.60 +		/** Reliability Class 1. */
    1.61 +		EReliabilityClass1			 = 0x02,
    1.62 +		/** Reliability Class 2. */
    1.63 +		EReliabilityClass2			 = 0x04,
    1.64 +		/** Reliability Class 3. */
    1.65 +		EReliabilityClass3			 = 0x08,
    1.66 +		/** Reliability Class 4. */
    1.67 +		EReliabilityClass4			 = 0x10,
    1.68 +		/** Reliability Class 5. */
    1.69 +		EReliabilityClass5			 = 0x20
    1.70 +		};
    1.71 +
    1.72 +	/** Defines the QoS precedence for GRPS networks. */
    1.73 +	enum TQoSPrecedence		// GPRS Release 97/98
    1.74 +		{
    1.75 +		/** Best effort or subscribed value */
    1.76 +		EUnspecifiedPrecedence		= 0x01, 
    1.77 +		/** High priority precedence. */
    1.78 +		EPriorityHighPrecedence     = 0x02,
    1.79 +		/** Medium priority precedence. */
    1.80 +		EPriorityMediumPrecedence  = 0x04,
    1.81 +		/** Low priority precedence. */
    1.82 +		EPriorityLowPrecedence		= 0x08
    1.83 +		};
    1.84 +
    1.85 +	/** Defines the QoS delay for GPRS and CDMA200 networks.
    1.86 +	 */
    1.87 +	enum TQoSDelay			// GPRS Release 97/98, CDMA2000
    1.88 +		{
    1.89 +		/** Best effort or subscribed value. */
    1.90 +		EUnspecifiedDelayClass	= 0x01, 
    1.91 +		/** Delay class 1. */
    1.92 +		EDelayClass1			= 0x02,
    1.93 +		/** Delay class 2. */
    1.94 +		EDelayClass2			= 0x04,
    1.95 +		/** Delay class 3. */
    1.96 +		EDelayClass3			= 0x08,
    1.97 +		/** Delay class 4. */
    1.98 +		EDelayClass4			= 0x10,
    1.99 +		/** Delay 40 milli seconds.
   1.100 +	
   1.101 +		CDMA2000 specific */
   1.102 +		EDelay40ms				= 0x20,	
   1.103 +		/** Delay 120 milli seconds.
   1.104 +	
   1.105 +		CDMA2000 specific */
   1.106 +		EDelay120ms				= 0x40,	
   1.107 +		/** Delay 360 milli seconds.
   1.108 +	
   1.109 +		CDMA2000 specific */
   1.110 +		EDelay360ms				= 0x80	
   1.111 +		};
   1.112 +
   1.113 +	/** Defines the QoS peak throughput rates for GRPS networks. */
   1.114 +	enum TQoSPeakThroughput // GPRS Release 97/98
   1.115 +		{
   1.116 +		/** Best effort or subscribed value. */
   1.117 +		EUnspecifiedPeakThroughput  = 0x001, 
   1.118 +		/** Peak throughput of 1,000. */
   1.119 +		EPeakThroughput1000			= 0x002,
   1.120 +		/** Peak throughput of 2,000. */
   1.121 +		EPeakThroughput2000			= 0x004,
   1.122 +		/** Peak throughput of 4,000. */
   1.123 +		EPeakThroughput4000			= 0x008,
   1.124 +		/** Peak throughput of 8,000. */
   1.125 +		EPeakThroughput8000			= 0x010,
   1.126 +		/** Peak throughput of 16,000. */
   1.127 +		EPeakThroughput16000		= 0x020,
   1.128 +		/** Peak throughput of 32,000. */
   1.129 +		EPeakThroughput32000		= 0x040,
   1.130 +		/** Peak throughput of 64,000. */
   1.131 +		EPeakThroughput64000		= 0x080,
   1.132 +		/** Peak throughput of 128,000. */
   1.133 +		EPeakThroughput128000		= 0x100,
   1.134 +		/** Peak throughput of 256,000. */
   1.135 +		EPeakThroughput256000		= 0x200
   1.136 +		};
   1.137 +
   1.138 +	/** Defines the mean throughput for GRPS networks. */
   1.139 +	enum TQoSMeanThroughput	// GPRS Release 97/98 
   1.140 +		{
   1.141 +		/** Unsubscribed value. */
   1.142 +		EUnspecifiedMeanThroughput	= 0x00001,
   1.143 +		/** Mean throughput of 100. */
   1.144 +		EMeanThroughput100			= 0x00002,
   1.145 +		/** Mean throughput of 200. */
   1.146 +		EMeanThroughput200			= 0x00004,
   1.147 +		/** Mean throughput of 500. */
   1.148 +		EMeanThroughput500			= 0x00008,
   1.149 +		/** Mean throughput of 1,000. */
   1.150 +		EMeanThroughput1000			= 0x00010,
   1.151 +		/** Mean throughput of 2,000. */
   1.152 +		EMeanThroughput2000			= 0x00020,
   1.153 +		/** Mean throughput of 5,000. */
   1.154 +		EMeanThroughput5000			= 0x00040,
   1.155 +		/** Mean throughput of 10,000. */
   1.156 +		EMeanThroughput10000		= 0x00080,
   1.157 +		/** Mean throughput of 20,000. */
   1.158 +		EMeanThroughput20000		= 0x00100,
   1.159 +		/** Mean throughput of 50,000. */
   1.160 +		EMeanThroughput50000		= 0x00200,
   1.161 +		/** Mean throughput of 100,000. */
   1.162 +		EMeanThroughput100000		= 0x00400,
   1.163 +		/** Mean throughput of 200,000. */
   1.164 +		EMeanThroughput200000		= 0x00800,
   1.165 +		/** Mean throughput of 500,000. */
   1.166 +		EMeanThroughput500000		= 0x01000,
   1.167 +		/** Mean throughput of 1,000,000. */
   1.168 +		EMeanThroughput1000000		= 0x02000,
   1.169 +		/** Mean throughput of 2,000,000. */
   1.170 +		EMeanThroughput2000000		= 0x04000,
   1.171 +		/** Mean throughput of 5,000,000. */
   1.172 +		EMeanThroughput5000000		= 0x08000,
   1.173 +		/** Mean throughput of 10,000,000. */
   1.174 +		EMeanThroughput10000000		= 0x10000,
   1.175 +		/** Mean throughput of 20,000,000. */
   1.176 +		EMeanThroughput20000000		= 0x20000,
   1.177 +		/** Mean throughput of 50,000,000. */
   1.178 +		EMeanThroughput50000000		= 0x40000,
   1.179 +		/** Best effort. */
   1.180 +		EMeanThroughputBestEffort	= 0x80000
   1.181 +		};
   1.182 +
   1.183 +	/** Defines the QoS link priority for CMDA2000 networks. */
   1.184 +	enum TQoSLinkPriority	
   1.185 +		{
   1.186 +		/** No link priority. */
   1.187 +		ELinkPriority00 = 0x0001, 
   1.188 +		/** 1/13th's of user's subscription priority. */
   1.189 +		ELinkPriority01 = 0x0002,
   1.190 +		/** 2/13th's of user's subscription priority. */
   1.191 +		ELinkPriority02 = 0x0004,
   1.192 +		/** 3/13th's of user's subscription priority. */
   1.193 +		ELinkPriority03	= 0x0008,
   1.194 +		/** 4/13th's of user's subscription priority. */
   1.195 +		ELinkPriority04	= 0x0010,
   1.196 +		/** 5/13th's of user's subscription priority. */
   1.197 +		ELinkPriority05	= 0x0020,
   1.198 +		/** 6/13th's of user's subscription priority. */
   1.199 +		ELinkPriority06	= 0x0040,	
   1.200 +		/** 7/13th's of user's subscription priority. */
   1.201 +		ELinkPriority07	= 0x0080,
   1.202 +		/** 8/13th's of user's subscription priority. */
   1.203 +		ELinkPriority08	= 0x0100,
   1.204 +		/** 9/13th's of user's subscription priority. */
   1.205 +		ELinkPriority09	= 0x0200,
   1.206 +		/** 10/13th's of user's subscription priority. */
   1.207 +		ELinkPriority10	= 0x0400,
   1.208 +		/** 11/13th's of user's subscription priority. */
   1.209 +		ELinkPriority11	= 0x0800,
   1.210 +		/** 12/13th's of user's subscription priority. */
   1.211 +		ELinkPriority12	= 0x1000,
   1.212 +		/** Subscription priority (13/13th's). */
   1.213 +		ELinkPriority13	= 0x2000	
   1.214 +		};
   1.215 +
   1.216 +	/** Defines the QoS data loss rate. */
   1.217 +	enum TQoSDataLoss
   1.218 +		{
   1.219 +		/** 1% data loss rate. */
   1.220 +		EDataLoss1	 =	0x01,	
   1.221 +		/** 2% data loss rate. */
   1.222 +		EDataLoss2	 =	0x02,	
   1.223 +		/** 5% data loss rate. */
   1.224 +		EDataLoss5	 =	0x04,	
   1.225 +		/** 10% data loss rate. */
   1.226 +		EDataLoss10	 =	0x08	
   1.227 +		};
   1.228 +
   1.229 +	/** Defines the QoS data rate. */
   1.230 +	enum TQoSDataRate
   1.231 +		{
   1.232 +		/** A data rate of 8 kb/s. */
   1.233 +		EDataRate8kbps	  =	0x01,
   1.234 +		/** A data rate of 32 kb/s. */
   1.235 +		EDataRate32kbps	  =	0x02,
   1.236 +		/** A data rate of 64 kb/s. */
   1.237 +		EDataRate64kbps	  =	0x04,
   1.238 +		/** A data rate of 144 kb/s. */
   1.239 +		EDataRate144kbps  =	0x08,
   1.240 +		/** A data rate of 384 kb/s */
   1.241 +		EDataRate384kbps  =	0x10
   1.242 +		};
   1.243 +
   1.244 +	//
   1.245 +	// TRLPMode - allows the client to specify (if desired) one of the following:
   1.246 +	// transparent only, tranparent preferred, non-transparent only or non-transparent 
   1.247 +	// preferred Radio Link Protocol Mode
   1.248 +	//
   1.249 +	/** Defines the Radio Link Protocol (RPL) mode. */
   1.250 +	enum TRLPMode
   1.251 +		{
   1.252 +		/** RPL mode unknown. */
   1.253 +		KRLPUnknown				= 0x01,		
   1.254 +		/** Transparent mode only. */
   1.255 +		KRLPTransparent			= 0x02,
   1.256 +		/** Non-transparent mode only. */
   1.257 +		KRLPNonTransparent		= 0x04,
   1.258 +		/** Transparent mode preferred. */
   1.259 +		KRLPTransparentPref		= 0x08,
   1.260 +		/** Non-transparent mode preferred. */
   1.261 +		KRLPNonTransparentPref	= 0x10
   1.262 +		};
   1.263 +
   1.264 +	// The enums TTrafficClass, TDeliveryOrder,TErroneousSDUDelivery, TBitErrorRatio,
   1.265 +	// TSDUErrorRatio, TTrafficHandlingPriority have been assigned values because
   1.266 +	// the same enums are used both in the TQoSR99_R4Requested / Negotiated classes and 
   1.267 +	// in the TQoSCapsR99_R4 class. The Caps class has to indicate which, for instance, 
   1.268 +	// traffic classes are supported in a bitfield, so the enums have been defined as 
   1.269 +	// different bits in a bit field.
   1.270 +	enum TTrafficClass			
   1.271 +		{
   1.272 +		ETrafficClassUnspecified	= 0x01,		///< Traffic class - Unspecified
   1.273 +		ETrafficClassConversational	= 0x02,		///< Traffic class - Conversational
   1.274 +		ETrafficClassStreaming		= 0x04,		///< Traffic class - Streaming
   1.275 +		ETrafficClassInteractive	= 0x08,		///< Traffic class - Interactive
   1.276 +		ETrafficClassBackground		= 0x10		///< Traffic class - Background
   1.277 +		};
   1.278 +
   1.279 +	enum TDeliveryOrder		
   1.280 +		{
   1.281 +		EDeliveryOrderUnspecified	= 0x01,		///< SDU Delivery order - Unspecified
   1.282 +		EDeliveryOrderRequired		= 0x02,		///< SDU Delivery order - Required to be in sequence
   1.283 +		EDeliveryOrderNotRequired	= 0x04		///< SDU Delivery order - Not Required to be in sequence
   1.284 +		};
   1.285 +
   1.286 +	enum TErroneousSDUDelivery		// Erroneous SDU Delivery
   1.287 +		{
   1.288 +		EErroneousSDUDeliveryUnspecified	= 0x01,	///< Unspecified
   1.289 +		EErroneousSDUNoDetection			= 0x02,	///< Erroneous SDUs delivered - Error detection not considered.
   1.290 +		EErroneousSDUDeliveryRequired		= 0x04,	///< Erroneous SDUs delivered + error indication - Error detection employed.
   1.291 +		EErroneousSDUDeliveryNotRequired	= 0x08	///< Erroneous SDUs discarded - Error detection is employed.
   1.292 +		};
   1.293 +
   1.294 +	enum TBitErrorRatio				// Residual Bit Error Rate
   1.295 +		{
   1.296 +		EBERUnspecified				= 0x01,		///< Target residual undetected BER - Unspecified
   1.297 +		EBERFivePerHundred			= 0x02,		///< Target residual BER - 0.05
   1.298 +		EBEROnePerHundred			= 0x04,		///< Target residual BER - 0.01
   1.299 +		EBERFivePerThousand			= 0x08,		///< Target residual BER - 0.005
   1.300 +		EBERFourPerThousand			= 0x10,		///< Target residual BER - 0.004
   1.301 +		EBEROnePerThousand			= 0x20,		///< Target residual BER - 0.001
   1.302 +		EBEROnePerTenThousand		= 0x40,		///< Target residual BER - 0.0001
   1.303 +		EBEROnePerHundredThousand	= 0x80,		///< Target residual BER - 0.00001
   1.304 +		EBEROnePerMillion			= 0x100,	///< Target residual BER - 0.000001
   1.305 +		EBERSixPerHundredMillion	= 0x200		///< Target residual BER - 0.00000006
   1.306 +		};
   1.307 +
   1.308 +	enum TSDUErrorRatio				// SDU Error Ratio
   1.309 +		{
   1.310 +		ESDUErrorRatioUnspecified			= 0x01,	///< Target value of Erroneous SDUs - Unspecified
   1.311 +		ESDUErrorRatioOnePerTen				= 0x02,	///< Target SDU error ratio - 0.1
   1.312 +		ESDUErrorRatioOnePerHundred			= 0x04,	///< Target SDU error ratio - 0.01
   1.313 +		ESDUErrorRatioSevenPerThousand		= 0x08,	///< Target SDU error ratio - 0.007
   1.314 +		ESDUErrorRatioOnePerThousand		= 0x10,	///< Target SDU error ratio - 0.001
   1.315 +		ESDUErrorRatioOnePerTenThousand		= 0x20,	///< Target SDU error ratio - 0.0001
   1.316 +		ESDUErrorRatioOnePerHundredThousand	= 0x40,	///< Target SDU error ratio - 0.00001
   1.317 +		ESDUErrorRatioOnePerMillion			= 0x80	///< Target SDU error ratio - 0.000001
   1.318 +		};
   1.319 +
   1.320 +	enum TTrafficHandlingPriority	// Traffic handling priority
   1.321 +		{
   1.322 +		ETrafficPriorityUnspecified	= 0x01,		///< Unspecified Priority level
   1.323 +		ETrafficPriority1			= 0x02,		///< Priority level 1
   1.324 +		ETrafficPriority2			= 0x04,		///< Priority level 2
   1.325 +		ETrafficPriority3			= 0x08		///< Priority level 3
   1.326 +		};
   1.327 +
   1.328 +	struct TBitRate					// Bit rates for uplink and downlink
   1.329 +		{
   1.330 +		TInt iUplinkRate;			///< Uplink bitrate in kbps. Range 0 - 16000
   1.331 +		TInt iDownlinkRate;			///< Downlink bitrate in kbps. Range 0 - 16000
   1.332 +		};
   1.333 +			
   1.334 +	/**
   1.335 +	Source statistics descriptor - as defined in 3GPP TS 23.107 and TS 24.008.
   1.336 +	
   1.337 +	@publishedPartner
   1.338 +	@released
   1.339 +	*/
   1.340 +	enum TSourceStatisticsDescriptor	
   1.341 +		{
   1.342 +		/** Unknown source statistics descriptor. */
   1.343 +		ESourceStatisticsDescriptorUnknown	= 0x0,		
   1.344 +		/** Speech source statistics descriptor. */
   1.345 +		ESourceStatisticsDescriptorSpeech	= 0x01,		 
   1.346 +		};
   1.347 +		
   1.348 +	//
   1.349 +	// QoS capabilities classes
   1.350 +	//
   1.351 +	class TQoSCapsGPRS : public TPacketDataConfigBase
   1.352 +	/**
   1.353 +	Supported GPRS QoS capabilities.
   1.354 +	
   1.355 +	@deprecated v9.3 Use TQoSCapsR99_R4 or TQoSCapsR5 instead. 
   1.356 +	*/
   1.357 +		{
   1.358 +	public:
   1.359 +		IMPORT_C TQoSCapsGPRS(); // iExtensionId = KConfigGPRS
   1.360 +	public:
   1.361 +		/** Bit-wise sum of the TQoSPrecedence attributes. 
   1.362 +		
   1.363 +		The default value is EUnspecifiedPrecedence. */
   1.364 +		TUint iPrecedence;
   1.365 +		/** Bit-wise sum of the TQoSDelay attributes. 
   1.366 +		
   1.367 +		The default value is EUnspecifiedDelay. */
   1.368 +		TUint iDelay;
   1.369 +		/** Bit-wise sum of the TQoSReliability attributes. 
   1.370 +		
   1.371 +		The default value is EUnspecifiedReliability. */
   1.372 +		TUint iReliability;
   1.373 +		/** Bit-wise sum of the TQoSPeakThroughput attributes. 
   1.374 +		
   1.375 +		The default value is EUnspecifiedPeakThroughput. */
   1.376 +		TUint iPeak;
   1.377 +		/** Bit-wise sum of the TQoSMeanThroughput attributes. 
   1.378 +		
   1.379 +		The default value is EUnspecifiedMeanThroughput. */
   1.380 +		TUint iMean;
   1.381 +		};
   1.382 +
   1.383 +	class TQoSCapsCDMA2000 : public TPacketDataConfigBase
   1.384 +	/**
   1.385 +	Supported CDMA2000 QoS capabilities.
   1.386 +
   1.387 +	@publishedPartner
   1.388 +	@released
   1.389 +	*/
   1.390 +		{
   1.391 +	public:
   1.392 +		IMPORT_C TQoSCapsCDMA2000(); // iExtensionId = KConfigCDMA
   1.393 +	public:
   1.394 +		/** Bit-wise sum of the TQoSLinkPriority attributes. */
   1.395 +		TUint	iPriority;
   1.396 +		/** Bit-wise sum of the TQoSDataRate attributes for the uplink. */
   1.397 +		TUint	iUplinkRate;
   1.398 +		/** Bit-wise sum of the TQoSDataRate attributes for the downlink. */
   1.399 +		TUint	iDownlinkRate;
   1.400 +		/** Bit-wise sum of the TQoSDataLoss attributes. */
   1.401 +		TUint	iFwdLossRate;
   1.402 +		/** Bit-wise sum of the TQoSDataLoss attributes. */
   1.403 +		TUint	iRevLossRate;
   1.404 +		/** Bit-wise sum of the TQoSDelay attributes. */
   1.405 +		TUint	iFwdMaxDelay;
   1.406 +		/** Bit-wise sum of the TQoSDelay attributes. */
   1.407 +		TUint	iRevMaxDelay;
   1.408 +		};
   1.409 +
   1.410 +	
   1.411 +	class TQoSCapsR99_R4 : public TPacketDataConfigBase
   1.412 +	/**
   1.413 +	GPRS/UMTS Rel99 and UMTS Rel4 QoS capabilities class.
   1.414 +	
   1.415 +	@publishedPartner
   1.416 +	@released
   1.417 +	*/
   1.418 +		{
   1.419 +	public:
   1.420 +		IMPORT_C TQoSCapsR99_R4(); 
   1.421 +	public:
   1.422 +		TUint iTrafficClass;			///< Supported traffic class of the MT
   1.423 +		TUint iDeliveryOrderReqd;		///< SDU sequential delivery
   1.424 +		TUint iDeliverErroneousSDU;		///< Delivery of erroneous SDUs
   1.425 +		TUint iBER;						///< Target Bit Error Ratio (BER)
   1.426 +		TUint iSDUErrorRatio;			///< Target SDU Error Ratio
   1.427 +		TUint iTrafficHandlingPriority; ///< Traffic handling priority
   1.428 +		};
   1.429 +		
   1.430 +	class TQoSCapsR5 : public TQoSCapsR99_R4
   1.431 +	/**
   1.432 +	UMTS Rel5 QoS capabilities class.
   1.433 +	
   1.434 +	@publishedPartner
   1.435 +	@released
   1.436 +	*/
   1.437 +		{
   1.438 +	public:
   1.439 +		IMPORT_C TQoSCapsR5(); 
   1.440 +	public:
   1.441 +		TUint iSignallingIndication;		///< Requested signalling indication 
   1.442 +		TUint iSourceStatisticsDescriptor;	///< Requested source statistics descriptor
   1.443 +		};
   1.444 +
   1.445 +	//
   1.446 +	// QoS configuration classes
   1.447 +	//
   1.448 +	class TQoSGPRSRequested : public TPacketDataConfigBase	// GPRS Rel97/98
   1.449 +	/**
   1.450 +	The GPRS QoS that is requested.
   1.451 +	
   1.452 +	@deprecated v9.3 Use TQoSR99_R4Requested or TQoSR5Requested instead.
   1.453 +	*/
   1.454 +		{
   1.455 +	public:
   1.456 +		IMPORT_C TQoSGPRSRequested();
   1.457 +	public:
   1.458 +		/** Precedence requested. The default is EUnspecifiedPrecedence.
   1.459 +	
   1.460 +		@see TQoSPrecedence */
   1.461 +		TQoSPrecedence		iReqPrecedence;
   1.462 +		/** Minimum precedence. The default is EUnspecifiedPrecedence.
   1.463 +	
   1.464 +		@see TQoSPrecedence */
   1.465 +		TQoSPrecedence		iMinPrecedence;
   1.466 +		/** Requested QoS Delay. The default is EUnspecifiedDelayClass.
   1.467 +	
   1.468 +		@see TQoSDelay */
   1.469 +		TQoSDelay			iReqDelay;
   1.470 +		/** Minimum delay requested. The default is EUnspecifiedDelayClass.
   1.471 +	
   1.472 +		@see TQoSDelay */
   1.473 +		TQoSDelay			iMinDelay;
   1.474 +		/** Requested reliability. The default is EUnspecifiedReliabilityClass.
   1.475 +	
   1.476 +		@see TQoSReliability */
   1.477 +		TQoSReliability		iReqReliability;
   1.478 +		/** Requested minimum reliability . The default is EUnspecifiedReliabilityClass.
   1.479 +	
   1.480 +		@see TQoSReliability */
   1.481 +		TQoSReliability		iMinReliability;
   1.482 +		/** Requested peak throughput . The default is EUnspecifiedPeakThroughput.
   1.483 +	
   1.484 +		@see TQoSPeakThroughput */
   1.485 +		TQoSPeakThroughput	iReqPeakThroughput;
   1.486 +		/** Requested minimum peak throughput. The default is EUnspecifiedPeakThroughput.
   1.487 +	
   1.488 +		@see TQoSPeakThroughput */
   1.489 +		TQoSPeakThroughput	iMinPeakThroughput;
   1.490 +		/** Requested QoS mean throughput. The default is EUnspecifiedMeanThroughput.
   1.491 +	
   1.492 +		@see TQoSMeanThroughput */
   1.493 +		TQoSMeanThroughput	iReqMeanThroughput;
   1.494 +		/** Requested minimum QoS mean throughput. The default is EUnspecifiedMeanThroughput.
   1.495 +	
   1.496 +		@see TQoSMeanThroughput */
   1.497 +		TQoSMeanThroughput	iMinMeanThroughput;
   1.498 +		};
   1.499 +		
   1.500 +	class TQoSGPRSNegotiated : public TPacketDataConfigBase	// GPRS Rel97/98
   1.501 +	/** Contains the negotiated QoS values - returned by the GPRS network 
   1.502 +	after activating a connection and determining the QoS profile. 
   1.503 +
   1.504 +	@deprecated v9.3 Use TQoSR99_R4Negotiated or TQoSR5Negotiated instead.
   1.505 +	*/
   1.506 +		{
   1.507 +	public:
   1.508 +		IMPORT_C TQoSGPRSNegotiated();
   1.509 +	public:
   1.510 +		/** Negotiated QoS precedence. The default is EUnspecifiedPrecedence.
   1.511 +	
   1.512 +		@see TQoSPrecedence */
   1.513 +		TQoSPrecedence		iPrecedence;
   1.514 +		/** Negotiated QoS delay. The default is EUnspecifiedPeakThroughput.
   1.515 +	
   1.516 +		@see TQoSDelay */
   1.517 +		TQoSDelay			iDelay;
   1.518 +		/** Negotiated QoS reliability. The default is EUnspecifiedReliabilityClass.
   1.519 +	
   1.520 +		@see TQoSReliability */
   1.521 +		TQoSReliability		iReliability;
   1.522 +		/** Negotiated QoS peak throughput. The default is EUnspecifiedPeakThroughput.
   1.523 +	
   1.524 +		@see TQoSPeakThroughput */
   1.525 +		TQoSPeakThroughput	iPeakThroughput;
   1.526 +		/** Negotiated QoS mean throughput. The default is EUnspecifiedMeanThroughput.
   1.527 +	
   1.528 +		@see TQoSMeanThroughput */
   1.529 +		TQoSMeanThroughput	iMeanThroughput;
   1.530 +		};
   1.531 +
   1.532 +	class TQoSCDMA2000Requested : public TPacketDataConfigBase	// CDMA2000
   1.533 +	/**
   1.534 +	The CDMA2000 QoS requested from the network.
   1.535 +
   1.536 +	@publishedPartner
   1.537 +	@released
   1.538 +	*/
   1.539 +		{
   1.540 +	public:
   1.541 +		IMPORT_C TQoSCDMA2000Requested();
   1.542 +	public:
   1.543 +		/** The request assured mode. */
   1.544 +		TBool				iAssuredMode; // assured vs. non-assured mode
   1.545 +		/** The RPL mode requested.
   1.546 +	
   1.547 +		@see TRLPMode */
   1.548 +		TRLPMode			iRLPMode;
   1.549 +		/** The link priority requested.
   1.550 +	
   1.551 +		@see TQoSLinkPriority */
   1.552 +		TQoSLinkPriority	iPriority;
   1.553 +		/** The uplink rate requested.
   1.554 +	
   1.555 +		@see TQoSDataRate */
   1.556 +		TQoSDataRate		iReqUplinkRate;
   1.557 +		/** The minimum uplink rate requested.
   1.558 +	
   1.559 +		@see TQoSDataRate */
   1.560 +		TQoSDataRate		iMinUplinkRate;
   1.561 +		/** The downlink rate requested
   1.562 +	
   1.563 +		@see TQoSDataRate */
   1.564 +		TQoSDataRate		iReqDownlinkRate;
   1.565 +		/** The minimum downlink rate requested.
   1.566 +	
   1.567 +		@see TQoSDataRate */
   1.568 +		TQoSDataRate		iMinDownlinkRate;
   1.569 +		/** The forward loss rate requested. */
   1.570 +		TQoSDataLoss		iFwdRequestedLossRate;
   1.571 +		TQoSDataLoss		iRevRequestedLossRate;
   1.572 +		/** The forward accepted loss rate. */
   1.573 +		TQoSDataLoss		iFwdAcceptedLossRate;
   1.574 +		/** The reverse accepted loss rate. */
   1.575 +		TQoSDataLoss		iRevAcceptedLossRate;
   1.576 +		/** The forward maximum requested delay. */
   1.577 +		TQoSDelay			iFwdMaxRequestedDelay;
   1.578 +		/** The reverse maximum requested delay. */
   1.579 +		TQoSDelay			iRevMaxRequestedDelay;
   1.580 +		/** The forward maximum accepted delay. */
   1.581 +		TQoSDelay			iFwdMaxAcceptedDelay;
   1.582 +		/** The reverse maximum accepted delay. */
   1.583 +		TQoSDelay			iRevMaxAcceptedDelay;
   1.584 +		};
   1.585 +
   1.586 +	class TQoSCDMA2000Negotiated : public TPacketDataConfigBase	// CDMA2000
   1.587 +	/**
   1.588 +	The negotiated CDMA200 QoS parameters.
   1.589 +
   1.590 +	@publishedPartner
   1.591 +	@released
   1.592 +	*/
   1.593 +		{
   1.594 +	public:
   1.595 +		IMPORT_C TQoSCDMA2000Negotiated();
   1.596 +	public:
   1.597 +		/** Negotiated assured mode. */
   1.598 +		TBool				iAssuredMode; // assured vs. non-assured mode. 
   1.599 +		/** Negotiated Radio Link Protocol mode.
   1.600 +	
   1.601 +		@see TRLPMode */
   1.602 +		TRLPMode			iRLPMode;
   1.603 +		/** Negotiated QoS link priority.
   1.604 +	
   1.605 +		@see TQoSLinkPriority */
   1.606 +		TQoSLinkPriority	iPriority;
   1.607 +		/** Negotiated uplink rate.
   1.608 +	
   1.609 +		@see TQoSDataRate */
   1.610 +		TQoSDataRate		iUplinkRate;
   1.611 +		/** Negotiated downlink rate.
   1.612 +	
   1.613 +		@see TQoSDataRate */
   1.614 +		TQoSDataRate		iDownlinkRate;
   1.615 +		/** Negotiated forward data loss rate.
   1.616 +	
   1.617 +		@see TQoSDataLoss */
   1.618 +		TQoSDataLoss		iFwdDataLossRate;
   1.619 +		/** Negotiated reverse data loss rate.
   1.620 +	
   1.621 +		@see TQoSDataLoss */
   1.622 +		TQoSDataLoss		iRevDataLossRate;
   1.623 +		/** Negotiated forward maximum delay.
   1.624 +	
   1.625 +		@see TQoSDelay */
   1.626 +		TQoSDelay			iFwdMaxDelay;
   1.627 +		/** Negotiated reverse maximum delay.
   1.628 +	
   1.629 +		@see TQoSDelay */
   1.630 +		TQoSDelay			iRevMaxDelay;
   1.631 +		};
   1.632 +
   1.633 +	
   1.634 +	class TQoSR99_R4Requested : public TPacketDataConfigBase	
   1.635 +	/**
   1.636 +	Contains the requested and minimum values for the 
   1.637 +	GPRS/UMTS Rel99 and UMTS Rel4 QoS profile attributes.
   1.638 +	
   1.639 +	@publishedPartner
   1.640 +	@released
   1.641 +	*/
   1.642 +		{
   1.643 +	public:
   1.644 +		IMPORT_C TQoSR99_R4Requested();
   1.645 +	public:
   1.646 +		TTrafficClass				iReqTrafficClass;			///< Requested traffic class	
   1.647 +		TTrafficClass				iMinTrafficClass;			///< Minimum acceptable traffic class
   1.648 +		TDeliveryOrder				iReqDeliveryOrderReqd;		///< Requested value for sequential SDU delivery
   1.649 +		TDeliveryOrder				iMinDeliveryOrderReqd;		///< Minimum acceptable value for sequential SDU delivery
   1.650 +		TErroneousSDUDelivery		iReqDeliverErroneousSDU;	///< Requested value for erroneous SDU delivery
   1.651 +		TErroneousSDUDelivery		iMinDeliverErroneousSDU;	///< Minimum acceptable value for erroneous SDU delivery
   1.652 +		TInt						iReqMaxSDUSize;				///< Request maximum SDU size
   1.653 +		TInt						iMinAcceptableMaxSDUSize;	///< Minimum acceptable SDU size
   1.654 +		TBitRate					iReqMaxRate;				///< Requested maximum bit rates on uplink and downlink
   1.655 +		TBitRate					iMinAcceptableMaxRate;		///< Minimum acceptable bit rates on uplink and downlink
   1.656 +		TBitErrorRatio				iReqBER;					///< Requested target BER
   1.657 +		TBitErrorRatio				iMaxBER;					///< Maximum acceptable target BER
   1.658 +		TSDUErrorRatio				iReqSDUErrorRatio;			///< Requested target SDU error ratio
   1.659 +		TSDUErrorRatio				iMaxSDUErrorRatio;			///< Maximum acceptable target SDU error ratio
   1.660 +		TTrafficHandlingPriority	iReqTrafficHandlingPriority;///< Requested traffic handling priority
   1.661 +		TTrafficHandlingPriority	iMinTrafficHandlingPriority;///< Minimum acceptable traffic handling priority
   1.662 +		TInt						iReqTransferDelay;			///< Requested transfer delay (in milliseconds)
   1.663 +		TInt						iMaxTransferDelay;			///< Maximum acceptable  transfer delay (in milliseconds)
   1.664 +		TBitRate					iReqGuaranteedRate;			///< Requested guaranteed bit rates on uplink and downlink
   1.665 +		TBitRate					iMinGuaranteedRate;			///< Minimum acceptable guaranteed bit rates on uplink and downlink
   1.666 +		};
   1.667 +
   1.668 +	class TQoSR99_R4Negotiated : public TPacketDataConfigBase		
   1.669 +	/**
   1.670 +	Contains the negotiated values for the GPRS/UMTS Rel99
   1.671 +	and UMTS Rel4 QoS profile.
   1.672 +
   1.673 +	@publishedPartner
   1.674 +	@released
   1.675 +	*/
   1.676 +		{
   1.677 +	public:
   1.678 +		IMPORT_C TQoSR99_R4Negotiated();
   1.679 +	public:
   1.680 +		TTrafficClass				iTrafficClass;				///< Negotiated traffic class
   1.681 +		TDeliveryOrder				iDeliveryOrderReqd;			///< Negotiated value for sequential SDU delivery
   1.682 +		TErroneousSDUDelivery		iDeliverErroneousSDU;		///< Negotiated value for erroneous SDU delivery
   1.683 +		TInt						iMaxSDUSize;				///< Negotiated maximum SDU size (in octets)
   1.684 +		TBitRate					iMaxRate;					///< Negotiated maximum bit rates on the uplink and downlink
   1.685 +		TBitErrorRatio				iBER;						///< Negotiated target BER
   1.686 +		TSDUErrorRatio				iSDUErrorRatio;				///< Negotiated target SDU error ratio
   1.687 +		TTrafficHandlingPriority	iTrafficHandlingPriority;	///< Negotiated traffic handling priority
   1.688 +		TInt						iTransferDelay;				///< Negotiated transfer delay (in milliseconds)
   1.689 +		TBitRate					iGuaranteedRate;			///< Negotiated guaranteed bit rates on the uplink and downlink
   1.690 +		};
   1.691 +
   1.692 +
   1.693 +	class TQoSR5Requested : public TQoSR99_R4Requested	
   1.694 +	/**
   1.695 +	Contains the requested and minimum values for the 
   1.696 +	UMTS/IMS 3GPP Rel5 QoS profile attributes.
   1.697 +	
   1.698 +	@publishedPartner
   1.699 +	@released
   1.700 +	*/
   1.701 +		{
   1.702 +	public:
   1.703 +		IMPORT_C TQoSR5Requested();
   1.704 +	public:	
   1.705 +		/** Requested signalling indication. */
   1.706 +		TBool						iSignallingIndication;			 
   1.707 +		/** Requested source statistics descriptor. */
   1.708 +		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;			
   1.709 +		};
   1.710 +
   1.711 +
   1.712 +	
   1.713 +	class TQoSR5Negotiated : public TQoSR99_R4Negotiated	
   1.714 +	/**
   1.715 +	Contains the negotiated values for the UMTS/IMS 3GPP Rel5 QoS profile.
   1.716 +
   1.717 +	@publishedPartner
   1.718 +	@released
   1.719 +	*/
   1.720 +		{
   1.721 +	public:
   1.722 +		IMPORT_C TQoSR5Negotiated();
   1.723 +	public:	
   1.724 +		/** Negotiated signalling indication. */	
   1.725 +		TBool						iSignallingIndication;			
   1.726 +		/** Negotiated source statistics descriptor. */
   1.727 +		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;	 		
   1.728 +		};
   1.729 +		
   1.730 +	IMPORT_C		RPacketQoS();
   1.731 +	IMPORT_C TInt	OpenNewQoS(RPacketContext& aPacketContext, TDes& aProfileName);
   1.732 +	IMPORT_C TInt	OpenExistingQoS(RPacketContext& aPacketContext, const TDesC& aProfileName); 
   1.733 +	IMPORT_C void	Close();
   1.734 +
   1.735 +	IMPORT_C void	SetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
   1.736 +	IMPORT_C void	GetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
   1.737 +	IMPORT_C void	GetProfileCapabilities(TRequestStatus& aStatus, TDes8& aProfileCaps) const;
   1.738 +	IMPORT_C void	NotifyProfileChanged(TRequestStatus& aStatus, TDes8& aProfile) const;
   1.739 +protected:
   1.740 +	IMPORT_C virtual void ConstructL();
   1.741 +	IMPORT_C virtual void Destruct();
   1.742 +private:
   1.743 +	CPacketQoSPtrHolder* iEtelPacketQoSPtrHolder;
   1.744 +	};
   1.745 +
   1.746 +#endif
   1.747 +