diff -r 000000000000 -r c40eb8fe8501 wlan_plat/wlan_management_api/inc/wlanmgmtcommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_plat/wlan_management_api/inc/wlanmgmtcommon.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,378 @@ +/* +* Copyright (c) 2002-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: Contains common data structures used by WLAN management service. +* +*/ + +/* +* %version: 10 % +*/ + +#ifndef WLANMGMTCOMMON_H +#define WLANMGMTCOMMON_H + +// INCLUDES +#include + +// LOCAL CONSTANTS +/** The maximum SSID length. */ +const TUint KWlanMaxSsidLength = 32; + +/** The maximum BSSID length. */ +const TUint KWlanMaxBssidLength = 6; + +/** The maximum length of WPA preshared key data. */ +const TUint KWlanWpaPskMaxLength = 64; + +/** The maximum length of WEP key data. */ +const TUint KWlanWepKeyMaxLength = 29; + +/** Infinite max delay to be used in GetScanResults and GetAvailableIaps */ +const TUint KWlanInfiniteScanDelay = 0xFFFFFFFF; + +/** Current version of WLAN callback interface. */ +const TUint KWlanCallbackInterfaceVersion = 2; + +// DATA TYPES +/** Data structure for storing the SSID of a WLAN network. */ +typedef TBuf8 TWlanSsid; + +/** Data structure for storing the BSSID of a BSS. */ +typedef TBuf8 TWlanBssid; + +/** Data structure for storing a WEP key. */ +typedef TBuf8 TWlanWepKey; + +/** + * Data structure for storing either a WPA preshared key or passphrase. + * + * The WPA-PSK key can be represented either as a passphrase or as the + * actual preshared key. + * + * A passphrase can contain from 8 to 63 ASCII characters where each + * character MUST have a decimal encoding in the range of 32 to 126, + * inclusive. + * + * A preshared key is stored as 64 character hex string. + */ +typedef TBuf8 TWlanWpaPresharedKey; + +/** Values for possible WLAN connection states. */ +enum TWlanConnectionMode + { + /** No connection is active. */ + EWlanConnectionModeNotConnected, + /** Connection to an infrastructure network is active. */ + EWlanConnectionModeInfrastructure, + /** Connection to an ad-hoc network is active. */ + EWlanConnectionModeAdhoc, + /** Connection to a secure infrastructure network is active. */ + EWlanConnectionModeSecureInfra, + // Searching for an access point. No data flow. + EWlanConnectionModeSearching + }; + +/** Values for possible WLAN operating modes. */ +enum TWlanOperatingMode + { + /** Ad-hoc network. */ + EWlanOperatingModeAdhoc, + /** Infrastructure network. */ + EWlanOperatingModeInfrastructure + }; + +/** Values for possible WLAN connection security modes. */ +enum TWlanConnectionSecurityMode + { + /** Security mode open, i.e. no security. */ + EWlanConnectionSecurityOpen, + /** Security mode WEP. */ + EWlanConnectionSecurityWep, + /** Security mode 802d1x. */ + EWlanConnectionSecurity802d1x, + /** Security mode WPA. */ + EWlanConnectionSecurityWpa, + /** Security mode WPA PSK. */ + EWlanConnectionSecurityWpaPsk + }; + +/** + * Values for possible WLAN connection security modes. + * These are more detailed than TWlanConnectionSecurityMode. + */ +enum TWlanConnectionExtentedSecurityMode + { + /** Security mode open, i.e. no security. */ + EWlanConnectionExtentedSecurityModeOpen, + /** Security mode Open WEP. */ + EWlanConnectionExtentedSecurityModeWepOpen, + /** Security mode Shared WEP. */ + EWlanConnectionExtentedSecurityModeWepShared, + /** Security mode 802d1x. */ + EWlanConnectionExtentedSecurityMode802d1x, + /** Security mode WPA. */ + EWlanConnectionExtentedSecurityModeWpa, + /** Security mode WPA PSK. */ + EWlanConnectionExtentedSecurityModeWpaPsk, + /** Security mode WPA2. */ + EWlanConnectionExtentedSecurityModeWpa2, + /** Security mode WPA2 PSK. */ + EWlanConnectionExtentedSecurityModeWpa2Psk, + /** Security mode WAPI. */ + EWlanConnectionExtentedSecurityModeWapi, + /** Security mode WAPI PSK. */ + EWlanConnectionExtentedSecurityModeWapiPsk + }; + +/** Defines the possible values for IAP security mode. */ +enum TWlanIapSecurityMode + { + /** No encryption used. */ + EWlanIapSecurityModeAllowUnsecure, + /** Use WEP encryption with static keys. */ + EWlanIapSecurityModeWep, + /** Use WEP/TKIP/CCMP encryption, keys are negotiated by EAPOL. */ + EWlanIapSecurityMode802d1x, + /** Use TKIP/CCMP encryption, keys are negotiated by EAPOL. */ + EWlanIapSecurityModeWpa, + /** Use CCMP encryption, keys are negotiated by EAPOL. */ + EWlanIapSecurityModeWpa2Only, + }; + +/** Data values for RSS classes. */ +enum TWlanRssClass + { + /** Received signal level is 'normal'. */ + EWlanRssClassNormal, + /** Received signal level is 'weak'. */ + EWlanRssClassWeak + }; + +/** Enumeration of the possible default WEP keys. */ +enum TWlanDefaultWepKey + { + EWlanDefaultWepKey1, ///< Key number 1 + EWlanDefaultWepKey2, ///< Key number 2 + EWlanDefaultWepKey3, ///< Key number 3 + EWlanDefaultWepKey4 ///< Key number 4 + }; + +/** Enumeration of the possible authentication modes. */ +enum TWlanAuthenticationMode + { + EWlanAuthenticationModeOpen, ///< Open authentication + EWlanAuthenticationModeShared ///< Shared authentication + }; + +/** Enumaration for possible traffic stream statuses. */ +enum TWlanTrafficStreamStatus + { + /** + * The traffic stream is active in the current WLAN access point. + */ + EWlanTrafficStreamStatusActive, + /** + * The traffic stream is not active in the current WLAN access point + * because the AP doesn't require admission control. + */ + EWlanTrafficStreamStatusInactiveNotRequired, + /** + * The traffic stream is not active in the current WLAN access point + * because the AP has deleted the traffic stream. + */ + EWlanTrafficStreamStatusInactiveDeletedByAp, + /** + * The traffic stream is not active in the current WLAN access point + * because the AP has refused the traffic stream request due to + * insufficient over-the-air bandwidth. + */ + EWlanTrafficStreamStatusInactiveNoBandwidth, + /** + * The traffic stream is not active in the current WLAN access point + * because the AP has refused the traffic stream request due to + * invalid traffic stream parameters. + */ + EWlanTrafficStreamStatusInactiveInvalidParameters, + /** + * The traffic stream is not active in the current WLAN access point + * because the AP has refused the traffic stream request due to + * other reasons. + */ + EWlanTrafficStreamStatusInactiveOther + }; + +/** Enumeration for traffic stream direction. */ +enum TWlanTrafficStreamDirection + { + /** Admission is requested for uplink traffic. */ + EWlanTrafficStreamDirectionUplink, + /** Admission is requested for downlink traffic. */ + EWlanTrafficStreamDirectionDownlink, + /** Admission is requested for both uplink and downlink traffic. */ + EWlanTrafficStreamDirectionBidirectional + }; + +/** Enumeration for traffic stream traffic type. */ +enum TWlanTrafficStreamTrafficType + { + /** Traffic pattern is periodic,. */ + EWlanTrafficStreamTrafficTypePeriodic, + /** Traffic pattern is aperiodic or unspecified. */ + EWlanTrafficStreamTrafficTypeAperiodic + }; + +/** Defines the possible TX rate values. */ +enum TWlanRate + { + TWlanRateNone = 0x00000000, + TWlanRate1mbit = 0x00000001, + TWlanRate2mbit = 0x00000002, + TWlanRate5p5mbit = 0x00000004, + TWlanRate6mbit = 0x00000008, + TWlanRate9mbit = 0x00000010, + TWlanRate11mbit = 0x00000020, + TWlanRate12mbit = 0x00000040, + TWlanRate18mbit = 0x00000080, + TWlanRate22mbit = 0x00000100, + TWlanRate24mbit = 0x00000200, + TWlanRate33mbit = 0x00000400, + TWlanRate36mbit = 0x00000800, + TWlanRate48mbit = 0x00001000, + TWlanRate54mbit = 0x00002000 + }; + +/** Data structure for storing a Protected Setup credential attribute. */ +struct TWlanProtectedSetupCredentialAttribute + { + /** Operating mode of the network. */ + TWlanOperatingMode iOperatingMode; + /** Authentication mode of the network. */ + TWlanAuthenticationMode iAuthenticationMode; + /** Security mode of the network. */ + TWlanIapSecurityMode iSecurityMode; + /** Name of the network. */ + TWlanSsid iSsid; + /** WEP key number 1. */ + TWlanWepKey iWepKey1; + /** WEP key number 2. */ + TWlanWepKey iWepKey2; + /** WEP key number 3. */ + TWlanWepKey iWepKey3; + /** WEP key number 4. */ + TWlanWepKey iWepKey4; + /** The WEP key used by default. */ + TWlanDefaultWepKey iWepDefaultKey; + /** WPA preshared key. */ + TWlanWpaPresharedKey iWpaPreSharedKey; + }; + +// CLASS DECLARATION +/** + * Callback interface for WLAN management notifications. + * + * These virtual methods should be inherited and implemented by the + * client wanting to observe WLAN management events. + * + * The client has to enable notifications by calling the appropriate + * method from the management interface. + * @see MWlanMgmtInterface::ActivateNotificationsL. + * @see MWlanMgmtInterface::ActivateExtendedNotificationsL. + * @since S60 3.0 + */ +class MWlanMgmtNotifications + { + public: + + /** + * Connection state has changed. + * + * @since Callback interface v1 + * @param aNewState New connection state. + */ + virtual void ConnectionStateChanged( + TWlanConnectionMode /* aNewState */ ) {}; + + /** + * BSSID has changed (i.e. AP handover). + * + * @param aNewBSSID BSSID of the new access point. + * @since Callback interface v1 + */ + virtual void BssidChanged( + TWlanBssid& /* aNewBSSID */ ) {}; + + /** + * Connection has been lost. + * + * @since Callback interface v1 + */ + virtual void BssLost() {}; + + /** + * Connection has been regained. + * + * @since Callback interface v1 + */ + virtual void BssRegained() {}; + + /** + * New networks have been detected during scan. + * + * @since Callback interface v1 + */ + virtual void NewNetworksDetected() {}; + + /** + * One or more networks have been lost since the last scan. + * + * @since Callback interface v1 + */ + virtual void OldNetworksLost() {}; + + /** + * The used transmit power has been changed. + * + * @since Callback interface v1 + * @param aPower The transmit power in mW. + */ + virtual void TransmitPowerChanged( + TUint /* aPower */ ) {}; + + /** + * Received signal strength level has been changed. + * + * @since Callback interface v1 + * @param aRssClass specifies the current class of the received signal + * @param aRss RSS level in absolute dBm values. + */ + virtual void RssChanged( + TWlanRssClass /* aRssClass */, + TUint /* aRss */ ) {}; + + /** + * The status of a virtual traffic stream has changed. + * + * @since Callback interface v2 + * @param aStreamId ID of the traffic stream. + * @param aStreamStatus Status of the traffic stream. + */ + virtual void TrafficStreamStatusChanged( + TUint /* aStreamId */, + TWlanTrafficStreamStatus /* aStreamStatus */ ) {}; + + }; + +#endif // WLANMGMTCOMMON_H + +// End of File