2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Header file for the IP SubConnection Parameters
23 @file ip_subconparams.h
26 #ifndef __IP_SUBCONPARAMS_H__
27 #define __IP_SUBCONPARAMS_H__
30 #include <networking/Qos3GPP_subconparams.h>
33 // NOTE: This Uid may be changed - See #ifdef at bottom of the file
34 const TInt KSubConIPParamsUid = 0x10204309;
36 const TInt KSubConQosIPLinkR99ParamsType = 1;
38 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
39 #include <networking/qos3gpp_subconparams.h>
42 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
44 /** Constant definitions particular to the Generic Parameters. */
45 const TInt KMAuthTokenLength = 255;
46 /** Typedef for the AuthToken Holder. */
47 typedef TBuf8<KMAuthTokenLength> TAuthToken;
50 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
51 /** Provides Implementation of IP QoS Parameters
55 @deprecated Since Intulo. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead.
58 /** Provides Implementation of IP QoS Parameters
65 class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet
68 inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
69 inline static CSubConQosIPLinkR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
70 inline static CSubConQosIPLinkR99ParamSet* NewL();
72 inline CSubConQosIPLinkR99ParamSet();
74 inline RPacketQoS::TTrafficClass GetTrafficClass() const;
75 inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
76 inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
77 inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
78 inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
79 inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
80 inline TInt GetTransferDelay() const;
81 inline TInt GetMaxSduSize() const;
82 inline TInt GetMaxBitrateUplink() const;
83 inline TInt GetMaxBitrateDownlink() const;
84 inline TInt GetGuaBitrateUplink() const;
85 inline TInt GetGuaBitrateDownlink() const;
86 inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
87 inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
88 inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
89 inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
90 inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
91 inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
92 inline void SetTransferDelay(TInt aTransferDelay);
93 inline void SetMaxSduSize(TInt aMaxSduSize);
94 inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
95 inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
96 inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
97 inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
104 RPacketQoS::TTrafficClass iTrafficClass; // Traffic class
105 RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order
106 RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs
107 RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER
108 RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio
109 RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority
110 TInt iTransferDelay; // Transfer delay
111 TInt iMaxSduSize; // Maximum SDU size
112 TInt iMaxBitrateUplink; // Maximum bit rate for uplink
113 TInt iMaxBitrateDownlink; // Maximum bit rate for downlink
114 TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink
115 TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink
120 #ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
123 ECOM Implementation Id for SBLP Extension parameters.
126 @released since v9.1 */
129 /** Getter Function for the Components of Flow ids. */
130 inline TUint16 GetMediaComponentNumber() const;
131 inline TUint16 GetIPFlowNumber() const;
132 /** Setter Function For Flow Id Components. */
133 inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
134 inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
137 TUint16 iMediaComponentNumber;
138 TUint16 iIPFlowNumber;
141 typedef RArray<TFlowId> RFlowIdentifiers;
143 /** Extension Parameter Sets, Consise of MAT and FI(s).
144 Provides Implementation of Extension parameters of the SBLP Family.
147 @released since v9.1 */
148 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
151 inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
152 inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
153 inline static CSubConSBLPR5ExtensionParamSet* NewL();
155 /** Media Authorization Token setter and getter functions. */
156 inline const TAuthToken& GetMAT() const;
157 inline void SetMAT(const TAuthToken& aAuthToken);
159 /** Flow identifires setter and getter functions. */
160 inline TInt GetNumberOfFlowIds() const;
161 inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
163 /** Adding of Flow Identifires into an array. */
164 inline void AddFlowIdL(const TFlowId& aFlowId);
166 /** public constructors so that it can be accessed by factory. */
167 inline CSubConSBLPR5ExtensionParamSet();
168 inline ~CSubConSBLPR5ExtensionParamSet();
173 /** Single Media Authorization Token (MAT). */
174 TAuthToken iAuthToken;
176 /** Multiple Flow Identifiers. */
177 RFlowIdentifiers iFlowIds;
182 Factory used to create instances of IP SubConnection Parameters.
187 class CSubConIPExtensionParamsFactory : public CBase
190 static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
193 #include <ip_subconparams.inl>
195 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
197 Umts QoS extension classes have been relocated to the UmtsGprsSCPR component.
198 So now we need to make sure that the correct class factory TUid, class name,
199 and class Id are used
201 #define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid
202 #define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType
203 #define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet
205 // SYMBIAN_NETWORKING_3GPPDEFAULTQOS
208 // __IP_SUBCONPARAMS_H__