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 +