diff -r 000000000000 -r c40eb8fe8501 wlan_plat/wlan_management_api/inc/wlantrafficstreamparameters.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_plat/wlan_management_api/inc/wlantrafficstreamparameters.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,344 @@ +/* +* Copyright (c) 2008-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: Parameter storage for a virtual traffic stream. +* +*/ + +/* +* %version: 1 % +*/ + +#ifndef WLANTRAFFICSTREAMPARAMETERS_H +#define WLANTRAFFICSTREAMPARAMETERS_H + +#include + +/** + * Parameter storage for a virtual traffic stream. + * + * This class is used to store the parameters of a virtual traffic stream. + * When instantiated, it sets all the parameters to the default values so + * the client application only needs to set the parameters it specifically + * wants to alter. + * + * Any parameter left to its default value means that the WLAN subsystem + * is free to select a suitable value. + */ +NONSHARABLE_CLASS( TWlanTrafficStreamParameters ) + { + +public: + + /** + * Bit definitions for parameters. + */ + enum TWlanParameter + { + EWlanParameterNone = 0x00000000, + EWlanParameterType = 0x00000001, + EWlanParameterId = 0x00000002, + EWlanParameterDirection = 0x00000004, + EWlanParameterNominalMsduSize = 0x00000008, + EWlanParameterMaximumMsduSize = 0x00000010, + EWlanParameterMinimumServiceInterval = 0x00000020, + EWlanParameterMaximumServiceInterval = 0x00000040, + EWlanParameterInactivityInterval = 0x00000080, + EWlanParameterSuspensionInterval = 0x00000100, + EWlanParameterServiceStartTime = 0x00000200, + EWlanParameterMinimumDataRate = 0x00000400, + EWlanParameterMeanDataRate = 0x00000800, + EWlanParameterPeakDataRate = 0x00001000, + EWlanParameterMaximumBurstSize = 0x00002000, + EWlanParameterDelayBound = 0x00004000, + EWlanParameterMinimumPhyRate = 0x00008000, + EWlanParameterNominalPhyRate = 0x00010000, + EWlanParameterSba = 0x00020000, + EWlanParameterIsRetryAllowed = 0x00040000 + }; + + /** + * Constructor. + * + * @param aUserPriority User Priority (0 - 7) admission is requested for. + */ + inline TWlanTrafficStreamParameters( + TUint8 aUserPriority ); + + /** + * Set the traffic pattern used. + * + * @param aType Traffic pattern used. + */ + inline void SetTrafficType( + TWlanTrafficStreamTrafficType aType ); + + /** + * Set the traffic stream ID used. + * + * @param aId Traffic Stream ID (0 - 7). + */ + inline void SetId( + TUint8 aId ); + + /** + * Set the traffic stream direction used. + * + * @param aDirection Traffic stream direction. + */ + inline void SetDirection( + TWlanTrafficStreamDirection aDirection ); + + /** + * Set the nominal MSDU size used. + * + * @param aMsduSize The nominal size of packets in bytes (0 - 0x7FFF). + * @param aIsMsduSizeFixed Whether the size of packets is fixed. + */ + inline void SetNominalMsduSize( + TUint16 aMsduSize, + TBool aIsMsduSizeFixed ); + + /** + * Set the maximum MSDU size used. + * + * @param aMsduSize The maximum size of packets in bytes (0 - 0xFFFF). + */ + inline void SetMaximumMsduSize( + TUint16 aMsduSize ); + + /** + * Set the minimum service interval used. + * + * @param aServiceInterval The minimum interval between packets in microseconds. + */ + inline void SetMinimumServiceInterval( + TUint32 aServiceInterval ); + + /** + * Set the maximum service interval used. + * + * @param aServiceInterval The maximum interval between packets in microseconds. + */ + inline void SetMaximumServiceInterval( + TUint32 aServiceInterval ); + + /** + * Set the inactivity interval used. + * + * @param aInactivityInterval The minimum amount of microseconds that may elapse + * without arrival or transfer of packets belonging + * to this traffic stream before the traffic stream + * is deleted. + */ + inline void SetInactivityInterval( + TUint32 aInactivityInterval ); + + /** + * Set the suspension interval used. + * + * @param aSuspensionInterval The minimum amount of microseconds that may elapse + * without arrival or transfer of packets belonging + * to this traffic stream before polling for the + * traffic stream is stopped. + */ + inline void SetSuspensionInterval( + TUint32 aSuspensionInterval ); + + /** + * Set the service start time used. + * + * @param aServiceStartTime The time in microseconds when the service period starts. + */ + inline void SetServiceStartTime( + TUint32 aServiceStartTime ); + + /** + * Set the minimum data rate used. + * + * @param aRate The lowest data rate in bits per second used for packets + * belonging to this traffic stream. + */ + inline void SetMinimumDataRate( + TUint32 aRate ); + + /** + * Set the average data rate used. + * + * @param aRate The average data rate in bits per second used for packets + * belonging to this traffic stream. + */ + inline void SetMeanDataRate( + TUint32 aRate ); + + /** + * Set the maximum data rate used. + * + * @param aRate The maximum data rate in bits per second used for packets + * belonging to this traffic stream. + */ + inline void SetPeakDataRate( + TUint32 aRate ); + + /** + * Set the maximum burst size used. + * + * @param aBurstSize The maximum burst in bytes that can arrive or be transmitted at + * the peak data rate. + */ + inline void SetMaximumBurstSize( + TUint32 aBurstSize ); + + /** + * Set the maximum transport delay used. + * + * @param aDelay The maximum amount of microseconds allowed to transport + * a packet belonging to this traffic stream. + */ + inline void SetDelayBound( + TUint32 aDelay ); + + /** + * Set the minimum WLAN data rate used. + * + * @param aRate The minimum WLAN data rate in bits per second used for + * this traffic stream. + */ + inline void SetMinimumPhyRate( + TWlanRate aRate ); + + /** + * Set the nominal WLAN data rate used. + * + * @param aRate The nominal WLAN data rate in bits per second used for + * this traffic stream. + */ + inline void SetNominalPhyRate( + TWlanRate aRate ); + + /** + * Set the SBA ratio used. + * + * @param aRatio The excess ratio of actual over-the-air bandwidth to + * ideal bandwidth used for transporting packets belonging + * to this traffic stream. + */ + inline void SetSba( + TUint16 aRatio ); + + /** + * Set the whether re-creation of traffic streams is allowed. + * + * @param aIsAllowed Whether re-creation of traffic streams that have been + * deleted or refused by the current WLAN access point + * can be automatically retried. + */ + inline void SetAutomaticRetry( + TBool aIsAllowed ); + +public: // data + + /** + * Bitmap of parameters that have been set. + */ + TUint32 iParameterBitmap; + + /** + * Traffic pattern used. + */ + TWlanTrafficStreamTrafficType iType; + /** + * Traffic stream ID used. + */ + TUint8 iId; + /** + * Traffic stream direction used. + */ + TWlanTrafficStreamDirection iDirection; + /** + * User Priority used. + */ + TUint8 iUserPriority; + /** + * Nominal MSDU size used. + */ + TUint16 iNominalMsduSize; + /** + * Whether the size of packets is fixed. + */ + TBool iIsMsduSizeFixed; + /** + * Maximum MSDU size used. + */ + TUint16 iMaximumMsduSize; + /** + * Minimum service interval used. + */ + TUint32 iMinimumServiceInterval; + /** + * Maximum service interval used. + */ + TUint32 iMaximumServiceInterval; + /** + * Inactivity interval used. + */ + TUint32 iInactivityInterval; + /** + * Suspension interval used. + */ + TUint32 iSuspensionInterval; + /** + * Service start time used. + */ + TUint32 iServiceStartTime; + /** + * Minimum data rate used. + */ + TUint32 iMinimumDataRate; + /** + * Average data rate used. + */ + TUint32 iMeanDataRate; + /** + * Maximum data rate used. + */ + TUint32 iPeakDataRate; + /** + * Maximum burst size used. + */ + TUint32 iMaximumBurstSize; + /** + * Maximum transport delay used. + */ + TUint32 iDelayBound; + /** + * Minimum WLAN data rate used. + */ + TWlanRate iMinimumPhyRate; + /** + * Nominal WLAN data rate used. + */ + TWlanRate iNominalPhyRate; + /** + * SBA ratio used. + */ + TUint16 iSba; + /** + * Whether re-creation of traffic streams is allowed. + */ + TBool iIsAutomaticRetryAllowed; + }; + +#include "wlantrafficstreamparameters.inl" + +#endif // WLANTRAFFICSTREAMPARAMETERS_H