--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/inc/wlmclientserver.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,541 @@
+/*
+* 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 the License "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: Data structures for client server communication in WLMServer.
+*
+*/
+
+/*
+* %version: 40 %
+*/
+
+#ifndef WLMCLIENTSERVER_H
+#define WLMCLIENTSERVER_H
+
+#include "umacoidmsg.h"
+#include <wlanmgmtcommon.h>
+#include <wlanerrorcodes.h>
+#include <wdbifwlansettings.h>
+
+_LIT(KWLMServerExe, "Z:\\system\\libs\\WLMSERVEREXE");
+_LIT(KWLMServerSemaphore, "WLMServerSemaphore");
+_LIT(KWLMDataServerName, "WlanServer");
+
+/** Version number */
+const TUint KWLMServMajorVersionNumber = 1;
+/** Release number */
+const TUint KWLMServMinorVersionNumber = 0;
+/** Build number */
+const TUint KWLMServBuildVersionNumber = 1;
+
+const TUint KMaxWepKeyStrLength = 32; // WEP max 128 bits -> 16 bytes -> 32 chars
+const TUint KMaxDBFieldLength = 50;
+const TUint KMaxNotificationLength = 128; // Max data length for notification data.
+
+/**
+ * The maximum number of available IAPs returned.
+ */
+const TUint KWlmMaxAvailableIaps = 64;
+
+/**
+ * The maximum number of association failures before the AP is blacklisted.
+ */
+const TUint KWlmMaxApFailureCount = 5;
+
+/**
+ * The maximum number of Protected Setup credentials.
+ */
+const TUint KWlmProtectedSetupMaxCount = 8;
+
+/**
+ * The maximum number of BSSIDs in the rogue list.
+ */
+const TUint KWlmRogueListMaxCount = 10;
+
+/**
+ * The maximum size of the scan list is 50kB.
+ */
+const TUint KWlmScanListMaxSize = 51200;
+
+// DATA TYPES
+
+/**
+* Data values for connection states.
+*/
+enum TWlanConnectionState
+ {
+ /** Connection is not active. No data flow. */
+ EWlanStateNotConnected,
+ /** Connection to access point is active. */
+ EWlanStateInfrastructure,
+ /** Searching access point. No data flow. */
+ EWlanStateSearchingAP,
+ /** AdHoc network is active. */
+ EWlanStateIBSS,
+ /** HW/SW/PC testing mode active. Testing only. */
+ EWlanStateSecureInfra,
+ /** Unknown state. */
+ EConnectionStateUnknown
+ };
+
+/**
+* Data values for security modes.
+*/
+enum TWlanSecurity
+ {
+ EWlanSecurityOpen,
+ EWlanSecurityWepOpen,
+ EWlanSecurityWepShared,
+ EWlanSecurity802d1x,
+ EWlanSecurityWpa,
+ EWlanSecurityWpaPsk,
+ EWlanSecurityWpa2,
+ EWlanSecurityWpa2Psk,
+ EWlanSecurityWapi,
+ EWlanSecurityWapiPsk,
+ };
+
+/**
+* Data values for system modes.
+*/
+enum TWlanSystemMode
+ {
+ EWlanSystemNormal,
+ EWlanSystemFlight,
+ EWlanSystemDisabled,
+ EWlanSystemStartupInProgress
+ };
+
+/**
+* Data values for RSS classes.
+* These has to be in synch with TWlanRssClass and
+* core_rss_level
+*/
+enum TWlanRCPLevel
+ {
+ EWlanRcpNormal,
+ EWlanRcpWeak
+ };
+
+/**
+* Commands from client to server.
+*/
+enum TWLMCommands
+ {
+ /** Ask server to send notifications to this session. */
+ EOrderNotifications,
+ /** Cancel server to stop sending notifications to this session. */
+ ECancelNotifications,
+ /** Get results of last access point scan. */
+ EGetScanResults,
+ /** Cancel an outstanding scan request. */
+ ECancelGetScanResults,
+ /** Join to a access point / ad hoc network by Profile id. */
+ EJoinByProfileId,
+ /** Cancel an outstanding join request. */
+ ECancelJoin,
+ /** Start an ad hoc nw / join to an ad hoc nw. */
+ EStartIBSS,
+ /** Reset connection. */
+ EReset,
+ /** Get available WLAN IAPs. */
+ EGetAvailableIaps,
+ /** Cancel an outstanding IAP availability request. */
+ ECancelGetAvailableIaps,
+ /** Get current state of the connection. */
+ EGetCurrentState,
+ /** Get current signal strength, 0 if no connection. */
+ EGetCurrentRSSI,
+ /** Get the MAC address of AP/STA that is being connected to. */
+ EGetMacAddress,
+ /** Get the name of the current network. */
+ EGetNetworkName,
+ /** Get the current security mode. */
+ EGetSecurityMode,
+ /** Get the current system mode. */
+ EGetSystemMode,
+ /** Notify the server about changed settings. */
+ ENotifyChangedSettings,
+ /** Add BSSID to roguelist (blacklist) */
+ EAddBssidToRoguelist,
+ /** Update RCP notification boundaries */
+ EUpdateRcpNotificationBoundaries,
+ /** Configure multicast address */
+ EConfigureMulticastGroup,
+ /** Get packet statistics of the current connection. */
+ EGetPacketStatistics,
+ /** Clear packet statistics of the current connection. */
+ EClearPacketStatistics,
+ /** Get the current U-APSD settings. */
+ EGetUapsdSettings,
+ /** Set the U-APSD settings. */
+ ESetUapsdSettings,
+ /** Get the current power save settings. */
+ EGetPowerSaveSettings,
+ /** Set the power save settings. */
+ ESetPowerSaveSettings,
+ /** Run Protected setup */
+ ERunProtectedSetup,
+ /** Cancel Protected setup */
+ ECancelProtectedSetup,
+ /** Request creation of a traffic stream. */
+ ECreateTrafficStream,
+ /** Cancel a pending traffic stream creation request. */
+ ECancelCreateTrafficStream,
+ /** Request deletion of a traffic stream. */
+ EDeleteTrafficStream,
+ /** Cancel a pending traffic stream deletion request. */
+ ECancelDeleteTrafficStream,
+ /** Get information about the current AP. */
+ EGetAccessPointInfo,
+ /** Get roam metrics of the current connection. */
+ EGetRoamMetrics,
+ /** Get a list of BSSIDs on the rogue list. */
+ EGetRogueList,
+ /** Get the current regulatory domain. */
+ EGetRegulatoryDomain,
+ /** Get the current power save mode. */
+ EGetPowerSaveMode,
+ /** Add a list of SSIDs to an IAP. */
+ EAddIapSsidList,
+ /** Remove any list of SSIDs attached to an IAP. */
+ ERemoveIapSsidList,
+ /** Set the power save mode. */
+ ESetPowerSaveMode,
+ /** Notify the server about changed PSM server mode. */
+ ENotifyChangedPsmSrvMode,
+ /** Get the current traffic status for access classes. */
+ EGetAcTrafficStatus,
+ /** Initiate a roam to the given BSSID. */
+ EDirectedRoam,
+ /** Cancel a pending directed roam request. */
+ ECancelDirectedRoam
+ };
+
+/**
+* Nofications from server to client.
+*/
+enum TWlmNotify
+ {
+ EWlmNotifyNone = 0x0000,
+ EWlmNotifyConnectionStateChanged = 0x0001,
+ EWlmNotifyBssidChanged = 0x0002,
+ EWlmNotifyBssLost = 0x0004,
+ EWlmNotifyBssRegained = 0x0008,
+ EWlmNotifyNewNetworksDetected = 0x0010,
+ EWlmNotifyOldNetworksLost = 0x0020,
+ EWlmNotifyTransmitPowerChanged = 0x0040,
+ EWlmNotifyNotificationsCancelled = 0x0080,
+ EWlmNotifyRcpChanged = 0x0100,
+ EWlmNotifyTrafficStreamStatusChanged = 0x0200,
+ EWlmNotifyAccessPointInfoChanged = 0x0400,
+ EWlmNotifyRcpiRoamAttemptStarted = 0x0800,
+ EWlmNotifyRcpiRoamAttemptCompleted = 0x1000,
+ EWlmNotifyBrokenPowerSaveTestFailed = 0x2000,
+ EWlmNotifyAcTrafficModeChanged = 0x4000,
+ EWlmNotifyAcTrafficStatusChanged = 0x8000
+ };
+
+/**
+ * Default notifications for callback API v1.
+ */
+const TUint32 KWlmDefaultNotificationsV1 =
+ EWlmNotifyConnectionStateChanged |
+ EWlmNotifyBssidChanged |
+ EWlmNotifyBssLost |
+ EWlmNotifyBssRegained |
+ EWlmNotifyNewNetworksDetected |
+ EWlmNotifyOldNetworksLost |
+ EWlmNotifyTransmitPowerChanged |
+ EWlmNotifyNotificationsCancelled |
+ EWlmNotifyRcpChanged;
+
+/**
+ * Default notifications for callback API v2.
+ */
+const TUint32 KWlmDefaultNotificationsV2 =
+ KWlmDefaultNotificationsV1 |
+ EWlmNotifyTrafficStreamStatusChanged;
+
+/**
+* Notifications' data.
+*/
+struct TWlmNotifyData
+ {
+ TBuf8<KMaxNotificationLength> data;
+ };
+
+/**
+* Bit mask for overrided settings.
+*/
+enum TOverrideSettingsMask
+ {
+ EOverrideNoneMask = 0x00000000,
+ EOverrideSsidMask = 0x00000001,
+ EOverrideBssidMask = 0x00000002,
+ EOverrideWepMask = 0x00000004,
+ EOverrideWpaPskMask = 0x00000008,
+ EOverrideWpaMask = 0x00000010, /** Use WPA handshake, if bit defined. */
+ EOverrideIbssMask = 0x00000020 /** Use IBSS mode, if bit defined. */
+ };
+
+/**
+ * The possible statuses of a traffic stream.
+ */
+enum TWlmTrafficStreamStatus
+ {
+ /**
+ * The traffic stream has been successfully created.
+ */
+ EWlmTrafficStreamStatusActive,
+ /**
+ * The traffic stream has either been deleted by the network or
+ * the new AP after roaming no longer requires admission control.
+ */
+ EWlmTrafficStreamStatusNotActive,
+ /**
+ * The current AP has rejected our request to create a traffic
+ * stream. Stream creation must not be retried until we have
+ * roamed to a new AP.
+ */
+ EWlmTrafficStreamStatusRejected
+ };
+
+/**
+ * The possible statuses of a PSM mode.
+ */
+enum TWlanPsmMode
+ {
+ /**
+ * Normal PSM power save mode.
+ */
+ EWlmPsmModeNormal = 0,
+ /**
+ * Full PSM power save mode.
+ */
+ EWlmPsmModePowerSave,
+ /**
+ * Partial PSM power save mode.
+ */
+ EWlmPsmPartialMode
+ };
+
+/**
+ * The possible access classes.
+ */
+enum TWlmAccessClass
+ {
+ EWlmAccessClassBestEffort = 0,
+ EWlmAccessClassBackground = 1,
+ EWlmAccessClassVideo = 2,
+ EWlmAccessClassVoice = 3,
+ EWlmAccessClassMax = 4
+ };
+
+/**
+ * Definitions for possible traffic modes for an access class.
+ */
+enum TWlmAcTrafficMode
+ {
+ /** Automatic traffic stream creation is allowed. */
+ EWlmAcTrafficModeAutomatic,
+ /** Automatic traffic stream creation is NOT allowed. */
+ EWlmAcTrafficModeManual
+ };
+
+/**
+ * Definitions for possible traffic statuses for an access class.
+ */
+enum TWlmAcTrafficStatus
+ {
+ /**
+ * Traffic for this access class has been admitted.
+ */
+ EWlmAcTrafficStatusAdmitted,
+ /**
+ * Traffic for this access class has NOT been admitted,
+ * traffic needs to be downgraded to a lower access class.
+ */
+ EWlmAcTrafficStatusNotAdmitted
+ };
+
+typedef TFixedArray<TWlmAcTrafficStatus, EWlmAccessClassMax> TWlmAcTrafficStatusArray;
+
+/**
+* Data structure for join overrides.
+*/
+struct TWLMOverrideSettings
+ {
+ /** See TOverrideSettingsMask */
+ TUint32 settingsMask;
+ /** Override SSID. Used in easy connection. */
+ TSSID ssid;
+ /** Override BSSID. Used in test cases only. */
+ TMacAddress bssid;
+ /** Override WEP key. Used in easy connection. */
+ TWep wep;
+ /** Override WPA Pre-Shared Key. Used in easy connection. */
+ TWpaPsk wpaPsk;
+ };
+
+/**
+* Data structure sending TMacAddress as a TPckg.
+*/
+struct TMacPckg
+ {
+ TMacAddress data;
+ };
+
+/**
+* Data structure for storing available IAP IDs.
+*/
+struct TWlmAvailableIaps
+ {
+ /** The number of IAPs available. */
+ TUint32 count;
+
+ /** The available IAP IDs. */
+ TFixedArray<TUint,KWlmMaxAvailableIaps> iaps;
+ };
+
+/**
+ * Structure for storing traffic stream parameters.
+ */
+struct TWlmTrafficStreamParams
+ {
+ /**
+ * Whether the traffic pattern is periodic or aperiodic.
+ */
+ TBool isPeriodicTraffic;
+ /**
+ * The current value of Nominal MSDU Size.
+ */
+ TUint16 nomimalMsduSize;
+ /**
+ * The current value of Maximum MSDU Size.
+ */
+ TUint16 maximumMsduSize;
+ /**
+ * The current value of Minimum Service Interval.
+ */
+ TUint32 minimumServiceInterval;
+ /**
+ * The current value of Maximum Service Interval.
+ */
+ TUint32 maximumServiceInterval;
+ /**
+ * The current value of Inactivity Interval.
+ */
+ TUint32 inactivityInterval;
+ /**
+ * The current value of Suspension Interval.
+ */
+ TUint32 suspensionInterval;
+ /**
+ * The current value of Service Start Time.
+ */
+ TUint32 serviceStartTime;
+ /**
+ * The current value of Minimum Data Rate.
+ */
+ TUint32 minimumDataRate;
+ /**
+ * The current value of Mean Data Rate.
+ */
+ TUint32 meanDataRate;
+ /**
+ * The current value of Peak Data Rate.
+ */
+ TUint32 peakDataRate;
+ /**
+ * The current value of Maximum Burst Size.
+ */
+ TUint32 maximumBurstSize;
+ /**
+ * The current value of Delay Bound
+ */
+ TUint32 delayBound;
+ /**
+ * The current value of Minimum PHY Rate.
+ */
+ TUint32 minimumPhyRate;
+ /**
+ * The current value of Bandwidth Allowance.
+ */
+ TUint16 surplusBandwithAllowance;
+ /**
+ * The current value of Medium Time.
+ */
+ TUint16 mediumTime;
+ };
+
+
+/**
+ * Data structure for storing available Protected setup credentials.
+ */
+struct TWlmProtectedSetupCredentials
+ {
+ /** The number of IAPs available. */
+ TUint32 count;
+
+ /** The available IAP IDs. */
+ TFixedArray<TWlanProtectedSetupCredentialAttribute, KWlmProtectedSetupMaxCount> credentials;
+ };
+
+/**
+ * Data structure for storing a list of BSSIDs on the rogue list.
+ */
+struct TWlmRogueList
+ {
+ /** The number of BSSIDs on the rogue list. */
+ TUint32 count;
+
+ /** BSSID list. */
+ TFixedArray<TWlanBssid, KWlmRogueListMaxCount> list;
+ };
+
+
+/**
+ * Structure for storing limited information about an IAP.
+ */
+struct TWlanLimitedIapData
+ {
+ TUint iapId;
+ TUint serviceId;
+ TBuf8<KMaxSSIDLength> ssid;
+ TBuf8<KMaxSSIDLength> usedSsid;
+ EConnectionMode networkType;
+ EWlanSecurityMode securityMode;
+ TBool isPskEnabled;
+ TBool isHidden;
+ };
+
+/**
+ * Data structure for storing dynamic scan list parameters.
+ */
+struct TDynamicScanList
+ {
+ TUint32 count;
+ TUint32 size;
+ };
+
+/**
+ * Data structure for storing scan scheduling parameters.
+ */
+struct TScanScheduling
+ {
+ TInt cacheLifetime;
+ TUint maxDelay;
+ };
+
+#endif // WLMCLIENTSERVER_H