diff -r 000000000000 -r c40eb8fe8501 wlan_plat/wlan_control_api/inc/wlancontrolinterface.h --- /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 // TWlanPowerSave +#include // TWlanBssid, TWlanSsid + +// INCLUDES +#include + + +/** 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& 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