2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * 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
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Header file for the IP SubConnection Parameters
25 @file ip_subconparams.h
28 #ifndef __IP_SUBCONPARAMS_H__
29 #define __IP_SUBCONPARAMS_H__
32 #include <comms-infras/metadata.h>
33 #include <comms-infras/metatype.h>
37 // NOTE: This Uid may be changed - See #ifdef at bottom of the file
38 const TInt KSubConIPParamsUid = 0x10204309;
39 const TInt KSubConQosIPLinkR99ParamsType = 1;
42 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
43 #include <networking/qos3gpp_subconparams.h>
46 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
49 /** Constant definitions particular to the Generic Parameters. */
50 const TInt KMAuthTokenLength = 255;
51 /** Typedef for the AuthToken Holder. */
52 typedef TBuf8<KMAuthTokenLength> TAuthToken;
54 #if defined(SYMBIAN_NETWORKING_UMTSR5) && !defined(SYMBIAN_NETWORKING_3GPPDEFAULTQOS)
55 #pragma message("SYMBIAN_NETWORKING_UMTSR5 cannot be defined without SYMBIAN_NETWORKING_3GPPDEFAULTQOS")
57 // SYMBIAN_NETWORKING_UMTSR5
63 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
64 /** Provides Implementation of IP QoS Parameters
68 @deprecated from v9.2 onwards. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead.
71 /** Provides Implementation of IP QoS Parameters
76 class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet
79 inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
80 inline static CSubConQosIPLinkR99ParamSet* NewL();
82 inline CSubConQosIPLinkR99ParamSet();
84 inline RPacketQoS::TTrafficClass GetTrafficClass() const;
85 inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
86 inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
87 inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
88 inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
89 inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
90 inline TInt GetTransferDelay() const;
91 inline TInt GetMaxSduSize() const;
92 inline TInt GetMaxBitrateUplink() const;
93 inline TInt GetMaxBitrateDownlink() const;
94 inline TInt GetGuaBitrateUplink() const;
95 inline TInt GetGuaBitrateDownlink() const;
96 inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
97 inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
98 inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
99 inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
100 inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
101 inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
102 inline void SetTransferDelay(TInt aTransferDelay);
103 inline void SetMaxSduSize(TInt aMaxSduSize);
104 inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
105 inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
106 inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
107 inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
114 RPacketQoS::TTrafficClass iTrafficClass; // Traffic class
115 RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order
116 RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs
117 RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER
118 RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio
119 RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority
120 TInt iTransferDelay; // Transfer delay
121 TInt iMaxSduSize; // Maximum SDU size
122 TInt iMaxBitrateUplink; // Maximum bit rate for uplink
123 TInt iMaxBitrateDownlink; // Maximum bit rate for downlink
124 TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink
125 TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink
128 #ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
132 ECOM Implementation Id for SBLP Extension parameters.
135 @released since v9.1 */
138 /** Getter Function for the Components of Flow ids. */
139 inline TUint16 GetMediaComponentNumber() const;
140 inline TUint16 GetIPFlowNumber() const;
141 /** Setter Function For Flow Id Components. */
142 inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
143 inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
146 TUint16 iMediaComponentNumber;
147 TUint16 iIPFlowNumber;
150 typedef RArray<TFlowId> RFlowIdentifiers;
152 /** Extension Parameter Sets, Consise of MAT and FI(s).
153 Provides Implementation of Extension parameters of the SBLP Family.
156 @released since v9.1 */
157 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
160 inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
161 inline static CSubConSBLPR5ExtensionParamSet* NewL();
163 /** Media Authorization Token setter and getter functions. */
164 inline const TAuthToken& GetMAT() const;
165 inline void SetMAT(const TAuthToken& aAuthToken);
167 /** Flow identifires setter and getter functions. */
168 inline TInt GetNumberOfFlowIds() const;
169 inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
171 /** Adding of Flow Identifires into an array. */
172 inline void AddFlowIdL(const TFlowId& aFlowId);
174 /** public constructors so that it can be accessed by factory. */
175 inline CSubConSBLPR5ExtensionParamSet();
176 inline ~CSubConSBLPR5ExtensionParamSet();
181 /** Single Media Authorization Token (MAT). */
182 TAuthToken iAuthToken;
184 /** Multiple Flow Identifiers. */
185 RFlowIdentifiers iFlowIds;
194 Factory used to create instances of IP SubConnection Parameters.
199 class CSubConIPExtensionParamsFactory : public CBase
202 static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
205 #include <ip_subconparams.inl>
209 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
211 Umts QoS extension classes have been relocated to the UmtsGprsSCPR component.
212 So now we need to make sure that the correct class factory TUid, class name,
213 and class Id are used
215 #define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid
216 #define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType
217 #define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet
219 // SYMBIAN_NETWORKING_3GPPDEFAULTQOS
223 // __IP_SUBCONPARAMS_H__