wlan_plat/wlan_management_api/inc/wlantrafficstreamparameters.h
changeset 0 c40eb8fe8501
--- /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 <wlanmgmtcommon.h>
+
+/**
+ * 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