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