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 "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Header file for the 3GPP SubConnection Extension Parameters
25 #ifndef QOS3GPP_SUBCONPARAMS_H
26 #define QOS3GPP_SUBCONPARAMS_H
29 #include <comms-infras/metadata.h>
30 #include <comms-infras/metatype.h>
32 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
35 #include <eteldefaultqos.h>
37 #include <comms-infras/es_parameterfamily.h>
39 const TInt KSubCon3GPPExtParamsFactoryUid = 0x1020D460;
40 const TInt KSubConQosR99ParamsType = 1;
41 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
44 #ifdef SYMBIAN_NETWORKING_UMTSR5
45 const TInt KSubConQosR5ParamsType =3;
46 const TInt KSubConImsExtParamsType = 4;
48 // SYMBIAN_NETWORKING_UMTSR5
50 /** Constant definitions particular to the Generic Parameters. */
51 const TInt KMAuthTokenLength = 255;
52 /** Typedef for the AuthToken Holder. */
53 typedef TBuf8<KMAuthTokenLength> TAuthToken;
55 /** Provides Implementation of IP QoS Parameters
60 //SMetaDataECom must be the first in the superclasses' list
61 class CSubConQosR99ParamSet : public CSubConExtensionParameterSet
66 EUid = KSubCon3GPPExtParamsFactoryUid,
67 EId = KSubConQosR99ParamsType,
70 inline static CSubConQosR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
71 inline static CSubConQosR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
72 inline static CSubConQosR99ParamSet* NewL();
74 inline CSubConQosR99ParamSet();
76 inline RPacketQoS::TTrafficClass GetTrafficClass() const;
77 inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
78 inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
79 inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
80 inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
81 inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
82 inline TInt GetTransferDelay() const;
83 inline TInt GetMaxSduSize() const;
84 inline TInt GetMaxBitrateUplink() const;
85 inline TInt GetMaxBitrateDownlink() const;
86 inline TInt GetGuaBitrateUplink() const;
87 inline TInt GetGuaBitrateDownlink() const;
88 inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
89 inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
90 inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
91 inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
92 inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
93 inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
94 inline void SetTransferDelay(TInt aTransferDelay);
95 inline void SetMaxSduSize(TInt aMaxSduSize);
96 inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
97 inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
98 inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
99 inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
106 RPacketQoS::TTrafficClass iTrafficClass; // Traffic class
107 RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order
108 RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs
109 RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER
110 RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio
111 RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority
112 TInt iTransferDelay; // Transfer delay
113 TInt iMaxSduSize; // Maximum SDU size
114 TInt iMaxBitrateUplink; // Maximum bit rate for uplink
115 TInt iMaxBitrateDownlink; // Maximum bit rate for downlink
116 TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink
117 TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink
123 #ifdef SYMBIAN_NETWORKING_UMTSR5
125 /** Extension QoS Parameter Set for UMTS Release 5 */
127 class CSubConImsExtParamSet : public CSubConExtensionParameterSet
132 EUid = KSubCon3GPPExtParamsFactoryUid,
133 EId = KSubConImsExtParamsType,
136 inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
137 inline static CSubConImsExtParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType);
138 inline static CSubConImsExtParamSet* NewL();
139 inline CSubConImsExtParamSet();
141 // New IM CN Signalling Indicator
142 inline TBool GetImsSignallingIndicator() const;
143 inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator);
148 // IMSSignallingIndicator for raised priority of traffic
149 TBool iImsSignallingIndicator;
152 class CSubConQosR5ParamSet : public CSubConQosR99ParamSet
157 EUid = KSubCon3GPPExtParamsFactoryUid,
158 EId = KSubConQosR5ParamsType,
162 inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
163 inline static CSubConQosR5ParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType);
164 inline static CSubConQosR5ParamSet* NewL();
165 inline CSubConQosR5ParamSet();
167 inline TBool GetSignallingIndicator() const;
168 inline void SetSignallingIndicator(TBool aSignallingIndicator);
169 inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const;
170 inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType);
176 // Source Statistics Descriptor
177 RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc;
178 TBool iSignallingIndicator;
183 // SYMBIAN_NETWORKING_UMTSR5
188 ECOM Implementation Id for SBLP Extension parameters.
195 /** Getter Function for the Components of Flow ids. */
196 inline TUint16 GetMediaComponentNumber() const;
197 inline TUint16 GetIPFlowNumber() const;
198 /** Setter Function For Flow Id Components. */
199 inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
200 inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
203 TUint16 iMediaComponentNumber;
204 TUint16 iIPFlowNumber;
207 typedef RArray<TFlowId> RFlowIdentifiers;
209 /** Extension Parameter Sets, Consise of MAT and FI(s).
210 Provides Implementation of Extension parameters of the SBLP Family.
215 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
220 EUid = KSubCon3GPPExtParamsFactoryUid,
221 EId = KSubConnSBLPR5ExtensionParamsType,
226 inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
227 inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
228 inline static CSubConSBLPR5ExtensionParamSet* NewL();
230 /** Media Authorization Token setter and getter functions. */
231 inline const TAuthToken& GetMAT() const;
232 inline void SetMAT(const TAuthToken& aAuthToken);
234 /** Flow identifires setter and getter functions. */
235 inline TInt GetNumberOfFlowIds() const;
236 inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
238 /** Adding of Flow Identifires into an array. */
239 inline void AddFlowIdL(const TFlowId& aFlowId);
241 /** public constructors so that it can be accessed by factory. */
242 inline CSubConSBLPR5ExtensionParamSet();
243 inline ~CSubConSBLPR5ExtensionParamSet();
248 /** Single Media Authorization Token (MAT). */
249 TAuthToken iAuthToken;
251 /** Multiple Flow Identifiers. */
252 RFlowIdentifiers iFlowIds;
255 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
256 #include <networking/qos3GPP_subconparams_factory.h>
259 #include <networking/qos3gpp_subconparams.inl>
262 // QOS3GPP_SUBCONPARAMS_H