epoc32/include/etelqos.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// 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
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// ETel Multimode Packet Data API - Quality of Service (QoS) support
williamr@2
    15
// GPRS Rel97/98, CDMAOne, CDMA2000, Release 99 and Release 4.
williamr@2
    16
// 
williamr@2
    17
//
williamr@2
    18
williamr@2
    19
williamr@2
    20
#if!defined(__ETELQOS_H__)
williamr@2
    21
#define __ETELQOS_H__
williamr@2
    22
williamr@2
    23
#include "etelpckt.h"
williamr@2
    24
williamr@2
    25
class RPacketContext;
williamr@2
    26
class CPacketQoSPtrHolder;
williamr@2
    27
williamr@2
    28
williamr@2
    29
class RPacketQoS : public RTelSubSessionBase
williamr@2
    30
/**
williamr@2
    31
Encapsulates functionality to set the Requested and Minimum Quality of Service 
williamr@2
    32
options for a particular context (or "service configuration" in CDMA parlance), 
williamr@2
    33
as represented by the RPacketContext class.
williamr@2
    34
 
williamr@2
    35
Methods are available to set and get the QoS options, query the QoS capabilities 
williamr@2
    36
of the network service and notify the client if a change in the negotiated QoS 
williamr@2
    37
options occurs.
williamr@2
    38
williamr@2
    39
A client must first create an instance of RPacketContext before opening a new 
williamr@2
    40
RPacketQoS, since when creating a new RPacketQoS, the client must call the 
williamr@2
    41
RPacketQoS::OpenNewQoS() function and pass in a reference to an RPacketContext 
williamr@2
    42
instance. 
williamr@2
    43
williamr@2
    44
@publishedPartner
williamr@2
    45
@released
williamr@2
    46
*/
williamr@2
    47
	{
williamr@2
    48
public:
williamr@2
    49
	//
williamr@2
    50
	// Nested enums and classes
williamr@2
    51
	//
williamr@2
    52
	/** Defines the QoS reliability settings for GRPS networks. */
williamr@2
    53
	enum TQoSReliability	// GPRS Release 97/98
williamr@2
    54
		{
williamr@2
    55
		/** Best effort or subscribed value. */
williamr@2
    56
		EUnspecifiedReliabilityClass = 0x01,
williamr@2
    57
		/** Reliability Class 1. */
williamr@2
    58
		EReliabilityClass1			 = 0x02,
williamr@2
    59
		/** Reliability Class 2. */
williamr@2
    60
		EReliabilityClass2			 = 0x04,
williamr@2
    61
		/** Reliability Class 3. */
williamr@2
    62
		EReliabilityClass3			 = 0x08,
williamr@2
    63
		/** Reliability Class 4. */
williamr@2
    64
		EReliabilityClass4			 = 0x10,
williamr@2
    65
		/** Reliability Class 5. */
williamr@2
    66
		EReliabilityClass5			 = 0x20
williamr@2
    67
		};
williamr@2
    68
williamr@2
    69
	/** Defines the QoS precedence for GRPS networks. */
williamr@2
    70
	enum TQoSPrecedence		// GPRS Release 97/98
williamr@2
    71
		{
williamr@2
    72
		/** Best effort or subscribed value */
williamr@2
    73
		EUnspecifiedPrecedence		= 0x01, 
williamr@2
    74
		/** High priority precedence. */
williamr@2
    75
		EPriorityHighPrecedence     = 0x02,
williamr@2
    76
		/** Medium priority precedence. */
williamr@2
    77
		EPriorityMediumPrecedence  = 0x04,
williamr@2
    78
		/** Low priority precedence. */
williamr@2
    79
		EPriorityLowPrecedence		= 0x08
williamr@2
    80
		};
williamr@2
    81
williamr@2
    82
	/** Defines the QoS delay for GPRS and CDMA200 networks.
williamr@2
    83
	 */
williamr@2
    84
	enum TQoSDelay			// GPRS Release 97/98, CDMA2000
williamr@2
    85
		{
williamr@2
    86
		/** Best effort or subscribed value. */
williamr@2
    87
		EUnspecifiedDelayClass	= 0x01, 
williamr@2
    88
		/** Delay class 1. */
williamr@2
    89
		EDelayClass1			= 0x02,
williamr@2
    90
		/** Delay class 2. */
williamr@2
    91
		EDelayClass2			= 0x04,
williamr@2
    92
		/** Delay class 3. */
williamr@2
    93
		EDelayClass3			= 0x08,
williamr@2
    94
		/** Delay class 4. */
williamr@2
    95
		EDelayClass4			= 0x10,
williamr@2
    96
		/** Delay 40 milli seconds.
williamr@2
    97
	
williamr@2
    98
		CDMA2000 specific */
williamr@2
    99
		EDelay40ms				= 0x20,	
williamr@2
   100
		/** Delay 120 milli seconds.
williamr@2
   101
	
williamr@2
   102
		CDMA2000 specific */
williamr@2
   103
		EDelay120ms				= 0x40,	
williamr@2
   104
		/** Delay 360 milli seconds.
williamr@2
   105
	
williamr@2
   106
		CDMA2000 specific */
williamr@2
   107
		EDelay360ms				= 0x80	
williamr@2
   108
		};
williamr@2
   109
williamr@2
   110
	/** Defines the QoS peak throughput rates for GRPS networks. */
williamr@2
   111
	enum TQoSPeakThroughput // GPRS Release 97/98
williamr@2
   112
		{
williamr@2
   113
		/** Best effort or subscribed value. */
williamr@2
   114
		EUnspecifiedPeakThroughput  = 0x001, 
williamr@2
   115
		/** Peak throughput of 1,000. */
williamr@2
   116
		EPeakThroughput1000			= 0x002,
williamr@2
   117
		/** Peak throughput of 2,000. */
williamr@2
   118
		EPeakThroughput2000			= 0x004,
williamr@2
   119
		/** Peak throughput of 4,000. */
williamr@2
   120
		EPeakThroughput4000			= 0x008,
williamr@2
   121
		/** Peak throughput of 8,000. */
williamr@2
   122
		EPeakThroughput8000			= 0x010,
williamr@2
   123
		/** Peak throughput of 16,000. */
williamr@2
   124
		EPeakThroughput16000		= 0x020,
williamr@2
   125
		/** Peak throughput of 32,000. */
williamr@2
   126
		EPeakThroughput32000		= 0x040,
williamr@2
   127
		/** Peak throughput of 64,000. */
williamr@2
   128
		EPeakThroughput64000		= 0x080,
williamr@2
   129
		/** Peak throughput of 128,000. */
williamr@2
   130
		EPeakThroughput128000		= 0x100,
williamr@2
   131
		/** Peak throughput of 256,000. */
williamr@2
   132
		EPeakThroughput256000		= 0x200
williamr@2
   133
		};
williamr@2
   134
williamr@2
   135
	/** Defines the mean throughput for GRPS networks. */
williamr@2
   136
	enum TQoSMeanThroughput	// GPRS Release 97/98 
williamr@2
   137
		{
williamr@2
   138
		/** Unsubscribed value. */
williamr@2
   139
		EUnspecifiedMeanThroughput	= 0x00001,
williamr@2
   140
		/** Mean throughput of 100. */
williamr@2
   141
		EMeanThroughput100			= 0x00002,
williamr@2
   142
		/** Mean throughput of 200. */
williamr@2
   143
		EMeanThroughput200			= 0x00004,
williamr@2
   144
		/** Mean throughput of 500. */
williamr@2
   145
		EMeanThroughput500			= 0x00008,
williamr@2
   146
		/** Mean throughput of 1,000. */
williamr@2
   147
		EMeanThroughput1000			= 0x00010,
williamr@2
   148
		/** Mean throughput of 2,000. */
williamr@2
   149
		EMeanThroughput2000			= 0x00020,
williamr@2
   150
		/** Mean throughput of 5,000. */
williamr@2
   151
		EMeanThroughput5000			= 0x00040,
williamr@2
   152
		/** Mean throughput of 10,000. */
williamr@2
   153
		EMeanThroughput10000		= 0x00080,
williamr@2
   154
		/** Mean throughput of 20,000. */
williamr@2
   155
		EMeanThroughput20000		= 0x00100,
williamr@2
   156
		/** Mean throughput of 50,000. */
williamr@2
   157
		EMeanThroughput50000		= 0x00200,
williamr@2
   158
		/** Mean throughput of 100,000. */
williamr@2
   159
		EMeanThroughput100000		= 0x00400,
williamr@2
   160
		/** Mean throughput of 200,000. */
williamr@2
   161
		EMeanThroughput200000		= 0x00800,
williamr@2
   162
		/** Mean throughput of 500,000. */
williamr@2
   163
		EMeanThroughput500000		= 0x01000,
williamr@2
   164
		/** Mean throughput of 1,000,000. */
williamr@2
   165
		EMeanThroughput1000000		= 0x02000,
williamr@2
   166
		/** Mean throughput of 2,000,000. */
williamr@2
   167
		EMeanThroughput2000000		= 0x04000,
williamr@2
   168
		/** Mean throughput of 5,000,000. */
williamr@2
   169
		EMeanThroughput5000000		= 0x08000,
williamr@2
   170
		/** Mean throughput of 10,000,000. */
williamr@2
   171
		EMeanThroughput10000000		= 0x10000,
williamr@2
   172
		/** Mean throughput of 20,000,000. */
williamr@2
   173
		EMeanThroughput20000000		= 0x20000,
williamr@2
   174
		/** Mean throughput of 50,000,000. */
williamr@2
   175
		EMeanThroughput50000000		= 0x40000,
williamr@2
   176
		/** Best effort. */
williamr@2
   177
		EMeanThroughputBestEffort	= 0x80000
williamr@2
   178
		};
williamr@2
   179
williamr@2
   180
	/** Defines the QoS link priority for CMDA2000 networks. */
williamr@2
   181
	enum TQoSLinkPriority	
williamr@2
   182
		{
williamr@2
   183
		/** No link priority. */
williamr@2
   184
		ELinkPriority00 = 0x0001, 
williamr@2
   185
		/** 1/13th's of user's subscription priority. */
williamr@2
   186
		ELinkPriority01 = 0x0002,
williamr@2
   187
		/** 2/13th's of user's subscription priority. */
williamr@2
   188
		ELinkPriority02 = 0x0004,
williamr@2
   189
		/** 3/13th's of user's subscription priority. */
williamr@2
   190
		ELinkPriority03	= 0x0008,
williamr@2
   191
		/** 4/13th's of user's subscription priority. */
williamr@2
   192
		ELinkPriority04	= 0x0010,
williamr@2
   193
		/** 5/13th's of user's subscription priority. */
williamr@2
   194
		ELinkPriority05	= 0x0020,
williamr@2
   195
		/** 6/13th's of user's subscription priority. */
williamr@2
   196
		ELinkPriority06	= 0x0040,	
williamr@2
   197
		/** 7/13th's of user's subscription priority. */
williamr@2
   198
		ELinkPriority07	= 0x0080,
williamr@2
   199
		/** 8/13th's of user's subscription priority. */
williamr@2
   200
		ELinkPriority08	= 0x0100,
williamr@2
   201
		/** 9/13th's of user's subscription priority. */
williamr@2
   202
		ELinkPriority09	= 0x0200,
williamr@2
   203
		/** 10/13th's of user's subscription priority. */
williamr@2
   204
		ELinkPriority10	= 0x0400,
williamr@2
   205
		/** 11/13th's of user's subscription priority. */
williamr@2
   206
		ELinkPriority11	= 0x0800,
williamr@2
   207
		/** 12/13th's of user's subscription priority. */
williamr@2
   208
		ELinkPriority12	= 0x1000,
williamr@2
   209
		/** Subscription priority (13/13th's). */
williamr@2
   210
		ELinkPriority13	= 0x2000	
williamr@2
   211
		};
williamr@2
   212
williamr@2
   213
	/** Defines the QoS data loss rate. */
williamr@2
   214
	enum TQoSDataLoss
williamr@2
   215
		{
williamr@2
   216
		/** 1% data loss rate. */
williamr@2
   217
		EDataLoss1	 =	0x01,	
williamr@2
   218
		/** 2% data loss rate. */
williamr@2
   219
		EDataLoss2	 =	0x02,	
williamr@2
   220
		/** 5% data loss rate. */
williamr@2
   221
		EDataLoss5	 =	0x04,	
williamr@2
   222
		/** 10% data loss rate. */
williamr@2
   223
		EDataLoss10	 =	0x08	
williamr@2
   224
		};
williamr@2
   225
williamr@2
   226
	/** Defines the QoS data rate. */
williamr@2
   227
	enum TQoSDataRate
williamr@2
   228
		{
williamr@2
   229
		/** A data rate of 8 kb/s. */
williamr@2
   230
		EDataRate8kbps	  =	0x01,
williamr@2
   231
		/** A data rate of 32 kb/s. */
williamr@2
   232
		EDataRate32kbps	  =	0x02,
williamr@2
   233
		/** A data rate of 64 kb/s. */
williamr@2
   234
		EDataRate64kbps	  =	0x04,
williamr@2
   235
		/** A data rate of 144 kb/s. */
williamr@2
   236
		EDataRate144kbps  =	0x08,
williamr@2
   237
		/** A data rate of 384 kb/s */
williamr@2
   238
		EDataRate384kbps  =	0x10
williamr@2
   239
		};
williamr@2
   240
williamr@2
   241
	//
williamr@2
   242
	// TRLPMode - allows the client to specify (if desired) one of the following:
williamr@2
   243
	// transparent only, tranparent preferred, non-transparent only or non-transparent 
williamr@2
   244
	// preferred Radio Link Protocol Mode
williamr@2
   245
	//
williamr@2
   246
	/** Defines the Radio Link Protocol (RPL) mode. */
williamr@2
   247
	enum TRLPMode
williamr@2
   248
		{
williamr@2
   249
		/** RPL mode unknown. */
williamr@2
   250
		KRLPUnknown				= 0x01,		
williamr@2
   251
		/** Transparent mode only. */
williamr@2
   252
		KRLPTransparent			= 0x02,
williamr@2
   253
		/** Non-transparent mode only. */
williamr@2
   254
		KRLPNonTransparent		= 0x04,
williamr@2
   255
		/** Transparent mode preferred. */
williamr@2
   256
		KRLPTransparentPref		= 0x08,
williamr@2
   257
		/** Non-transparent mode preferred. */
williamr@2
   258
		KRLPNonTransparentPref	= 0x10
williamr@2
   259
		};
williamr@2
   260
williamr@2
   261
	// The enums TTrafficClass, TDeliveryOrder,TErroneousSDUDelivery, TBitErrorRatio,
williamr@2
   262
	// TSDUErrorRatio, TTrafficHandlingPriority have been assigned values because
williamr@2
   263
	// the same enums are used both in the TQoSR99_R4Requested / Negotiated classes and 
williamr@2
   264
	// in the TQoSCapsR99_R4 class. The Caps class has to indicate which, for instance, 
williamr@2
   265
	// traffic classes are supported in a bitfield, so the enums have been defined as 
williamr@2
   266
	// different bits in a bit field.
williamr@2
   267
	enum TTrafficClass			
williamr@2
   268
		{
williamr@2
   269
		ETrafficClassUnspecified	= 0x01,		///< Traffic class - Unspecified
williamr@2
   270
		ETrafficClassConversational	= 0x02,		///< Traffic class - Conversational
williamr@2
   271
		ETrafficClassStreaming		= 0x04,		///< Traffic class - Streaming
williamr@2
   272
		ETrafficClassInteractive	= 0x08,		///< Traffic class - Interactive
williamr@2
   273
		ETrafficClassBackground		= 0x10		///< Traffic class - Background
williamr@2
   274
		};
williamr@2
   275
williamr@2
   276
	enum TDeliveryOrder		
williamr@2
   277
		{
williamr@2
   278
		EDeliveryOrderUnspecified	= 0x01,		///< SDU Delivery order - Unspecified
williamr@2
   279
		EDeliveryOrderRequired		= 0x02,		///< SDU Delivery order - Required to be in sequence
williamr@2
   280
		EDeliveryOrderNotRequired	= 0x04		///< SDU Delivery order - Not Required to be in sequence
williamr@2
   281
		};
williamr@2
   282
williamr@2
   283
	enum TErroneousSDUDelivery		// Erroneous SDU Delivery
williamr@2
   284
		{
williamr@2
   285
		EErroneousSDUDeliveryUnspecified	= 0x01,	///< Unspecified
williamr@2
   286
		EErroneousSDUNoDetection			= 0x02,	///< Erroneous SDUs delivered - Error detection not considered.
williamr@2
   287
		EErroneousSDUDeliveryRequired		= 0x04,	///< Erroneous SDUs delivered + error indication - Error detection employed.
williamr@2
   288
		EErroneousSDUDeliveryNotRequired	= 0x08	///< Erroneous SDUs discarded - Error detection is employed.
williamr@2
   289
		};
williamr@2
   290
williamr@2
   291
	enum TBitErrorRatio				// Residual Bit Error Rate
williamr@2
   292
		{
williamr@2
   293
		EBERUnspecified				= 0x01,		///< Target residual undetected BER - Unspecified
williamr@2
   294
		EBERFivePerHundred			= 0x02,		///< Target residual BER - 0.05
williamr@2
   295
		EBEROnePerHundred			= 0x04,		///< Target residual BER - 0.01
williamr@2
   296
		EBERFivePerThousand			= 0x08,		///< Target residual BER - 0.005
williamr@2
   297
		EBERFourPerThousand			= 0x10,		///< Target residual BER - 0.004
williamr@2
   298
		EBEROnePerThousand			= 0x20,		///< Target residual BER - 0.001
williamr@2
   299
		EBEROnePerTenThousand		= 0x40,		///< Target residual BER - 0.0001
williamr@2
   300
		EBEROnePerHundredThousand	= 0x80,		///< Target residual BER - 0.00001
williamr@2
   301
		EBEROnePerMillion			= 0x100,	///< Target residual BER - 0.000001
williamr@2
   302
		EBERSixPerHundredMillion	= 0x200		///< Target residual BER - 0.00000006
williamr@2
   303
		};
williamr@2
   304
williamr@2
   305
	enum TSDUErrorRatio				// SDU Error Ratio
williamr@2
   306
		{
williamr@2
   307
		ESDUErrorRatioUnspecified			= 0x01,	///< Target value of Erroneous SDUs - Unspecified
williamr@2
   308
		ESDUErrorRatioOnePerTen				= 0x02,	///< Target SDU error ratio - 0.1
williamr@2
   309
		ESDUErrorRatioOnePerHundred			= 0x04,	///< Target SDU error ratio - 0.01
williamr@2
   310
		ESDUErrorRatioSevenPerThousand		= 0x08,	///< Target SDU error ratio - 0.007
williamr@2
   311
		ESDUErrorRatioOnePerThousand		= 0x10,	///< Target SDU error ratio - 0.001
williamr@2
   312
		ESDUErrorRatioOnePerTenThousand		= 0x20,	///< Target SDU error ratio - 0.0001
williamr@2
   313
		ESDUErrorRatioOnePerHundredThousand	= 0x40,	///< Target SDU error ratio - 0.00001
williamr@2
   314
		ESDUErrorRatioOnePerMillion			= 0x80	///< Target SDU error ratio - 0.000001
williamr@2
   315
		};
williamr@2
   316
williamr@2
   317
	enum TTrafficHandlingPriority	// Traffic handling priority
williamr@2
   318
		{
williamr@2
   319
		ETrafficPriorityUnspecified	= 0x01,		///< Unspecified Priority level
williamr@2
   320
		ETrafficPriority1			= 0x02,		///< Priority level 1
williamr@2
   321
		ETrafficPriority2			= 0x04,		///< Priority level 2
williamr@2
   322
		ETrafficPriority3			= 0x08		///< Priority level 3
williamr@2
   323
		};
williamr@2
   324
williamr@2
   325
	struct TBitRate					// Bit rates for uplink and downlink
williamr@2
   326
		{
williamr@2
   327
		TInt iUplinkRate;			///< Uplink bitrate in kbps. Range 0 - 16000
williamr@2
   328
		TInt iDownlinkRate;			///< Downlink bitrate in kbps. Range 0 - 16000
williamr@2
   329
		};
williamr@2
   330
			
williamr@2
   331
	/**
williamr@2
   332
	Source statistics descriptor - as defined in 3GPP TS 23.107 and TS 24.008.
williamr@2
   333
	
williamr@2
   334
	@publishedPartner
williamr@2
   335
	@released
williamr@2
   336
	*/
williamr@2
   337
	enum TSourceStatisticsDescriptor	
williamr@2
   338
		{
williamr@2
   339
		/** Unknown source statistics descriptor. */
williamr@2
   340
		ESourceStatisticsDescriptorUnknown	= 0x0,		
williamr@2
   341
		/** Speech source statistics descriptor. */
williamr@2
   342
		ESourceStatisticsDescriptorSpeech	= 0x01,		 
williamr@2
   343
		};
williamr@2
   344
		
williamr@2
   345
	//
williamr@2
   346
	// QoS capabilities classes
williamr@2
   347
	//
williamr@2
   348
	class TQoSCapsGPRS : public TPacketDataConfigBase
williamr@2
   349
	/**
williamr@2
   350
	Supported GPRS QoS capabilities.
williamr@2
   351
	
williamr@2
   352
	@deprecated v9.3 Use TQoSCapsR99_R4 or TQoSCapsR5 instead. 
williamr@2
   353
	*/
williamr@2
   354
		{
williamr@2
   355
	public:
williamr@2
   356
		IMPORT_C TQoSCapsGPRS(); // iExtensionId = KConfigGPRS
williamr@2
   357
	public:
williamr@2
   358
		/** Bit-wise sum of the TQoSPrecedence attributes. 
williamr@2
   359
		
williamr@2
   360
		The default value is EUnspecifiedPrecedence. */
williamr@2
   361
		TUint iPrecedence;
williamr@2
   362
		/** Bit-wise sum of the TQoSDelay attributes. 
williamr@2
   363
		
williamr@2
   364
		The default value is EUnspecifiedDelay. */
williamr@2
   365
		TUint iDelay;
williamr@2
   366
		/** Bit-wise sum of the TQoSReliability attributes. 
williamr@2
   367
		
williamr@2
   368
		The default value is EUnspecifiedReliability. */
williamr@2
   369
		TUint iReliability;
williamr@2
   370
		/** Bit-wise sum of the TQoSPeakThroughput attributes. 
williamr@2
   371
		
williamr@2
   372
		The default value is EUnspecifiedPeakThroughput. */
williamr@2
   373
		TUint iPeak;
williamr@2
   374
		/** Bit-wise sum of the TQoSMeanThroughput attributes. 
williamr@2
   375
		
williamr@2
   376
		The default value is EUnspecifiedMeanThroughput. */
williamr@2
   377
		TUint iMean;
williamr@2
   378
		};
williamr@2
   379
williamr@2
   380
	class TQoSCapsCDMA2000 : public TPacketDataConfigBase
williamr@2
   381
	/**
williamr@2
   382
	Supported CDMA2000 QoS capabilities.
williamr@2
   383
williamr@2
   384
	@publishedPartner
williamr@2
   385
	@released
williamr@2
   386
	*/
williamr@2
   387
		{
williamr@2
   388
	public:
williamr@2
   389
		IMPORT_C TQoSCapsCDMA2000(); // iExtensionId = KConfigCDMA
williamr@2
   390
	public:
williamr@2
   391
		/** Bit-wise sum of the TQoSLinkPriority attributes. */
williamr@2
   392
		TUint	iPriority;
williamr@2
   393
		/** Bit-wise sum of the TQoSDataRate attributes for the uplink. */
williamr@2
   394
		TUint	iUplinkRate;
williamr@2
   395
		/** Bit-wise sum of the TQoSDataRate attributes for the downlink. */
williamr@2
   396
		TUint	iDownlinkRate;
williamr@2
   397
		/** Bit-wise sum of the TQoSDataLoss attributes. */
williamr@2
   398
		TUint	iFwdLossRate;
williamr@2
   399
		/** Bit-wise sum of the TQoSDataLoss attributes. */
williamr@2
   400
		TUint	iRevLossRate;
williamr@2
   401
		/** Bit-wise sum of the TQoSDelay attributes. */
williamr@2
   402
		TUint	iFwdMaxDelay;
williamr@2
   403
		/** Bit-wise sum of the TQoSDelay attributes. */
williamr@2
   404
		TUint	iRevMaxDelay;
williamr@2
   405
		};
williamr@2
   406
williamr@2
   407
	
williamr@2
   408
	class TQoSCapsR99_R4 : public TPacketDataConfigBase
williamr@2
   409
	/**
williamr@2
   410
	GPRS/UMTS Rel99 and UMTS Rel4 QoS capabilities class.
williamr@2
   411
	
williamr@2
   412
	@publishedPartner
williamr@2
   413
	@released
williamr@2
   414
	*/
williamr@2
   415
		{
williamr@2
   416
	public:
williamr@2
   417
		IMPORT_C TQoSCapsR99_R4(); 
williamr@2
   418
	public:
williamr@2
   419
		TUint iTrafficClass;			///< Supported traffic class of the MT
williamr@2
   420
		TUint iDeliveryOrderReqd;		///< SDU sequential delivery
williamr@2
   421
		TUint iDeliverErroneousSDU;		///< Delivery of erroneous SDUs
williamr@2
   422
		TUint iBER;						///< Target Bit Error Ratio (BER)
williamr@2
   423
		TUint iSDUErrorRatio;			///< Target SDU Error Ratio
williamr@2
   424
		TUint iTrafficHandlingPriority; ///< Traffic handling priority
williamr@2
   425
		};
williamr@2
   426
		
williamr@2
   427
	class TQoSCapsR5 : public TQoSCapsR99_R4
williamr@2
   428
	/**
williamr@2
   429
	UMTS Rel5 QoS capabilities class.
williamr@2
   430
	
williamr@2
   431
	@publishedPartner
williamr@2
   432
	@released
williamr@2
   433
	*/
williamr@2
   434
		{
williamr@2
   435
	public:
williamr@2
   436
		IMPORT_C TQoSCapsR5(); 
williamr@2
   437
	public:
williamr@2
   438
		TUint iSignallingIndication;		///< Requested signalling indication 
williamr@2
   439
		TUint iSourceStatisticsDescriptor;	///< Requested source statistics descriptor
williamr@2
   440
		};
williamr@2
   441
williamr@2
   442
	//
williamr@2
   443
	// QoS configuration classes
williamr@2
   444
	//
williamr@2
   445
	class TQoSGPRSRequested : public TPacketDataConfigBase	// GPRS Rel97/98
williamr@2
   446
	/**
williamr@2
   447
	The GPRS QoS that is requested.
williamr@2
   448
	
williamr@2
   449
	@deprecated v9.3 Use TQoSR99_R4Requested or TQoSR5Requested instead.
williamr@2
   450
	*/
williamr@2
   451
		{
williamr@2
   452
	public:
williamr@2
   453
		IMPORT_C TQoSGPRSRequested();
williamr@2
   454
	public:
williamr@2
   455
		/** Precedence requested. The default is EUnspecifiedPrecedence.
williamr@2
   456
	
williamr@2
   457
		@see TQoSPrecedence */
williamr@2
   458
		TQoSPrecedence		iReqPrecedence;
williamr@2
   459
		/** Minimum precedence. The default is EUnspecifiedPrecedence.
williamr@2
   460
	
williamr@2
   461
		@see TQoSPrecedence */
williamr@2
   462
		TQoSPrecedence		iMinPrecedence;
williamr@2
   463
		/** Requested QoS Delay. The default is EUnspecifiedDelayClass.
williamr@2
   464
	
williamr@2
   465
		@see TQoSDelay */
williamr@2
   466
		TQoSDelay			iReqDelay;
williamr@2
   467
		/** Minimum delay requested. The default is EUnspecifiedDelayClass.
williamr@2
   468
	
williamr@2
   469
		@see TQoSDelay */
williamr@2
   470
		TQoSDelay			iMinDelay;
williamr@2
   471
		/** Requested reliability. The default is EUnspecifiedReliabilityClass.
williamr@2
   472
	
williamr@2
   473
		@see TQoSReliability */
williamr@2
   474
		TQoSReliability		iReqReliability;
williamr@2
   475
		/** Requested minimum reliability . The default is EUnspecifiedReliabilityClass.
williamr@2
   476
	
williamr@2
   477
		@see TQoSReliability */
williamr@2
   478
		TQoSReliability		iMinReliability;
williamr@2
   479
		/** Requested peak throughput . The default is EUnspecifiedPeakThroughput.
williamr@2
   480
	
williamr@2
   481
		@see TQoSPeakThroughput */
williamr@2
   482
		TQoSPeakThroughput	iReqPeakThroughput;
williamr@2
   483
		/** Requested minimum peak throughput. The default is EUnspecifiedPeakThroughput.
williamr@2
   484
	
williamr@2
   485
		@see TQoSPeakThroughput */
williamr@2
   486
		TQoSPeakThroughput	iMinPeakThroughput;
williamr@2
   487
		/** Requested QoS mean throughput. The default is EUnspecifiedMeanThroughput.
williamr@2
   488
	
williamr@2
   489
		@see TQoSMeanThroughput */
williamr@2
   490
		TQoSMeanThroughput	iReqMeanThroughput;
williamr@2
   491
		/** Requested minimum QoS mean throughput. The default is EUnspecifiedMeanThroughput.
williamr@2
   492
	
williamr@2
   493
		@see TQoSMeanThroughput */
williamr@2
   494
		TQoSMeanThroughput	iMinMeanThroughput;
williamr@2
   495
		};
williamr@2
   496
		
williamr@2
   497
	class TQoSGPRSNegotiated : public TPacketDataConfigBase	// GPRS Rel97/98
williamr@2
   498
	/** Contains the negotiated QoS values - returned by the GPRS network 
williamr@2
   499
	after activating a connection and determining the QoS profile. 
williamr@2
   500
williamr@2
   501
	@deprecated v9.3 Use TQoSR99_R4Negotiated or TQoSR5Negotiated instead.
williamr@2
   502
	*/
williamr@2
   503
		{
williamr@2
   504
	public:
williamr@2
   505
		IMPORT_C TQoSGPRSNegotiated();
williamr@2
   506
	public:
williamr@2
   507
		/** Negotiated QoS precedence. The default is EUnspecifiedPrecedence.
williamr@2
   508
	
williamr@2
   509
		@see TQoSPrecedence */
williamr@2
   510
		TQoSPrecedence		iPrecedence;
williamr@2
   511
		/** Negotiated QoS delay. The default is EUnspecifiedPeakThroughput.
williamr@2
   512
	
williamr@2
   513
		@see TQoSDelay */
williamr@2
   514
		TQoSDelay			iDelay;
williamr@2
   515
		/** Negotiated QoS reliability. The default is EUnspecifiedReliabilityClass.
williamr@2
   516
	
williamr@2
   517
		@see TQoSReliability */
williamr@2
   518
		TQoSReliability		iReliability;
williamr@2
   519
		/** Negotiated QoS peak throughput. The default is EUnspecifiedPeakThroughput.
williamr@2
   520
	
williamr@2
   521
		@see TQoSPeakThroughput */
williamr@2
   522
		TQoSPeakThroughput	iPeakThroughput;
williamr@2
   523
		/** Negotiated QoS mean throughput. The default is EUnspecifiedMeanThroughput.
williamr@2
   524
	
williamr@2
   525
		@see TQoSMeanThroughput */
williamr@2
   526
		TQoSMeanThroughput	iMeanThroughput;
williamr@2
   527
		};
williamr@2
   528
williamr@2
   529
	class TQoSCDMA2000Requested : public TPacketDataConfigBase	// CDMA2000
williamr@2
   530
	/**
williamr@2
   531
	The CDMA2000 QoS requested from the network.
williamr@2
   532
williamr@2
   533
	@publishedPartner
williamr@2
   534
	@released
williamr@2
   535
	*/
williamr@2
   536
		{
williamr@2
   537
	public:
williamr@2
   538
		IMPORT_C TQoSCDMA2000Requested();
williamr@2
   539
	public:
williamr@2
   540
		/** The request assured mode. */
williamr@2
   541
		TBool				iAssuredMode; // assured vs. non-assured mode
williamr@2
   542
		/** The RPL mode requested.
williamr@2
   543
	
williamr@2
   544
		@see TRLPMode */
williamr@2
   545
		TRLPMode			iRLPMode;
williamr@2
   546
		/** The link priority requested.
williamr@2
   547
	
williamr@2
   548
		@see TQoSLinkPriority */
williamr@2
   549
		TQoSLinkPriority	iPriority;
williamr@2
   550
		/** The uplink rate requested.
williamr@2
   551
	
williamr@2
   552
		@see TQoSDataRate */
williamr@2
   553
		TQoSDataRate		iReqUplinkRate;
williamr@2
   554
		/** The minimum uplink rate requested.
williamr@2
   555
	
williamr@2
   556
		@see TQoSDataRate */
williamr@2
   557
		TQoSDataRate		iMinUplinkRate;
williamr@2
   558
		/** The downlink rate requested
williamr@2
   559
	
williamr@2
   560
		@see TQoSDataRate */
williamr@2
   561
		TQoSDataRate		iReqDownlinkRate;
williamr@2
   562
		/** The minimum downlink rate requested.
williamr@2
   563
	
williamr@2
   564
		@see TQoSDataRate */
williamr@2
   565
		TQoSDataRate		iMinDownlinkRate;
williamr@2
   566
		/** The forward loss rate requested. */
williamr@2
   567
		TQoSDataLoss		iFwdRequestedLossRate;
williamr@2
   568
		TQoSDataLoss		iRevRequestedLossRate;
williamr@2
   569
		/** The forward accepted loss rate. */
williamr@2
   570
		TQoSDataLoss		iFwdAcceptedLossRate;
williamr@2
   571
		/** The reverse accepted loss rate. */
williamr@2
   572
		TQoSDataLoss		iRevAcceptedLossRate;
williamr@2
   573
		/** The forward maximum requested delay. */
williamr@2
   574
		TQoSDelay			iFwdMaxRequestedDelay;
williamr@2
   575
		/** The reverse maximum requested delay. */
williamr@2
   576
		TQoSDelay			iRevMaxRequestedDelay;
williamr@2
   577
		/** The forward maximum accepted delay. */
williamr@2
   578
		TQoSDelay			iFwdMaxAcceptedDelay;
williamr@2
   579
		/** The reverse maximum accepted delay. */
williamr@2
   580
		TQoSDelay			iRevMaxAcceptedDelay;
williamr@2
   581
		};
williamr@2
   582
williamr@2
   583
	class TQoSCDMA2000Negotiated : public TPacketDataConfigBase	// CDMA2000
williamr@2
   584
	/**
williamr@2
   585
	The negotiated CDMA200 QoS parameters.
williamr@2
   586
williamr@2
   587
	@publishedPartner
williamr@2
   588
	@released
williamr@2
   589
	*/
williamr@2
   590
		{
williamr@2
   591
	public:
williamr@2
   592
		IMPORT_C TQoSCDMA2000Negotiated();
williamr@2
   593
	public:
williamr@2
   594
		/** Negotiated assured mode. */
williamr@2
   595
		TBool				iAssuredMode; // assured vs. non-assured mode. 
williamr@2
   596
		/** Negotiated Radio Link Protocol mode.
williamr@2
   597
	
williamr@2
   598
		@see TRLPMode */
williamr@2
   599
		TRLPMode			iRLPMode;
williamr@2
   600
		/** Negotiated QoS link priority.
williamr@2
   601
	
williamr@2
   602
		@see TQoSLinkPriority */
williamr@2
   603
		TQoSLinkPriority	iPriority;
williamr@2
   604
		/** Negotiated uplink rate.
williamr@2
   605
	
williamr@2
   606
		@see TQoSDataRate */
williamr@2
   607
		TQoSDataRate		iUplinkRate;
williamr@2
   608
		/** Negotiated downlink rate.
williamr@2
   609
	
williamr@2
   610
		@see TQoSDataRate */
williamr@2
   611
		TQoSDataRate		iDownlinkRate;
williamr@2
   612
		/** Negotiated forward data loss rate.
williamr@2
   613
	
williamr@2
   614
		@see TQoSDataLoss */
williamr@2
   615
		TQoSDataLoss		iFwdDataLossRate;
williamr@2
   616
		/** Negotiated reverse data loss rate.
williamr@2
   617
	
williamr@2
   618
		@see TQoSDataLoss */
williamr@2
   619
		TQoSDataLoss		iRevDataLossRate;
williamr@2
   620
		/** Negotiated forward maximum delay.
williamr@2
   621
	
williamr@2
   622
		@see TQoSDelay */
williamr@2
   623
		TQoSDelay			iFwdMaxDelay;
williamr@2
   624
		/** Negotiated reverse maximum delay.
williamr@2
   625
	
williamr@2
   626
		@see TQoSDelay */
williamr@2
   627
		TQoSDelay			iRevMaxDelay;
williamr@2
   628
		};
williamr@2
   629
williamr@2
   630
	
williamr@2
   631
	class TQoSR99_R4Requested : public TPacketDataConfigBase	
williamr@2
   632
	/**
williamr@2
   633
	Contains the requested and minimum values for the 
williamr@2
   634
	GPRS/UMTS Rel99 and UMTS Rel4 QoS profile attributes.
williamr@2
   635
	
williamr@2
   636
	@publishedPartner
williamr@2
   637
	@released
williamr@2
   638
	*/
williamr@2
   639
		{
williamr@2
   640
	public:
williamr@2
   641
		IMPORT_C TQoSR99_R4Requested();
williamr@2
   642
	public:
williamr@2
   643
		TTrafficClass				iReqTrafficClass;			///< Requested traffic class	
williamr@2
   644
		TTrafficClass				iMinTrafficClass;			///< Minimum acceptable traffic class
williamr@2
   645
		TDeliveryOrder				iReqDeliveryOrderReqd;		///< Requested value for sequential SDU delivery
williamr@2
   646
		TDeliveryOrder				iMinDeliveryOrderReqd;		///< Minimum acceptable value for sequential SDU delivery
williamr@2
   647
		TErroneousSDUDelivery		iReqDeliverErroneousSDU;	///< Requested value for erroneous SDU delivery
williamr@2
   648
		TErroneousSDUDelivery		iMinDeliverErroneousSDU;	///< Minimum acceptable value for erroneous SDU delivery
williamr@2
   649
		TInt						iReqMaxSDUSize;				///< Request maximum SDU size
williamr@2
   650
		TInt						iMinAcceptableMaxSDUSize;	///< Minimum acceptable SDU size
williamr@2
   651
		TBitRate					iReqMaxRate;				///< Requested maximum bit rates on uplink and downlink
williamr@2
   652
		TBitRate					iMinAcceptableMaxRate;		///< Minimum acceptable bit rates on uplink and downlink
williamr@2
   653
		TBitErrorRatio				iReqBER;					///< Requested target BER
williamr@2
   654
		TBitErrorRatio				iMaxBER;					///< Maximum acceptable target BER
williamr@2
   655
		TSDUErrorRatio				iReqSDUErrorRatio;			///< Requested target SDU error ratio
williamr@2
   656
		TSDUErrorRatio				iMaxSDUErrorRatio;			///< Maximum acceptable target SDU error ratio
williamr@2
   657
		TTrafficHandlingPriority	iReqTrafficHandlingPriority;///< Requested traffic handling priority
williamr@2
   658
		TTrafficHandlingPriority	iMinTrafficHandlingPriority;///< Minimum acceptable traffic handling priority
williamr@2
   659
		TInt						iReqTransferDelay;			///< Requested transfer delay (in milliseconds)
williamr@2
   660
		TInt						iMaxTransferDelay;			///< Maximum acceptable  transfer delay (in milliseconds)
williamr@2
   661
		TBitRate					iReqGuaranteedRate;			///< Requested guaranteed bit rates on uplink and downlink
williamr@2
   662
		TBitRate					iMinGuaranteedRate;			///< Minimum acceptable guaranteed bit rates on uplink and downlink
williamr@2
   663
		};
williamr@2
   664
williamr@2
   665
	class TQoSR99_R4Negotiated : public TPacketDataConfigBase		
williamr@2
   666
	/**
williamr@2
   667
	Contains the negotiated values for the GPRS/UMTS Rel99
williamr@2
   668
	and UMTS Rel4 QoS profile.
williamr@2
   669
williamr@2
   670
	@publishedPartner
williamr@2
   671
	@released
williamr@2
   672
	*/
williamr@2
   673
		{
williamr@2
   674
	public:
williamr@2
   675
		IMPORT_C TQoSR99_R4Negotiated();
williamr@2
   676
	public:
williamr@2
   677
		TTrafficClass				iTrafficClass;				///< Negotiated traffic class
williamr@2
   678
		TDeliveryOrder				iDeliveryOrderReqd;			///< Negotiated value for sequential SDU delivery
williamr@2
   679
		TErroneousSDUDelivery		iDeliverErroneousSDU;		///< Negotiated value for erroneous SDU delivery
williamr@2
   680
		TInt						iMaxSDUSize;				///< Negotiated maximum SDU size (in octets)
williamr@2
   681
		TBitRate					iMaxRate;					///< Negotiated maximum bit rates on the uplink and downlink
williamr@2
   682
		TBitErrorRatio				iBER;						///< Negotiated target BER
williamr@2
   683
		TSDUErrorRatio				iSDUErrorRatio;				///< Negotiated target SDU error ratio
williamr@2
   684
		TTrafficHandlingPriority	iTrafficHandlingPriority;	///< Negotiated traffic handling priority
williamr@2
   685
		TInt						iTransferDelay;				///< Negotiated transfer delay (in milliseconds)
williamr@2
   686
		TBitRate					iGuaranteedRate;			///< Negotiated guaranteed bit rates on the uplink and downlink
williamr@2
   687
		};
williamr@2
   688
williamr@2
   689
williamr@2
   690
	class TQoSR5Requested : public TQoSR99_R4Requested	
williamr@2
   691
	/**
williamr@2
   692
	Contains the requested and minimum values for the 
williamr@2
   693
	UMTS/IMS 3GPP Rel5 QoS profile attributes.
williamr@2
   694
	
williamr@2
   695
	@publishedPartner
williamr@2
   696
	@released
williamr@2
   697
	*/
williamr@2
   698
		{
williamr@2
   699
	public:
williamr@2
   700
		IMPORT_C TQoSR5Requested();
williamr@2
   701
	public:	
williamr@2
   702
		/** Requested signalling indication. */
williamr@2
   703
		TBool						iSignallingIndication;			 
williamr@2
   704
		/** Requested source statistics descriptor. */
williamr@2
   705
		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;			
williamr@2
   706
		};
williamr@2
   707
williamr@2
   708
williamr@2
   709
	
williamr@2
   710
	class TQoSR5Negotiated : public TQoSR99_R4Negotiated	
williamr@2
   711
	/**
williamr@2
   712
	Contains the negotiated values for the UMTS/IMS 3GPP Rel5 QoS profile.
williamr@2
   713
williamr@2
   714
	@publishedPartner
williamr@2
   715
	@released
williamr@2
   716
	*/
williamr@2
   717
		{
williamr@2
   718
	public:
williamr@2
   719
		IMPORT_C TQoSR5Negotiated();
williamr@2
   720
	public:	
williamr@2
   721
		/** Negotiated signalling indication. */	
williamr@2
   722
		TBool						iSignallingIndication;			
williamr@2
   723
		/** Negotiated source statistics descriptor. */
williamr@2
   724
		TSourceStatisticsDescriptor	iSourceStatisticsDescriptor;	 		
williamr@2
   725
		};
williamr@2
   726
		
williamr@2
   727
	IMPORT_C		RPacketQoS();
williamr@2
   728
	IMPORT_C TInt	OpenNewQoS(RPacketContext& aPacketContext, TDes& aProfileName);
williamr@2
   729
	IMPORT_C TInt	OpenExistingQoS(RPacketContext& aPacketContext, const TDesC& aProfileName); 
williamr@2
   730
	IMPORT_C void	Close();
williamr@2
   731
williamr@2
   732
	IMPORT_C void	SetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
williamr@2
   733
	IMPORT_C void	GetProfileParameters(TRequestStatus& aStatus, TDes8& aProfile) const;
williamr@2
   734
	IMPORT_C void	GetProfileCapabilities(TRequestStatus& aStatus, TDes8& aProfileCaps) const;
williamr@2
   735
	IMPORT_C void	NotifyProfileChanged(TRequestStatus& aStatus, TDes8& aProfile) const;
williamr@2
   736
protected:
williamr@2
   737
	IMPORT_C virtual void ConstructL();
williamr@2
   738
	IMPORT_C virtual void Destruct();
williamr@2
   739
private:
williamr@2
   740
	CPacketQoSPtrHolder* iEtelPacketQoSPtrHolder;
williamr@2
   741
	};
williamr@2
   742
williamr@2
   743
#endif
williamr@2
   744