telephonyprotocols/qosextnapi/inc/umtsextn.h
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyprotocols/qosextnapi/inc/umtsextn.h	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyprotocols/qosextnapi/inc/umtsextn.h	Thu May 06 15:10:38 2010 +0100
@@ -1,679 +1,679 @@
-// Copyright (c) 2005-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:
-// @file umtsextn.h
-// Header file for UMTS (3GPP Release 4) API
-// @internalTechnology
-// @prototype
-//
-
-#ifndef __UMTSEXTN_H__
-#define __UMTSEXTN_H__
-
-#include <e32std.h>
-#include <in_sock.h>
-#include <es_mbuf.h>
-
-#include <networking/qoslib.h>
-
-#if MM_ETEL_API
-#include "uscl_qos.h"
-#else
-#include <etelqos.h>
-#endif
-
-const TInt KPdpDataCompression		= 0x01;
-const TInt KPdpHeaderCompression	= 0x02;
-
-// Traffic class
-enum TUmtsTrafficClass
-{
-	ETrafficClassUnspecified		= RPacketQoS::ETrafficClassUnspecified,
-	ETrafficClassConversational		= RPacketQoS::ETrafficClassConversational,
-	ETrafficClassStreaming			= RPacketQoS::ETrafficClassStreaming,
-	ETrafficClassInteractive		= RPacketQoS::ETrafficClassInteractive,
-	ETrafficClassBackground			= RPacketQoS::ETrafficClassBackground
-};
-
-// Delivery order
-enum TUmtsDeliveryOrder
-{
-	EDeliveryOrderUnspecified		= RPacketQoS::EDeliveryOrderUnspecified,
-	EDeliveryOrderRequired			= RPacketQoS::EDeliveryOrderRequired,
-	EDeliveryOrderNotRequired		= RPacketQoS::EDeliveryOrderNotRequired
-};
-
-// Delivery of erroneous SDUs
-enum TUmtsErroneousSDUDelivery
-{
-	EErroneousSDUDeliveryUnspecified	= RPacketQoS::EErroneousSDUDeliveryUnspecified,
-	EErroneousSDUDeliveryRequired		= RPacketQoS::EErroneousSDUDeliveryRequired,
-	EErroneousSDUDeliveryNotRequired	= RPacketQoS::EErroneousSDUDeliveryNotRequired
-};
-
-// Residual BER
-enum TUmtsBitErrorRatio
-{
-	EBERUnspecified				= RPacketQoS::EBERUnspecified,
-	EBERFivePerHundred			= RPacketQoS::EBERFivePerHundred,
-	EBEROnePerHundred			= RPacketQoS::EBEROnePerHundred,
-	EBERFivePerThousand			= RPacketQoS::EBERFivePerThousand,
-	EBERFourPerThousand			= RPacketQoS::EBERFourPerThousand,
-	EBEROnePerThousand			= RPacketQoS::EBEROnePerThousand,
-	EBEROnePerTenThousand		= RPacketQoS::EBEROnePerTenThousand,
-	EBEROnePerHundredThousand	= RPacketQoS::EBEROnePerHundredThousand,
-	EBEROnePerMillion			= RPacketQoS::EBEROnePerMillion,
-	EBERSixPerHundredMillion	= RPacketQoS::EBERSixPerHundredMillion
-};
-
-// Error ratio
-enum TUmtsSDUErrorRatio
-{
-	ESDUErrorRatioUnspecified			= RPacketQoS::ESDUErrorRatioUnspecified,
-	ESDUErrorRatioOnePerTen				= RPacketQoS::ESDUErrorRatioOnePerTen,
-	ESDUErrorRatioOnePerHundred			= RPacketQoS::ESDUErrorRatioOnePerHundred,
-	ESDUErrorRatioSevenPerThousand		= RPacketQoS::ESDUErrorRatioSevenPerThousand,
-	ESDUErrorRatioOnePerThousand		= RPacketQoS::ESDUErrorRatioOnePerThousand,
-	ESDUErrorRatioOnePerTenThousand		= RPacketQoS::ESDUErrorRatioOnePerTenThousand,
-	ESDUErrorRatioOnePerHundredThousand	= RPacketQoS::ESDUErrorRatioOnePerHundredThousand,
-	ESDUErrorRatioOnePerMillion			= RPacketQoS::ESDUErrorRatioOnePerMillion
-};
-
-// Priority
-enum TUmtsTrafficHandlingPriority
-{
-	ETrafficPriorityUnspecified	= RPacketQoS::ETrafficPriorityUnspecified,
-	ETrafficPriority1			= RPacketQoS::ETrafficPriority1,
-	ETrafficPriority2			= RPacketQoS::ETrafficPriority2,
-	ETrafficPriority3			= RPacketQoS::ETrafficPriority3
-};
-
-enum TUmtsSourceStatisticsDescriptor	
-{
-	/** Unknown source statistics descriptor. */
-	ESourceStatisticsDescriptorUnknown	= RPacketQoS::ESourceStatisticsDescriptorUnknown,		
-	/** Speech source statistics descriptor. */
-	ESourceStatisticsDescriptorSpeech	= RPacketQoS::ESourceStatisticsDescriptorSpeech		 
-};
-
-// Delay
-const TUint KTransferDelayUnspecified	= 0;
-const TUint KTransferDelayMax			= 4100;	// 4100 ms
-
-// Max SDU size
-const TUint KMaxSDUUnspecified			= 0;
-const TUint KMaxSDUMaximum				= 1520;
-
-// Max bitrate
-const TUint KMaxBitRateUnspecified		= 0;
-const TUint KMaxBitRateMaximum			= 2048;	// 2048 kbps
-
-// Guaranteed bitrate
-const TUint KGrtdBitRateUnspecified		= 0;
-const TUint KGrtdBitRateMaximum			= 2048;	// 2048 kbps
-
-/**
- * This class contains the QoS parameters defined in 3GPP Release 4 specifications.
- * See 3GPP TS 23.107 for more information about the QoS parameters.
- *
- * @internalTechnology
- * @prototype
- */
-class TUmtsQoSParameters
-{
-	friend class CUmtsQoSPolicy;
-public:
-
-	/**
-	* Constructor
-	*/
-	IMPORT_C TUmtsQoSParameters();
-
-	/**
-	* @return Current traffic class. Defines the type of application for which the UMTS bearer service 
-	* is optimised. 
-	*/
-	IMPORT_C TUmtsTrafficClass TrafficClass() const;
-
-	/**
-	* @return Current delivery order. Indicates whether the UMTS bearer shall provide in-sequence 
-	* SDU delivery or not.
-	*/
-	IMPORT_C TUmtsDeliveryOrder DeliveryOrder() const;
-
-	/**
-	* @return Current delivery of erroneous SDUs. Indicates whether SDUs detected as erroneous 
-	* shall be delivered or discarded.
-	*/
-	IMPORT_C TUmtsErroneousSDUDelivery DeliveryOfErroneusSdu() const;
-
-	/**
-	* @return Current residual bit error ratio. Indicates the undetected bit error ratio in the 
-	* delivered SDUs. If no error detection is requested, Residual bit error ratio indicates the 
-	* bit error ratio in the delivered SDUs.
-	*/
-	IMPORT_C TUmtsBitErrorRatio ResidualBer() const;
-
-	/**
-	* @return Current SDU error ratio. Indicates the fraction of SDUs lost or detected as erroneous. 
-	* SDU error ratio is defined only for conforming traffic.
-	*/
-	IMPORT_C TUmtsSDUErrorRatio ErrorRatio() const;
-
-	/**
-	* @return Current traffic handling priority. Specifies the relative importance for handling 
-	* of all SDUs belonging to the UMTS bearer compared to the SDUs of other bearers. 
-	* This is defined only for Interactive traffic class.
-	*/
-	IMPORT_C TUmtsTrafficHandlingPriority Priority() const;
-
-	/**
-	* @return Current transfer delay. Indicates maximum delay for 95th percentile of the distribution 
-	* of delay for all delivered SDUs during the lifetime of a bearer service, where delay for an SDU 
-	* is defined as the time from a request to transfer an SDU at one SAP to its delivery at the other SAP.
-	*/
-	IMPORT_C TInt TransferDelay() const;
-
-	/**
-	* @return Current maximum SDU size. Defines the maximum allowed SDU size.
-	*/
-	IMPORT_C TInt MaxSduSize() const;
-
-	/**
-	* @return Current maximum bitrate for uplink direction. Maximum number of bits delivered by UMTS and to 
-	* UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
-	* with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
-	* bitrate and bucket size equals Maximum SDU size.
-	*/
-	IMPORT_C TInt MaxBitrateUplink() const;
-
-	/**
-	* @return Current maximum bitrate for downlink direction. Maximum number of bits delivered by UMTS and to 
-	* UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
-	* with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
-	* bitrate and bucket size equals Maximum SDU size.
-	*/
-	IMPORT_C TInt MaxBitrateDownlink() const;
-
-	/**
-	* @return Current guaranteed bitrate for uplink direction. Guaranteed number of bits delivered by UMTS at 
-	* a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
-	* period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
-	* algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
-	* For release 1999, k=1. 
-	*/
-	IMPORT_C TInt GuaranteedBitrateUplink() const;
-
-	/**
-	* @return Current guaranteed bitrate for downlink direction. Guaranteed number of bits delivered by UMTS at 
-	* a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
-	* period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
-	* algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
-	* For release 1999, k=1.
-	*/
-	IMPORT_C TInt GuaranteedBitrateDownlink() const;
-
-
-	/**
-	 * Sets the traffic class. Traffic class defines the type of application for which  
-	 * the UMTS bearer service is optimised.
-	 *
-	 * @param aTrafficClass Value to which to set the traffic class.
-	 */
-	IMPORT_C TInt SetTrafficClass(TUmtsTrafficClass aTrafficClass);
-
-	/**
-	 * Sets the delivery order. Indicates whether the UMTS bearer shall provide in-sequence 
-	 * SDU delivery or not.
-	 *
-	 * @param aDeliveryOrder Value to which to set the delivery order.
-	 */
-	IMPORT_C TInt SetDeliveryOrder(TUmtsDeliveryOrder aDeliveryOrder);
-
-	/**
-	 * Sets the delivery of erroneous SDUs.
-	 *
-	 * @param aDeliveryOfErroneousSdu Value to which to set the delivery of erroneous SDUs. Indicates 
-	 * whether SDUs detected as erroneous shall be delivered or discarded.
-	 */
-	IMPORT_C TInt SetDeliveryOfErroneusSdu(TUmtsErroneousSDUDelivery aDeliveryOfErroneousSdu);
-
-	/**
-	 * Sets the residual bit error ratio. Indicates the undetected bit error ratio in the 
-	 * delivered SDUs. If no error detection is requested, Residual bit error ratio indicates the 
-	 * bit error ratio in the delivered SDUs.
-	 *
-	 * @param aResidualBer Value to which to set the residual bit error ratio.
-	 */
-	IMPORT_C TInt SetResidualBer(TUmtsBitErrorRatio aResidualBer);
-
-
-	/**
-	 * Sets the error ratio. Indicates the fraction of SDUs lost or detected as erroneous. 
-	 * SDU error ratio is defined only for conforming traffic.
-	 *
-	 * @param aErrorRatio Value to which to set the error ratio.
-	 */
-	IMPORT_C TInt SetErrorRatio(TUmtsSDUErrorRatio aErrorRatio);
-
-	/**
-	 * Sets the traffic handling priority. Specifies the relative importance for handling 
-	 * of all SDUs belonging to the UMTS bearer compared to the SDUs of other bearers. This 
-	 * is defined only for Interactive traffic class.
-	 *
-	 * @param aPriority Value to which to set the traffic handling priority.
-	 */
-	IMPORT_C TInt SetPriority(TUmtsTrafficHandlingPriority aPriority);
-
-	/**
-	 * Sets the transfer delay. Indicates maximum delay for 95th percentile of the distribution 
-	 * of delay for all delivered SDUs during the lifetime of a bearer service, where delay for an SDU 
-	 * is defined as the time from a request to transfer an SDU at one SAP to its delivery at the other SAP.
-	 *
-	 * @param aTransferDelay Value to which to set the transfer delay.
-	 */
-	IMPORT_C TInt SetTransferDelay(TUint aTransferDelay);
-
-	/**
-	 * Sets the maximum SDU size. Defines the maximum allowed SDU size.
-	 *
-	 * @param aMaxSduSize Value to which to set the maximum SDU size.
-	 */
-	IMPORT_C TInt SetMaxSduSize(TUint aMaxSduSize);
-
-	/**
-	 * Sets the maximum bitrate for uplink direction. Maximum number of bits delivered by UMTS and to 
-	 * UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
-	 * with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
-	 * bitrate and bucket size equals Maximum SDU size.
-	 *
-	 * @param aMaxBitrate Value to which to set the maximum bitrate for uplink direction.
-	 */
-	IMPORT_C TInt SetMaxBitrateUplink(TUint aMaxBitrate);
-
-	/**
-	 * Sets the maximum bitrate for downlink direction. Maximum number of bits delivered by UMTS and to 
-	 * UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
-	 * with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
-	 * bitrate and bucket size equals Maximum SDU size.
-	 *
-	 * @param aMaxBitrate Value to which to set the maximum bitrate for downlink direction.
-	 */
-	IMPORT_C TInt SetMaxBitrateDownlink(TUint aMaxBitrate);
-
-	/**
-	 * Sets the guaranteed bitrate for uplink direction. Guaranteed number of bits delivered by UMTS at 
-	 * a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
-	 * period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
-	 * algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
-	 * For release 1999, k=1.
-	 *
-	 * @param aGuaBitrate Value to which to set the maximum SDU size.
-	 */
-	IMPORT_C TInt SetGuaranteedBitrateUplink(TUint aGuaBitrate);
-
-	/**
-	 * Sets the guaranteed bitrate for downlink direction. Guaranteed number of bits delivered by UMTS at 
-	 * a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
-	 * period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
-	 * algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
-	 * For release 1999, k=1.
-	 *
-	 * @param aGuaBitrate Value to which to set the maximum SDU size.
-	 */
-	IMPORT_C TInt SetGuaranteedBitrateDownlink(TUint aGuaBitrate);
-
-protected:
-	TUmtsTrafficClass				iTrafficClass;			// Traffic class
-	TUmtsDeliveryOrder				iDeliveryOrder;			// Delivery order
-	TUmtsErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
-	TUmtsBitErrorRatio				iResidualBer;			// Residual BER
-	TUmtsSDUErrorRatio				iErrorRatio;			// SDU error ratio
-	TUmtsTrafficHandlingPriority	iPriority;				// Traffic handling priority
-	TInt							iTransferDelay;			// Transfer delay
-	TInt							iMaxSduSize;			// Maximum SDU size
-	TInt							iMaxBitrateUplink;		// Maximum bit rate for uplink
-	TInt							iMaxBitrateDownlink;	// Maximum bit rate for downlink
-	TInt							iGuaBitrateUplink;		// Guaranteed bit rate for uplink
-	TInt							iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
-};
-
-/**
- * This class contains the negotiated QoS parameters that the network has granted.
- *
- * @internalTechnology
- * @prototype
- */
-class TNegotiatedUmtsQoSParameters : public TUmtsQoSParameters
-{
-	friend class TUmtsQoSPolicy;
-	friend class CUmtsQoSPolicy;
-public:
-
-	IMPORT_C TNegotiatedUmtsQoSParameters();
-
-    /**
-    * @return Header compression used in the PDP context. A bitmask indicationg 
-	* if header compression (KPdpHeaderCompression)	or data compression (KPdpDataCompression) is used.
-	*/
-	IMPORT_C TUint HeaderCompression() const;
-
-    /**
-    * @return Error code == KErrNone if QoS request was succesful. If error code != KErrNone,
-	* the negotiated QoS parameters have no meaning.
-	*/
-	IMPORT_C TInt ErrorCode() const;
-
-protected:
-	TUint iCompression;			// Header compression
-	TInt iErrorCode;			// Error code
-};
-
-
-
-/**
- * This is a Umts policy extension, that can be added to a CQoSParameters object.
- *
- * @internalTechnology
- * @prototype
- */
-class CUmtsQoSPolicy : public CExtensionBase
-{
-public:
-	/**
-	 * 2 phase constructor. Creates a CUmtsQoSPolicy object.
-	 * @return A pointer to CUmtsQoSPolicy object.
-	 * @exception Leaves if no memory is available.
-	*/
-	IMPORT_C static CUmtsQoSPolicy* NewL();
-
-	/**
-	 * destructor.
-	*/
-	IMPORT_C ~CUmtsQoSPolicy();
-
-	/**
-	 * Returns Umts policy extension in a descriptor. This is used by QoS API library.
-	 * @return Descriptor that contains umts policy.
-	*/
-	IMPORT_C TDesC8& Data();
-
-	/**
-	 * Parses a Umts policy extension given in a descriptor. This is used by QoS API library.
-	 * @return KErrNone if aData contains a valid Umts policy extension, otherwise KErrGeneral.
-	*/
-	IMPORT_C TInt ParseMessage(const TDesC8& aData);
-
-	/**
-	 * Creates a CUmtsQoSPolicy object. This is used by QoS API library.
-	 * @return A pointer to CUmtsQoSPolicy object.
-	 * @exception Leaves if no memory is available.
-	*/
-	IMPORT_C CExtensionBase* CreateL();
-
-	/**
-	 * Copies the parameters from aExtension object to this object. aExtension must be a CUmtsQoSPolicy 
-	 * object. If some other extension is given as a parameter, KErrArgument is returned.
-	 * @param aExtension A CUmtsQoSPolicy object that is copied into this object.
-	 * @return KErrNone, aExtension is a CUmtsQoSPolicy object, otherwise KErrArgument.
-	 */
-	IMPORT_C TInt Copy(const CExtensionBase& aExtension);
-
-	/**
-	 * Sets the requested Umts QoS parameter set.
-	 * @param aRequested Contains the requested Umts QoS parameters.
-	 */
-	IMPORT_C void SetQoSRequested(const TUmtsQoSParameters& aRequested);
-
-	/**
-	 * Sets the minimum Umts QoS parameter set.
-	 * @param aMinimum Contains the minimum Umts QoS parameters.
-	 */
-	IMPORT_C void SetQoSMinimum(const TUmtsQoSParameters& aMinimum);
-
-	/**
-	 * Gets the requested Umts QoS parameter set.
-	 * @param aRequested Requested QoS parameter set will be copied to aRequested.
-	 */
-	IMPORT_C void GetQoSRequested(TUmtsQoSParameters& aRequested) const;
-
-	/**
-	 * Gets the minimum Umts QoS parameter set.
-	 * @param aMinimum Minimum QoS parameter set will be copied to aMinimum.
-	 */
-	IMPORT_C void GetQoSMinimum(TUmtsQoSParameters& aMinimum) const;
-
-	/**
-	 * Gets the negotiated Umts QoS parameter set.
-	 * @param aNegotiated Negotiated QoS parameter set will be copied to aNegotiated.
-	 */
-	IMPORT_C void GetQoSNegotiated(TNegotiatedUmtsQoSParameters& aNegotiated) const;
-
-	/**
-	 * Sets the requested header compression value.
-	 * @param aCompression Contains the requested header compression value: a bitmask indicationg 
-	 * if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
-	 * @return KErrNone, if aCompression contains supported header compression value, 
-	 * KErrNotSupported in other case.
-	 */
-	IMPORT_C TInt SetHeaderCompression(TUint aCompression);
-
-	/**
-	 * Gets the current requested header compression value: a bitmask indicationg 
-	 * if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
-	 * @return Current requested header compression value.
-	 */
-	IMPORT_C TUint HeaderCompression() const;
-
-protected:
-	CUmtsQoSPolicy();
-	void ConstructL();
-
-private:
-	TUmtsQoSParameters iMinimum;				// Minimum QoS parameter set
-	TUmtsQoSParameters iRequested;				// Requested QoS parameter set
-	TNegotiatedUmtsQoSParameters iNegotiated;	// Negotiated QoS parameters
-	TUint iCompression;							// Header compression
-	TPtr8 iBufPtr;
-};
-
-/** 
-This class contain the 3GPP R5 Networking QoS support paramters
-with the old R99 umts parameters (supported by TUmtsQoSParameters class)
-
-@internalTechnology
-@prototype
-*/
-class TUmtsR5QoSParameters : public TUmtsQoSParameters
-{
-	friend class CUmtsR5QoSPolicy;
-public:
-
-	/**
-	Constructor
-	*/
-	IMPORT_C TUmtsR5QoSParameters();
-	
-	/**
-	Gets the current Signalling Indicator flag 
-	
-	@return current Signalling Indicator flag
-	*/
-	IMPORT_C TBool SignallingIndicator() const;
-	
-	/**
-	Gets the current Source Statistics Descriptor value
-	
-	@return current Source Statistics Descriptor value
-	*/
-	IMPORT_C TUmtsSourceStatisticsDescriptor SourceStatisticsDescriptor() const;
-	
-	/**	
-    Sets the Signalling Indicator flag
-	
-	@param aSignallingIndicator Value to which to set the Signalling Indicator flag
-	*/
-	IMPORT_C TInt SetSignallingIndicator(TBool aSignallingIndicator);
-	
-	/**	
-    Sets the Source Statistics Descriptor
-	
-	@param aSrcStatisticsDesc Value to which to set the Source Statistics Descriptor
-	*/
-	IMPORT_C TInt SetSourceStatisticsDescriptor(TUmtsSourceStatisticsDescriptor aSrcStatisticsDesc);
-
-protected:
-
-	TBool iSignallingIndicator;							// Signalling Indicator flag
-	TUmtsSourceStatisticsDescriptor iSrcStatisticsDesc; // Source Statistics Descriptor
-};
-
-/**
-This class contains the negotiated UMTS R5 QoS parameters that the network has granted.
-
-@internalTechnology
-@prototype
-*/
-class TNegotiatedUmtsR5QoSParameters : public TUmtsR5QoSParameters
-{
-	friend class CUmtsR5QoSPolicy;
-public:
-
-	IMPORT_C TNegotiatedUmtsR5QoSParameters();
-	
-	/**
-    @return Header compression used in the PDP context. A bitmask indicationg 
-	if header compression (KPdpHeaderCompression)	or data compression (KPdpDataCompression) is used.
-	*/
-	IMPORT_C TUint HeaderCompression() const;
-	
-	/**
-    @return Error code == KErrNone if QoS request was succesful. If error code != KErrNone,
-	the negotiated QoS parameters have no meaning.
-	*/
-	IMPORT_C TInt ErrorCode() const;
-
-protected:
-	TUint iCompression;			// Header compression
-	TInt iErrorCode;			// Error code
-};
-
-
-/** 
-This is the UMTS R5 policy extension. The UMTS R5 policy can be extended by adding the 
-CSubConIMSExtensionParamSet object at the client side
-
-@internalTechnology
-@prototype
-*/
-class CUmtsR5QoSPolicy : public CExtensionBase
-{
-public:
-	
-	/** Two phase constructor. Creates a CUmtsR5QoSPolicy object.
-	
-	@return A pointer to CUmtsR5QoSPolicy object.
-	@exception Leaves if no memory is available.
-	*/
-	IMPORT_C static CUmtsR5QoSPolicy* NewL();
-	
-	/** destructor.
-	*/
-	IMPORT_C ~CUmtsR5QoSPolicy();
-	
-	/** Returns Umts policy r5 extension in a descriptor. This is used by ipscpr.
-	
-	@return Descriptor that contains umts r5 policy.
-	*/
-	IMPORT_C TDesC8& Data();
-	
-	/** Parses a Umts r5 policy extension given in a descriptor. This is used by ipscpr.
-	
-	@return KErrNone if aData contains a valid Umts r5 policy extension, otherwise KErrGeneral.
-	*/
-	IMPORT_C TInt ParseMessage(const TDesC8& aData);
-	
-	/** Creates a CUmtsR5QoSPolicy object. This is used by ipscpr.
-	
-	@return A pointer to CUmtsR5QoSPolicy object.
-	@exception Leaves if no memory is available.
-	*/
-	IMPORT_C CExtensionBase* CreateL();
-	
-	/** Copies the parameters from aExtension object to this object. aExtension must be a CUmtsR5QoSPolicy 
-	object. If some other extension is given as a parameter, KErrArgument is returned.
-	
-	@param aExtension A CUmtsR5QoSPolicy object that is copied into this object.
-	@return KErrNone, aExtension is a CUmtsR5QoSPolicy object, otherwise KErrArgument.
-	*/
-	IMPORT_C TInt Copy(const CExtensionBase& aExtension);
-	
-	/** Sets the requested Umts r5 QoS parameter set.
-	
-	@param aRequested Contains the requested Umts r5 QoS parameters.
-	*/
-	IMPORT_C void SetQoSRequested(const TUmtsR5QoSParameters& aRequested);
-	
-	/** Sets the minimum Umts r5 QoS parameter set.
-	
-	@param aMinimum Contains the minimum Umts r5 QoS parameters.
-	*/
-	IMPORT_C void SetQoSMinimum(const TUmtsR5QoSParameters& aMinimum);
-	
-	/** Gets the requested Umts r5 QoS parameter set.
-	
-	@param aRequested Requested r5 QoS parameter set will be copied to aRequested.
-	*/
-	IMPORT_C void GetQoSRequested(TUmtsR5QoSParameters& aRequested) const;
-	
-	/** Gets the minimum Umts r5 QoS parameter set.
-	
-	@param aMinimum Minimum r5 QoS parameter set will be copied to aMinimum.
-	*/
-	IMPORT_C void GetQoSMinimum(TUmtsR5QoSParameters& aMinimum) const;
-	
-	/** Gets the negotiated Umts r5 QoS parameter set.
-	
-	@param aNegotiated Negotiated r5 QoS parameter set will be copied to aNegotiated.
-	*/
-	IMPORT_C void GetQoSNegotiated(TNegotiatedUmtsR5QoSParameters& aNegotiated) const;
-	
-	/** Sets the requested header compression value.
-    
-    @param aCompression Contains the requested header compression value: a bitmask indicationg 
-	if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
-	@return KErrNone, if aCompression contains supported header compression value, 
-	KErrNotSupported in other case.
-	*/
-	IMPORT_C TInt SetHeaderCompression(TUint aCompression);
-	
-    /** Gets the current requested header compression value: a bitmask indicationg 
-	if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
-	
-	@return Current requested header compression value.
-	*/
-	IMPORT_C TUint HeaderCompression() const;
-
-protected:
-	CUmtsR5QoSPolicy();
-	void ConstructL();
-
-private:
-	TUmtsR5QoSParameters iMinimum;				// Minimum QoS parameter set
-	TUmtsR5QoSParameters iRequested;			// Requested QoS parameter set
-	TNegotiatedUmtsR5QoSParameters iNegotiated;	// Negotiated QoS parameters
-	TUint iCompression;							// Header compression
-	TPtr8 iBufPtr;
-};
-
-#endif // __UMTSEXTN_H__
+// Copyright (c) 2005-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:
+// @file umtsextn.h
+// Header file for UMTS (3GPP Release 4) API
+// @internalTechnology
+// @prototype
+//
+
+#ifndef __UMTSEXTN_H__
+#define __UMTSEXTN_H__
+
+#include <e32std.h>
+#include <in_sock.h>
+#include <es_mbuf.h>
+
+#include <networking/qoslib.h>
+
+#if MM_ETEL_API
+#include "uscl_qos.h"
+#else
+#include <etelqos.h>
+#endif
+
+const TInt KPdpDataCompression		= 0x01;
+const TInt KPdpHeaderCompression	= 0x02;
+
+// Traffic class
+enum TUmtsTrafficClass
+{
+	ETrafficClassUnspecified		= RPacketQoS::ETrafficClassUnspecified,
+	ETrafficClassConversational		= RPacketQoS::ETrafficClassConversational,
+	ETrafficClassStreaming			= RPacketQoS::ETrafficClassStreaming,
+	ETrafficClassInteractive		= RPacketQoS::ETrafficClassInteractive,
+	ETrafficClassBackground			= RPacketQoS::ETrafficClassBackground
+};
+
+// Delivery order
+enum TUmtsDeliveryOrder
+{
+	EDeliveryOrderUnspecified		= RPacketQoS::EDeliveryOrderUnspecified,
+	EDeliveryOrderRequired			= RPacketQoS::EDeliveryOrderRequired,
+	EDeliveryOrderNotRequired		= RPacketQoS::EDeliveryOrderNotRequired
+};
+
+// Delivery of erroneous SDUs
+enum TUmtsErroneousSDUDelivery
+{
+	EErroneousSDUDeliveryUnspecified	= RPacketQoS::EErroneousSDUDeliveryUnspecified,
+	EErroneousSDUDeliveryRequired		= RPacketQoS::EErroneousSDUDeliveryRequired,
+	EErroneousSDUDeliveryNotRequired	= RPacketQoS::EErroneousSDUDeliveryNotRequired
+};
+
+// Residual BER
+enum TUmtsBitErrorRatio
+{
+	EBERUnspecified				= RPacketQoS::EBERUnspecified,
+	EBERFivePerHundred			= RPacketQoS::EBERFivePerHundred,
+	EBEROnePerHundred			= RPacketQoS::EBEROnePerHundred,
+	EBERFivePerThousand			= RPacketQoS::EBERFivePerThousand,
+	EBERFourPerThousand			= RPacketQoS::EBERFourPerThousand,
+	EBEROnePerThousand			= RPacketQoS::EBEROnePerThousand,
+	EBEROnePerTenThousand		= RPacketQoS::EBEROnePerTenThousand,
+	EBEROnePerHundredThousand	= RPacketQoS::EBEROnePerHundredThousand,
+	EBEROnePerMillion			= RPacketQoS::EBEROnePerMillion,
+	EBERSixPerHundredMillion	= RPacketQoS::EBERSixPerHundredMillion
+};
+
+// Error ratio
+enum TUmtsSDUErrorRatio
+{
+	ESDUErrorRatioUnspecified			= RPacketQoS::ESDUErrorRatioUnspecified,
+	ESDUErrorRatioOnePerTen				= RPacketQoS::ESDUErrorRatioOnePerTen,
+	ESDUErrorRatioOnePerHundred			= RPacketQoS::ESDUErrorRatioOnePerHundred,
+	ESDUErrorRatioSevenPerThousand		= RPacketQoS::ESDUErrorRatioSevenPerThousand,
+	ESDUErrorRatioOnePerThousand		= RPacketQoS::ESDUErrorRatioOnePerThousand,
+	ESDUErrorRatioOnePerTenThousand		= RPacketQoS::ESDUErrorRatioOnePerTenThousand,
+	ESDUErrorRatioOnePerHundredThousand	= RPacketQoS::ESDUErrorRatioOnePerHundredThousand,
+	ESDUErrorRatioOnePerMillion			= RPacketQoS::ESDUErrorRatioOnePerMillion
+};
+
+// Priority
+enum TUmtsTrafficHandlingPriority
+{
+	ETrafficPriorityUnspecified	= RPacketQoS::ETrafficPriorityUnspecified,
+	ETrafficPriority1			= RPacketQoS::ETrafficPriority1,
+	ETrafficPriority2			= RPacketQoS::ETrafficPriority2,
+	ETrafficPriority3			= RPacketQoS::ETrafficPriority3
+};
+
+enum TUmtsSourceStatisticsDescriptor	
+{
+	/** Unknown source statistics descriptor. */
+	ESourceStatisticsDescriptorUnknown	= RPacketQoS::ESourceStatisticsDescriptorUnknown,		
+	/** Speech source statistics descriptor. */
+	ESourceStatisticsDescriptorSpeech	= RPacketQoS::ESourceStatisticsDescriptorSpeech		 
+};
+
+// Delay
+const TUint KTransferDelayUnspecified	= 0;
+const TUint KTransferDelayMax			= 4100;	// 4100 ms
+
+// Max SDU size
+const TUint KMaxSDUUnspecified			= 0;
+const TUint KMaxSDUMaximum				= 1520;
+
+// Max bitrate
+const TUint KMaxBitRateUnspecified		= 0;
+const TUint KMaxBitRateMaximum			= 2048;	// 2048 kbps
+
+// Guaranteed bitrate
+const TUint KGrtdBitRateUnspecified		= 0;
+const TUint KGrtdBitRateMaximum			= 2048;	// 2048 kbps
+
+/**
+ * This class contains the QoS parameters defined in 3GPP Release 4 specifications.
+ * See 3GPP TS 23.107 for more information about the QoS parameters.
+ *
+ * @internalTechnology
+ * @prototype
+ */
+class TUmtsQoSParameters
+{
+	friend class CUmtsQoSPolicy;
+public:
+
+	/**
+	* Constructor
+	*/
+	IMPORT_C TUmtsQoSParameters();
+
+	/**
+	* @return Current traffic class. Defines the type of application for which the UMTS bearer service 
+	* is optimised. 
+	*/
+	IMPORT_C TUmtsTrafficClass TrafficClass() const;
+
+	/**
+	* @return Current delivery order. Indicates whether the UMTS bearer shall provide in-sequence 
+	* SDU delivery or not.
+	*/
+	IMPORT_C TUmtsDeliveryOrder DeliveryOrder() const;
+
+	/**
+	* @return Current delivery of erroneous SDUs. Indicates whether SDUs detected as erroneous 
+	* shall be delivered or discarded.
+	*/
+	IMPORT_C TUmtsErroneousSDUDelivery DeliveryOfErroneusSdu() const;
+
+	/**
+	* @return Current residual bit error ratio. Indicates the undetected bit error ratio in the 
+	* delivered SDUs. If no error detection is requested, Residual bit error ratio indicates the 
+	* bit error ratio in the delivered SDUs.
+	*/
+	IMPORT_C TUmtsBitErrorRatio ResidualBer() const;
+
+	/**
+	* @return Current SDU error ratio. Indicates the fraction of SDUs lost or detected as erroneous. 
+	* SDU error ratio is defined only for conforming traffic.
+	*/
+	IMPORT_C TUmtsSDUErrorRatio ErrorRatio() const;
+
+	/**
+	* @return Current traffic handling priority. Specifies the relative importance for handling 
+	* of all SDUs belonging to the UMTS bearer compared to the SDUs of other bearers. 
+	* This is defined only for Interactive traffic class.
+	*/
+	IMPORT_C TUmtsTrafficHandlingPriority Priority() const;
+
+	/**
+	* @return Current transfer delay. Indicates maximum delay for 95th percentile of the distribution 
+	* of delay for all delivered SDUs during the lifetime of a bearer service, where delay for an SDU 
+	* is defined as the time from a request to transfer an SDU at one SAP to its delivery at the other SAP.
+	*/
+	IMPORT_C TInt TransferDelay() const;
+
+	/**
+	* @return Current maximum SDU size. Defines the maximum allowed SDU size.
+	*/
+	IMPORT_C TInt MaxSduSize() const;
+
+	/**
+	* @return Current maximum bitrate for uplink direction. Maximum number of bits delivered by UMTS and to 
+	* UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
+	* with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
+	* bitrate and bucket size equals Maximum SDU size.
+	*/
+	IMPORT_C TInt MaxBitrateUplink() const;
+
+	/**
+	* @return Current maximum bitrate for downlink direction. Maximum number of bits delivered by UMTS and to 
+	* UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
+	* with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
+	* bitrate and bucket size equals Maximum SDU size.
+	*/
+	IMPORT_C TInt MaxBitrateDownlink() const;
+
+	/**
+	* @return Current guaranteed bitrate for uplink direction. Guaranteed number of bits delivered by UMTS at 
+	* a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
+	* period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
+	* algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
+	* For release 1999, k=1. 
+	*/
+	IMPORT_C TInt GuaranteedBitrateUplink() const;
+
+	/**
+	* @return Current guaranteed bitrate for downlink direction. Guaranteed number of bits delivered by UMTS at 
+	* a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
+	* period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
+	* algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
+	* For release 1999, k=1.
+	*/
+	IMPORT_C TInt GuaranteedBitrateDownlink() const;
+
+
+	/**
+	 * Sets the traffic class. Traffic class defines the type of application for which  
+	 * the UMTS bearer service is optimised.
+	 *
+	 * @param aTrafficClass Value to which to set the traffic class.
+	 */
+	IMPORT_C TInt SetTrafficClass(TUmtsTrafficClass aTrafficClass);
+
+	/**
+	 * Sets the delivery order. Indicates whether the UMTS bearer shall provide in-sequence 
+	 * SDU delivery or not.
+	 *
+	 * @param aDeliveryOrder Value to which to set the delivery order.
+	 */
+	IMPORT_C TInt SetDeliveryOrder(TUmtsDeliveryOrder aDeliveryOrder);
+
+	/**
+	 * Sets the delivery of erroneous SDUs.
+	 *
+	 * @param aDeliveryOfErroneousSdu Value to which to set the delivery of erroneous SDUs. Indicates 
+	 * whether SDUs detected as erroneous shall be delivered or discarded.
+	 */
+	IMPORT_C TInt SetDeliveryOfErroneusSdu(TUmtsErroneousSDUDelivery aDeliveryOfErroneousSdu);
+
+	/**
+	 * Sets the residual bit error ratio. Indicates the undetected bit error ratio in the 
+	 * delivered SDUs. If no error detection is requested, Residual bit error ratio indicates the 
+	 * bit error ratio in the delivered SDUs.
+	 *
+	 * @param aResidualBer Value to which to set the residual bit error ratio.
+	 */
+	IMPORT_C TInt SetResidualBer(TUmtsBitErrorRatio aResidualBer);
+
+
+	/**
+	 * Sets the error ratio. Indicates the fraction of SDUs lost or detected as erroneous. 
+	 * SDU error ratio is defined only for conforming traffic.
+	 *
+	 * @param aErrorRatio Value to which to set the error ratio.
+	 */
+	IMPORT_C TInt SetErrorRatio(TUmtsSDUErrorRatio aErrorRatio);
+
+	/**
+	 * Sets the traffic handling priority. Specifies the relative importance for handling 
+	 * of all SDUs belonging to the UMTS bearer compared to the SDUs of other bearers. This 
+	 * is defined only for Interactive traffic class.
+	 *
+	 * @param aPriority Value to which to set the traffic handling priority.
+	 */
+	IMPORT_C TInt SetPriority(TUmtsTrafficHandlingPriority aPriority);
+
+	/**
+	 * Sets the transfer delay. Indicates maximum delay for 95th percentile of the distribution 
+	 * of delay for all delivered SDUs during the lifetime of a bearer service, where delay for an SDU 
+	 * is defined as the time from a request to transfer an SDU at one SAP to its delivery at the other SAP.
+	 *
+	 * @param aTransferDelay Value to which to set the transfer delay.
+	 */
+	IMPORT_C TInt SetTransferDelay(TUint aTransferDelay);
+
+	/**
+	 * Sets the maximum SDU size. Defines the maximum allowed SDU size.
+	 *
+	 * @param aMaxSduSize Value to which to set the maximum SDU size.
+	 */
+	IMPORT_C TInt SetMaxSduSize(TUint aMaxSduSize);
+
+	/**
+	 * Sets the maximum bitrate for uplink direction. Maximum number of bits delivered by UMTS and to 
+	 * UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
+	 * with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
+	 * bitrate and bucket size equals Maximum SDU size.
+	 *
+	 * @param aMaxBitrate Value to which to set the maximum bitrate for uplink direction.
+	 */
+	IMPORT_C TInt SetMaxBitrateUplink(TUint aMaxBitrate);
+
+	/**
+	 * Sets the maximum bitrate for downlink direction. Maximum number of bits delivered by UMTS and to 
+	 * UMTS at a SAP within a period of time, divided by the duration of the period. The traffic is conformant 
+	 * with Maximum bitrate as long as it follows a token bucket algorithm where token rate equals Maximum 
+	 * bitrate and bucket size equals Maximum SDU size.
+	 *
+	 * @param aMaxBitrate Value to which to set the maximum bitrate for downlink direction.
+	 */
+	IMPORT_C TInt SetMaxBitrateDownlink(TUint aMaxBitrate);
+
+	/**
+	 * Sets the guaranteed bitrate for uplink direction. Guaranteed number of bits delivered by UMTS at 
+	 * a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
+	 * period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
+	 * algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
+	 * For release 1999, k=1.
+	 *
+	 * @param aGuaBitrate Value to which to set the maximum SDU size.
+	 */
+	IMPORT_C TInt SetGuaranteedBitrateUplink(TUint aGuaBitrate);
+
+	/**
+	 * Sets the guaranteed bitrate for downlink direction. Guaranteed number of bits delivered by UMTS at 
+	 * a SAP within a period of time (provided that there is data to deliver), divided by the duration of the 
+	 * period. The traffic is conformant with the guaranteed bitrate as long as it follows a token bucket 
+	 * algorithm where token rate equals Guaranteed bitrate and bucket size equals k*Maximum SDU size. 
+	 * For release 1999, k=1.
+	 *
+	 * @param aGuaBitrate Value to which to set the maximum SDU size.
+	 */
+	IMPORT_C TInt SetGuaranteedBitrateDownlink(TUint aGuaBitrate);
+
+protected:
+	TUmtsTrafficClass				iTrafficClass;			// Traffic class
+	TUmtsDeliveryOrder				iDeliveryOrder;			// Delivery order
+	TUmtsErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
+	TUmtsBitErrorRatio				iResidualBer;			// Residual BER
+	TUmtsSDUErrorRatio				iErrorRatio;			// SDU error ratio
+	TUmtsTrafficHandlingPriority	iPriority;				// Traffic handling priority
+	TInt							iTransferDelay;			// Transfer delay
+	TInt							iMaxSduSize;			// Maximum SDU size
+	TInt							iMaxBitrateUplink;		// Maximum bit rate for uplink
+	TInt							iMaxBitrateDownlink;	// Maximum bit rate for downlink
+	TInt							iGuaBitrateUplink;		// Guaranteed bit rate for uplink
+	TInt							iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
+};
+
+/**
+ * This class contains the negotiated QoS parameters that the network has granted.
+ *
+ * @internalTechnology
+ * @prototype
+ */
+class TNegotiatedUmtsQoSParameters : public TUmtsQoSParameters
+{
+	friend class TUmtsQoSPolicy;
+	friend class CUmtsQoSPolicy;
+public:
+
+	IMPORT_C TNegotiatedUmtsQoSParameters();
+
+    /**
+    * @return Header compression used in the PDP context. A bitmask indicationg 
+	* if header compression (KPdpHeaderCompression)	or data compression (KPdpDataCompression) is used.
+	*/
+	IMPORT_C TUint HeaderCompression() const;
+
+    /**
+    * @return Error code == KErrNone if QoS request was succesful. If error code != KErrNone,
+	* the negotiated QoS parameters have no meaning.
+	*/
+	IMPORT_C TInt ErrorCode() const;
+
+protected:
+	TUint iCompression;			// Header compression
+	TInt iErrorCode;			// Error code
+};
+
+
+
+/**
+ * This is a Umts policy extension, that can be added to a CQoSParameters object.
+ *
+ * @internalTechnology
+ * @prototype
+ */
+class CUmtsQoSPolicy : public CExtensionBase
+{
+public:
+	/**
+	 * 2 phase constructor. Creates a CUmtsQoSPolicy object.
+	 * @return A pointer to CUmtsQoSPolicy object.
+	 * @exception Leaves if no memory is available.
+	*/
+	IMPORT_C static CUmtsQoSPolicy* NewL();
+
+	/**
+	 * destructor.
+	*/
+	IMPORT_C ~CUmtsQoSPolicy();
+
+	/**
+	 * Returns Umts policy extension in a descriptor. This is used by QoS API library.
+	 * @return Descriptor that contains umts policy.
+	*/
+	IMPORT_C TDesC8& Data();
+
+	/**
+	 * Parses a Umts policy extension given in a descriptor. This is used by QoS API library.
+	 * @return KErrNone if aData contains a valid Umts policy extension, otherwise KErrGeneral.
+	*/
+	IMPORT_C TInt ParseMessage(const TDesC8& aData);
+
+	/**
+	 * Creates a CUmtsQoSPolicy object. This is used by QoS API library.
+	 * @return A pointer to CUmtsQoSPolicy object.
+	 * @exception Leaves if no memory is available.
+	*/
+	IMPORT_C CExtensionBase* CreateL();
+
+	/**
+	 * Copies the parameters from aExtension object to this object. aExtension must be a CUmtsQoSPolicy 
+	 * object. If some other extension is given as a parameter, KErrArgument is returned.
+	 * @param aExtension A CUmtsQoSPolicy object that is copied into this object.
+	 * @return KErrNone, aExtension is a CUmtsQoSPolicy object, otherwise KErrArgument.
+	 */
+	IMPORT_C TInt Copy(const CExtensionBase& aExtension);
+
+	/**
+	 * Sets the requested Umts QoS parameter set.
+	 * @param aRequested Contains the requested Umts QoS parameters.
+	 */
+	IMPORT_C void SetQoSRequested(const TUmtsQoSParameters& aRequested);
+
+	/**
+	 * Sets the minimum Umts QoS parameter set.
+	 * @param aMinimum Contains the minimum Umts QoS parameters.
+	 */
+	IMPORT_C void SetQoSMinimum(const TUmtsQoSParameters& aMinimum);
+
+	/**
+	 * Gets the requested Umts QoS parameter set.
+	 * @param aRequested Requested QoS parameter set will be copied to aRequested.
+	 */
+	IMPORT_C void GetQoSRequested(TUmtsQoSParameters& aRequested) const;
+
+	/**
+	 * Gets the minimum Umts QoS parameter set.
+	 * @param aMinimum Minimum QoS parameter set will be copied to aMinimum.
+	 */
+	IMPORT_C void GetQoSMinimum(TUmtsQoSParameters& aMinimum) const;
+
+	/**
+	 * Gets the negotiated Umts QoS parameter set.
+	 * @param aNegotiated Negotiated QoS parameter set will be copied to aNegotiated.
+	 */
+	IMPORT_C void GetQoSNegotiated(TNegotiatedUmtsQoSParameters& aNegotiated) const;
+
+	/**
+	 * Sets the requested header compression value.
+	 * @param aCompression Contains the requested header compression value: a bitmask indicationg 
+	 * if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
+	 * @return KErrNone, if aCompression contains supported header compression value, 
+	 * KErrNotSupported in other case.
+	 */
+	IMPORT_C TInt SetHeaderCompression(TUint aCompression);
+
+	/**
+	 * Gets the current requested header compression value: a bitmask indicationg 
+	 * if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
+	 * @return Current requested header compression value.
+	 */
+	IMPORT_C TUint HeaderCompression() const;
+
+protected:
+	CUmtsQoSPolicy();
+	void ConstructL();
+
+private:
+	TUmtsQoSParameters iMinimum;				// Minimum QoS parameter set
+	TUmtsQoSParameters iRequested;				// Requested QoS parameter set
+	TNegotiatedUmtsQoSParameters iNegotiated;	// Negotiated QoS parameters
+	TUint iCompression;							// Header compression
+	TPtr8 iBufPtr;
+};
+
+/** 
+This class contain the 3GPP R5 Networking QoS support paramters
+with the old R99 umts parameters (supported by TUmtsQoSParameters class)
+
+@internalTechnology
+@prototype
+*/
+class TUmtsR5QoSParameters : public TUmtsQoSParameters
+{
+	friend class CUmtsR5QoSPolicy;
+public:
+
+	/**
+	Constructor
+	*/
+	IMPORT_C TUmtsR5QoSParameters();
+	
+	/**
+	Gets the current Signalling Indicator flag 
+	
+	@return current Signalling Indicator flag
+	*/
+	IMPORT_C TBool SignallingIndicator() const;
+	
+	/**
+	Gets the current Source Statistics Descriptor value
+	
+	@return current Source Statistics Descriptor value
+	*/
+	IMPORT_C TUmtsSourceStatisticsDescriptor SourceStatisticsDescriptor() const;
+	
+	/**	
+    Sets the Signalling Indicator flag
+	
+	@param aSignallingIndicator Value to which to set the Signalling Indicator flag
+	*/
+	IMPORT_C TInt SetSignallingIndicator(TBool aSignallingIndicator);
+	
+	/**	
+    Sets the Source Statistics Descriptor
+	
+	@param aSrcStatisticsDesc Value to which to set the Source Statistics Descriptor
+	*/
+	IMPORT_C TInt SetSourceStatisticsDescriptor(TUmtsSourceStatisticsDescriptor aSrcStatisticsDesc);
+
+protected:
+
+	TBool iSignallingIndicator;							// Signalling Indicator flag
+	TUmtsSourceStatisticsDescriptor iSrcStatisticsDesc; // Source Statistics Descriptor
+};
+
+/**
+This class contains the negotiated UMTS R5 QoS parameters that the network has granted.
+
+@internalTechnology
+@prototype
+*/
+class TNegotiatedUmtsR5QoSParameters : public TUmtsR5QoSParameters
+{
+	friend class CUmtsR5QoSPolicy;
+public:
+
+	IMPORT_C TNegotiatedUmtsR5QoSParameters();
+	
+	/**
+    @return Header compression used in the PDP context. A bitmask indicationg 
+	if header compression (KPdpHeaderCompression)	or data compression (KPdpDataCompression) is used.
+	*/
+	IMPORT_C TUint HeaderCompression() const;
+	
+	/**
+    @return Error code == KErrNone if QoS request was succesful. If error code != KErrNone,
+	the negotiated QoS parameters have no meaning.
+	*/
+	IMPORT_C TInt ErrorCode() const;
+
+protected:
+	TUint iCompression;			// Header compression
+	TInt iErrorCode;			// Error code
+};
+
+
+/** 
+This is the UMTS R5 policy extension. The UMTS R5 policy can be extended by adding the 
+CSubConIMSExtensionParamSet object at the client side
+
+@internalTechnology
+@prototype
+*/
+class CUmtsR5QoSPolicy : public CExtensionBase
+{
+public:
+	
+	/** Two phase constructor. Creates a CUmtsR5QoSPolicy object.
+	
+	@return A pointer to CUmtsR5QoSPolicy object.
+	@exception Leaves if no memory is available.
+	*/
+	IMPORT_C static CUmtsR5QoSPolicy* NewL();
+	
+	/** destructor.
+	*/
+	IMPORT_C ~CUmtsR5QoSPolicy();
+	
+	/** Returns Umts policy r5 extension in a descriptor. This is used by ipscpr.
+	
+	@return Descriptor that contains umts r5 policy.
+	*/
+	IMPORT_C TDesC8& Data();
+	
+	/** Parses a Umts r5 policy extension given in a descriptor. This is used by ipscpr.
+	
+	@return KErrNone if aData contains a valid Umts r5 policy extension, otherwise KErrGeneral.
+	*/
+	IMPORT_C TInt ParseMessage(const TDesC8& aData);
+	
+	/** Creates a CUmtsR5QoSPolicy object. This is used by ipscpr.
+	
+	@return A pointer to CUmtsR5QoSPolicy object.
+	@exception Leaves if no memory is available.
+	*/
+	IMPORT_C CExtensionBase* CreateL();
+	
+	/** Copies the parameters from aExtension object to this object. aExtension must be a CUmtsR5QoSPolicy 
+	object. If some other extension is given as a parameter, KErrArgument is returned.
+	
+	@param aExtension A CUmtsR5QoSPolicy object that is copied into this object.
+	@return KErrNone, aExtension is a CUmtsR5QoSPolicy object, otherwise KErrArgument.
+	*/
+	IMPORT_C TInt Copy(const CExtensionBase& aExtension);
+	
+	/** Sets the requested Umts r5 QoS parameter set.
+	
+	@param aRequested Contains the requested Umts r5 QoS parameters.
+	*/
+	IMPORT_C void SetQoSRequested(const TUmtsR5QoSParameters& aRequested);
+	
+	/** Sets the minimum Umts r5 QoS parameter set.
+	
+	@param aMinimum Contains the minimum Umts r5 QoS parameters.
+	*/
+	IMPORT_C void SetQoSMinimum(const TUmtsR5QoSParameters& aMinimum);
+	
+	/** Gets the requested Umts r5 QoS parameter set.
+	
+	@param aRequested Requested r5 QoS parameter set will be copied to aRequested.
+	*/
+	IMPORT_C void GetQoSRequested(TUmtsR5QoSParameters& aRequested) const;
+	
+	/** Gets the minimum Umts r5 QoS parameter set.
+	
+	@param aMinimum Minimum r5 QoS parameter set will be copied to aMinimum.
+	*/
+	IMPORT_C void GetQoSMinimum(TUmtsR5QoSParameters& aMinimum) const;
+	
+	/** Gets the negotiated Umts r5 QoS parameter set.
+	
+	@param aNegotiated Negotiated r5 QoS parameter set will be copied to aNegotiated.
+	*/
+	IMPORT_C void GetQoSNegotiated(TNegotiatedUmtsR5QoSParameters& aNegotiated) const;
+	
+	/** Sets the requested header compression value.
+    
+    @param aCompression Contains the requested header compression value: a bitmask indicationg 
+	if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
+	@return KErrNone, if aCompression contains supported header compression value, 
+	KErrNotSupported in other case.
+	*/
+	IMPORT_C TInt SetHeaderCompression(TUint aCompression);
+	
+    /** Gets the current requested header compression value: a bitmask indicationg 
+	if header compression (KPdpHeaderCompression) or data compression (KPdpDataCompression) is used.
+	
+	@return Current requested header compression value.
+	*/
+	IMPORT_C TUint HeaderCompression() const;
+
+protected:
+	CUmtsR5QoSPolicy();
+	void ConstructL();
+
+private:
+	TUmtsR5QoSParameters iMinimum;				// Minimum QoS parameter set
+	TUmtsR5QoSParameters iRequested;			// Requested QoS parameter set
+	TNegotiatedUmtsR5QoSParameters iNegotiated;	// Negotiated QoS parameters
+	TUint iCompression;							// Header compression
+	TPtr8 iBufPtr;
+};
+
+#endif // __UMTSEXTN_H__