1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Header file for the 3GPP SubConnection Extension Parameters
26 #ifndef QOS3GPP_SUBCONPARAMS_H
27 #define QOS3GPP_SUBCONPARAMS_H
30 #include <comms-infras/metadata.h>
31 #include <comms-infras/metatype.h>
34 const TInt KSubCon3GPPExtParamsFactoryUid = 0x1020D460;
35 const TInt KSubConQosR99ParamsType = 1;
36 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
39 #ifdef SYMBIAN_NETWORKING_UMTSR5
40 const TInt KSubConQosR5ParamsType =3;
41 const TInt KSubConImsExtParamsType = 4;
43 // SYMBIAN_NETWORKING_UMTSR5
45 /** Constant definitions particular to the Generic Parameters. */
46 const TInt KMAuthTokenLength = 255;
47 /** Typedef for the AuthToken Holder. */
48 typedef TBuf8<KMAuthTokenLength> TAuthToken;
50 /** Provides Implementation of IP QoS Parameters
55 //SMetaDataECom must be the first in the superclasses' list
56 class CSubConQosR99ParamSet : public CSubConExtensionParameterSet
61 EUid = KSubCon3GPPExtParamsFactoryUid,
62 EId = KSubConQosR99ParamsType,
65 inline static CSubConQosR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
66 inline static CSubConQosR99ParamSet* NewL();
68 inline CSubConQosR99ParamSet();
70 inline RPacketQoS::TTrafficClass GetTrafficClass() const;
71 inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
72 inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
73 inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
74 inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
75 inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
76 inline TInt GetTransferDelay() const;
77 inline TInt GetMaxSduSize() const;
78 inline TInt GetMaxBitrateUplink() const;
79 inline TInt GetMaxBitrateDownlink() const;
80 inline TInt GetGuaBitrateUplink() const;
81 inline TInt GetGuaBitrateDownlink() const;
82 inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
83 inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
84 inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
85 inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
86 inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
87 inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
88 inline void SetTransferDelay(TInt aTransferDelay);
89 inline void SetMaxSduSize(TInt aMaxSduSize);
90 inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
91 inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
92 inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
93 inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
100 RPacketQoS::TTrafficClass iTrafficClass; // Traffic class
101 RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order
102 RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs
103 RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER
104 RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio
105 RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority
106 TInt iTransferDelay; // Transfer delay
107 TInt iMaxSduSize; // Maximum SDU size
108 TInt iMaxBitrateUplink; // Maximum bit rate for uplink
109 TInt iMaxBitrateDownlink; // Maximum bit rate for downlink
110 TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink
111 TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink
117 #ifdef SYMBIAN_NETWORKING_UMTSR5
119 /** Extension QoS Parameter Set for UMTS Release 5 */
120 class CSubConImsExtParamSet : public CSubConExtensionParameterSet
125 EUid = KSubCon3GPPExtParamsFactoryUid,
126 EId = KSubConImsExtParamsType,
129 inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
130 inline static CSubConImsExtParamSet* NewL();
131 inline CSubConImsExtParamSet();
133 // New IM CN Signalling Indicator
134 inline TBool GetImsSignallingIndicator() const;
135 inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator);
140 // IMSSignallingIndicator for raised priority of traffic
141 TBool iImsSignallingIndicator;
144 class CSubConQosR5ParamSet : public CSubConQosR99ParamSet
149 EUid = KSubCon3GPPExtParamsFactoryUid,
150 EId = KSubConQosR5ParamsType,
154 inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
155 inline static CSubConQosR5ParamSet* NewL();
156 inline CSubConQosR5ParamSet();
158 inline TBool GetSignallingIndicator() const;
159 inline void SetSignallingIndicator(TBool aSignallingIndicator);
160 inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const;
161 inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType);
167 // Source Statistics Descriptor
168 RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc;
169 TBool iSignallingIndicator;
174 // SYMBIAN_NETWORKING_UMTSR5
179 ECOM Implementation Id for SBLP Extension parameters.
186 /** Getter Function for the Components of Flow ids. */
187 inline TUint16 GetMediaComponentNumber() const;
188 inline TUint16 GetIPFlowNumber() const;
189 /** Setter Function For Flow Id Components. */
190 inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
191 inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
194 TUint16 iMediaComponentNumber;
195 TUint16 iIPFlowNumber;
198 typedef RArray<TFlowId> RFlowIdentifiers;
200 /** Extension Parameter Sets, Consise of MAT and FI(s).
201 Provides Implementation of Extension parameters of the SBLP Family.
206 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
211 EUid = KSubCon3GPPExtParamsFactoryUid,
212 EId = KSubConnSBLPR5ExtensionParamsType,
217 inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
218 inline static CSubConSBLPR5ExtensionParamSet* NewL();
220 /** Media Authorization Token setter and getter functions. */
221 inline const TAuthToken& GetMAT() const;
222 inline void SetMAT(const TAuthToken& aAuthToken);
224 /** Flow identifires setter and getter functions. */
225 inline TInt GetNumberOfFlowIds() const;
226 inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
228 /** Adding of Flow Identifires into an array. */
229 inline void AddFlowIdL(const TFlowId& aFlowId);
231 /** public constructors so that it can be accessed by factory. */
232 inline CSubConSBLPR5ExtensionParamSet();
233 inline ~CSubConSBLPR5ExtensionParamSet();
238 /** Single Media Authorization Token (MAT). */
239 TAuthToken iAuthToken;
241 /** Multiple Flow Identifiers. */
242 RFlowIdentifiers iFlowIds;
245 /** Factory used to create instances of IP SubConnection Parameters.
250 class CSubCon3GPPExtParamsFactory : public CBase
253 static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
256 #include <networking/qos3gpp_subconparams.inl>
259 // QOS3GPP_SUBCONPARAMS_H