wlan_plat/wlan_control_api/inc/wlancontrolinterface.h
changeset 0 c40eb8fe8501
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_control_api/inc/wlancontrolinterface.h	Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,323 @@
+/*
+* Copyright (c) 2006-2008 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:  ECom interface definition for WLAN Control API.
+*
+*/
+
+/*
+* %version: 11 %
+*/
+
+#ifndef WLANCONTROLINTERFACE_H
+#define WLANCONTROLINTERFACE_H
+
+#include <wlanpowersaveinterface.h> // TWlanPowerSave
+#include <wlanmgmtcommon.h>         // TWlanBssid, TWlanSsid
+
+// INCLUDES
+#include <e32std.h>
+
+
+/** Defines the possible values of maximum service period length. */
+enum TWlanMaxServicePeriodLength
+    {
+    EWlanMaxServicePeriodLengthAll,
+    EWlanMaxServicePeriodLengthTwo,
+    EWlanMaxServicePeriodLengthFour,
+    EWlanMaxServicePeriodLengthSix,
+    };
+
+/** Defines the possible values of last cause for roaming. */
+enum TWlanRoamReason
+    {
+    EWlanRoamReasonLowRssi,
+    EWlanRoamReasonApLost,
+    };
+
+/**
+ * Possible WLAN regions.
+ */
+enum TWlanRegion
+    {
+    /** Channels 1-11, USA */
+    EFCC    = 0x10,
+    /** Channels 1-13, Europe */
+    EETSI   = 0x30,
+    };
+
+/** Possible WLAN power save modes. */
+enum TWlanPowerSaveMode
+    {
+    /** Automatic mode, wake-up mode and interval adjusted dynamically. */
+    EWlanPowerSaveModeAutomatic,
+    /** Power save is disabled. */
+    EWlanPowerSaveModeNone,
+    /** Power save is enabled, wake-up at every beacon. */
+    EWlanPowerSaveModeBeacon,
+    /** Power save is enabled, wake-up at every DTIM. */
+    EWlanPowerSaveModeDtim,
+    /** Power save is enabled, wake-up at every Nth DTIM, where N is defined by DTIM skipping interval. */
+    EWlanPowerSaveModeDtimSkipping
+    };
+
+/** Defines a structure for storing WLAN packet statistics. */
+struct TWlanPacketStatistics
+    {
+    /** Number of sent data frames. */
+    TUint32 txFrames;
+    /** Number of successfully received data frames. */
+    TUint32 rxFrames;
+    /** Number of sent multicast data frames. */
+    TUint32 txMulticastFrames;
+    /** Number of successfully received multicast data frames. */
+    TUint32 rxMulticastFrames;
+    /** Number of received frames with FCS errors. */
+    TUint32 fcsErrors;
+    /** Total number of retransmissions done. */
+    TUint32 txRetries;
+    /** Number of data frames that could not be to delivered. */
+    TUint32 txErrors;
+    };
+
+/** Defines the U-APSD settings for the access categories. */
+struct TWlanUapsdSettings
+    {
+    /** Defines the maximum number of frames to send during a service period. */
+    TWlanMaxServicePeriodLength maxServicePeriodLength;
+    /** Whether U-APSD is trigger and delivery-enabled for Voice. */
+    TBool uapsdForVoice;
+    /** Whether U-APSD is trigger and delivery-enabled for Video. */
+    TBool uapsdForVideo;
+    /** Whether U-APSD is trigger and delivery-enabled for BestEffort. */
+    TBool uapsdForBestEffort;
+    /** Whether U-APSD is trigger and delivery-enabled for Background. */
+    TBool uapsdForBackground;
+    };
+
+/** Defines the power save settings for the access categories. */
+struct TWlanPowerSaveSettings
+    {
+    /** Whether the terminal stays in U-APSD power save when using Voice. */
+    TBool stayInUapsdPsModeForVoice;
+    /** Whether the terminal stays in U-APSD power save when using Video. */
+    TBool stayInUapsdPsModeForVideo;
+    /** Whether the terminal stays in U-APSD power save when using BestEffort. */
+    TBool stayInUapsdPsModeForBestEffort;
+    /** Whether the terminal stays in U-APSD power save when using Background. */
+    TBool stayInUapsdPsModeForBackground;
+    /** Whether the terminal stays in legacy power save when using Voice. */
+    TBool stayInLegacyPsModeForVoice;
+    /** Whether the terminal stays in legacy power save when using Video. */
+    TBool stayInLegacyPsModeForVideo;
+    /** Whether the terminal stays in legacy power save when using BestEffort. */
+    TBool stayInLegacyPsModeForBestEffort;
+    /** Whether the terminal stays in legacy power save when using Background. */
+    TBool stayInLegacyPsModeForBackground;
+    };
+
+/**
+ * Data structure for storing information about an AP.
+ */
+struct TWlanAccessPointInfo
+    {
+    /** The SSID of the AP. */
+    TWlanSsid ssid;
+    /** The BSSID of the AP. */
+    TWlanBssid bssid;
+    /** Capabilities of the AP. */
+    TUint16 capabilities;
+    /** The channel AP is on. */
+    TUint8 channel;
+    /** Received Signal Strength Indicator (RSSI). */
+    TUint8 rssi;
+    /** Basic rates bitmap of the AP. Rates are defined in TWlanRate. */
+    TUint32 basicRates;
+    /** Supported rates bitmap of the AP. Rates are defined in TWlanRate. */
+    TUint32 supportedRates;
+    /** The security mode of the AP. */
+    TWlanConnectionExtentedSecurityMode securityMode;
+    /** Whether Admission Control must be used with Voice. */
+    TBool isAcRequiredForVoice;
+    /** Whether Admission Control must be used with Video. */
+    TBool isAcRequiredForVideo;
+    /** Whether Admission Control must be used with BestEffort. */
+    TBool isAcRequiredForBestEffort;
+    /** Whether Admission Control must be used with Background. */
+    TBool isAcRequiredForBackground;
+    /** Whether the AP supports WPX. */
+    TBool isWpx;
+    };
+
+
+/**
+ * Data structure for storing roaming metrics information.
+ */
+struct TWlanRoamMetrics
+    {
+    /** Connection attempt total counter. */
+    TUint32 connectionAttemptTotalCount;
+    /** Unsuccesfull connection attempt counter. */
+    TUint32 unsuccesfullConnectionAttemptCount;
+    /** Roaming counter. */
+    TUint32 roamingCounter;
+    /** Coverage loss counter. */
+    TUint32 coverageLossCount;
+
+    /** The total duration (ms) of the last roaming (= data path broken time + scanning time). */
+    TUint32 lastRoamTotalDuration;
+    /** The duration (ms) how long the data path was broken during the last roaming. */
+    TUint32 lastRoamDataPathBrokenDuration;
+    /** The cause for the last roaming. */
+    TWlanRoamReason lastRoamReason;
+    };
+
+
+/**
+ * @brief ECom interface definition for WLAN Control API.
+ *
+ * This class defines the methods used for...
+ *
+ * @since S60 v3.2
+ */
+class MWlanControlInterface
+    {
+
+public:
+
+    /**
+     * Get packet statistics of the current connection.
+     *
+     * @since S60 v3.2
+     * @param aStatistics Packet statistics of the current connection.
+     * @return KErrNone if statistics were read successfully, an error otherwise.
+     */
+    virtual TInt GetPacketStatistics(
+        TWlanPacketStatistics& aStatistics ) = 0;
+
+    /**
+     * Clear packet statistics of the current connection.
+     *
+     * @since S60 v3.2
+     */        
+    virtual void ClearPacketStatistics() = 0;
+
+    /**
+     * Get the current U-APSD settings.
+     *
+     * @since S60 v3.2
+     * @param aSettings Current U-APSD settings.
+     * @return KErrNone if settings were read successfully, an error otherwise.
+     */
+    virtual TInt GetUapsdSettings(
+        TWlanUapsdSettings& aSettings ) = 0;
+
+    /**
+     * Set the U-APSD settings.
+     *
+     * @since S60 v3.2
+     * @param aSettings Current U-APSD settings to be set.
+     * @return KErrNone if settings were set successfully, an error otherwise.
+     */
+    virtual TInt SetUapsdSettings(
+        const TWlanUapsdSettings& aSettings ) = 0;
+
+    /**
+     * Get the current power save settings.
+     *
+     * @since S60 v3.2
+     * @param aSettings power save settings.
+     * @return KErrNone if settings were read successfully, an error otherwise.
+     */
+    virtual TInt GetPowerSaveSettings(
+        TWlanPowerSaveSettings& aSettings ) = 0;
+
+    /**
+     * Set the power save settings.
+     *
+     * @since S60 v3.2
+     * @param aSettings Current power save settings to be set.
+     * @return KErrNone if settings were set successfully, an error otherwise.
+     */      
+    virtual TInt SetPowerSaveSettings(
+        const TWlanPowerSaveSettings& aSettings ) = 0;
+
+
+    /**
+     * Get information about the current AP.
+     *
+     * @since S60 v3.2
+     * @param aInfo Information about the current AP.
+     * @return KErrNone if information is available, an error otherwise.
+     */
+    virtual TInt GetAccessPointInfo(
+        TWlanAccessPointInfo& aInfo ) = 0;
+
+    /**
+     * Get roam metrics of the current connection.
+     *
+     * @since S60 v3.2
+     * @param aRoamMetrics Roam metrics of the current connection.
+     * @return KErrNone if settings were read successfully, an error otherwise.
+     */
+    virtual TInt GetRoamMetrics(
+        TWlanRoamMetrics& aRoamMetrics ) = 0;
+
+    /**
+     * Return a list of BSSIDs on the rogue list.
+     *
+     * @since S60 v3.2
+     * @param aRogueList List of BSSIDs on the rogue list.
+     * @return KErrNone if list were read successfully, an error otherwise.
+     */
+    virtual TInt GetRogueList(
+        CArrayFixSeg<TWlanBssid>& aRogueList ) = 0;
+        
+    /**
+     * Get the current regulatory domain.
+     *
+     * @since S60 v3.2
+     * @param aRegion current region.
+     * @return KErrNone if value was read successfully, an error otherwise.
+     */
+    virtual TInt GetRegulatoryDomain(
+        TWlanRegion& aRegion ) = 0;
+        
+    /**
+     * Get the current power save mode.
+     *
+     * @since S60 v3.2
+     * @param aPowerSaveMode current power save mode.
+     * @return KErrNone if value was read successfully, an error otherwise.
+     */
+    virtual TInt GetPowerSaveMode(
+        TWlanPowerSave& aPowerSaveMode ) = 0;
+
+    /**
+     * Set the power save mode.
+     *
+     * @note This method is meant for overriding the dynamic power save mode selection
+     *       for testing purposes. Overriding the power save mode may have an adverse
+     *       effect on throughput and/or power consumption. Dynamic selection can be
+     *       re-enabled by setting the mode to EWlanPowerSaveModeAutomatic.
+     *
+     * @since S60 v5.0.1
+     * @param aMode Power save mode to be set.
+     * @return KErrNone if the mode was set successfully, an error otherwise.
+     */
+    virtual TInt SetPowerSaveMode(
+        TWlanPowerSaveMode aMode ) = 0;
+
+    };
+
+#endif // WLANCONTROLINTERFACE_H