--- /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