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