--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanldd/wlan_common/umac_common/inc/umacconnectcontext.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,346 @@
+/*
+* Copyright (c) 2006-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: Declaration of the WlanConnectContext class.
+*
+*/
+
+/*
+* %version: 21 %
+*/
+
+#ifndef WLANCONNECTCONTEXT_H
+#define WLANCONNECTCONTEXT_H
+
+#include "umac_types.h"
+#include "umacinternaldefinitions.h"
+
+#ifndef RD_WLAN_DDK
+#include <wha.h>
+#else
+#include <wlanwha.h>
+#endif
+
+#include "802dot11.h"
+#include "umacoidmsg.h"
+#include "wha_mibDefaultvalues.h"
+
+/**
+ * WLAN connection context
+ *
+ * @lib wlanumac.lib
+ * @since S60 v3.1
+ */
+class WlanConnectContext
+ {
+
+public:
+
+ /**
+ * C++ default constructor.
+ */
+ inline WlanConnectContext();
+
+ /**
+ * Destructor.
+ */
+ virtual inline ~WlanConnectContext();
+
+private:
+
+ // Prohibit copy constructor
+ WlanConnectContext( const WlanConnectContext& );
+ // Prohibit assigment operator
+ WlanConnectContext& operator= ( const WlanConnectContext& );
+
+public: // Data
+
+ /** items from Connect mgmt command; begin */
+ /**
+ * pointer to a Beacon or Probe Response frame body from the network
+ * to connect to. This pointer is temporarily stored here in the roaming case
+ * Not own.
+ */
+ const TUint8* iScanResponseFrameBody;
+ /** length of the Beacon / Probe Response frame body (above) */
+ TUint16 iScanResponseFrameBodyLength;
+ /**
+ * the IE(s) to be included into the (re-)association request.
+ * NULL, if none to be included
+ * Not own.
+ */
+ const TUint8* iIeData;
+ /** length of IE(s) to be included into the (re-)association request */
+ TUint8 iIeDataLength;
+ /** BSSID where to connect/connectted to */
+ ::TMacAddress iBSSID;
+ /** SSID where to connect/connectted to */
+ TSSID iSSID;
+ /** authentication algorithm number to be used */
+ TUint16 iAuthAlgorithmNbr;
+ /** used privacy mode */
+ TEncryptionStatus iEncryptionStatus;
+ /** Pairwise cipher to be used */
+ TWlanCipherSuite iPairwiseCipher;
+ /** Radio Measurement settings */
+ TBool iRadioMeasurement;
+ /** adhoc or infrastructure mode */
+ WHA::TOperationMode iOperationMode;
+ /** items from Connect mgmt command; end */
+
+ /** group key type inserted */
+ WHA::TKeyType iGroupKeyType;
+ /** pairwise key type inserted */
+ WHA::TKeyType iPairWiseKeyType;
+
+ /** items initially set from scaninfo - begin */
+ /** minimum basic rate of the network */
+ TUint32 iNwsaMinBasicRate;
+ /** maxium basic rate of the network*/
+ TUint32 iNwsaMaxBasicRate;
+ /** basic rate set of the network*/
+ TUint32 iNwsaBasicRateSet;
+ /** specifies to used channel of the network */
+ WHA::TChannelNumber iChannelNumber;
+ /** items initially set from scaninfo - end */
+
+ /** the desired dot11 power management mode in BSS mode */
+ WHA::TPsMode iDesiredDot11PwrMgmtMode;
+ /** the current dot11 power management mode in BSS mode */
+ WHA::TPsMode iCurrentDot11PwrMgmtMode;
+
+ /** the desired PS mode config */
+ TDot11PsModeWakeupSetting iDesiredPsModeConfig;
+ /**
+ * the desired dot11 power management mode in BSS mode
+ * from WLAN Mgmt Client perspective
+ */
+ WHA::TPsMode iClientDesiredDot11PwrMgtMode;
+
+ /** the desired Light PS mode config from WLAN Mgmt Client perspective */
+ TDot11PsModeWakeupSetting iClientLightPsModeConfig;
+
+ /** the desired Deep PS mode config from WLAN Mgmt Client perspective */
+ TDot11PsModeWakeupSetting iClientDeepPsModeConfig;
+
+ /** beacon interval */
+ TUint32 iBeaconInterval;
+ /** ATIM window */
+ TUint32 iAtim;
+
+ /** holds the flags defined below it */
+ TUint32 iFlags;
+ /** if network has short slottime bit set */
+ static const TUint32 KUseShortSlotTime = ( 1 << 0 );
+ /** if network has protection bit set we must use ctstoself */
+ static const TUint32 KProtectionBitSet = ( 1 << 1 );
+ /** QoS supported by the network */
+ static const TUint32 KQosEnabled = ( 1 << 2 );
+ /** does AP demand to use short preamble or not */
+ static const TUint32 KUseShortPreamble = ( 1 << 3 );
+ /**
+ * if we are roaming we will perform reassociation
+ * instead of association.
+ */
+ static const TUint32 KReassociate = ( 1 << 4 );
+ /** U-APSD supported by the network */
+ static const TUint32 KUapsdEnabled = ( 1 << 5 );
+ /** multicast filtering is not allowed */
+ static const TUint32 KMulticastFilteringDisAllowed = ( 1 << 6 );
+ /** network has sent ERP IE in beacon/probe response */
+ static const TUint32 KErpIePresent = ( 1 << 7 );
+ /**
+ * the AP has sent us either a disassociation or
+ * a deauthentication frame.
+ */
+ static const TUint32 KDisassociatedByAp = ( 1 << 8 );
+ /**
+ * set if WLAN mgmt client has requested Voice AC to be made
+ * both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdRequestedForVoice = ( 1 << 9 );
+ /**
+ * set if WLAN mgmt client has requested Video AC to be made
+ * both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdRequestedForVideo = ( 1 << 10 );
+ /**
+ * set if WLAN mgmt client has requested Best Effort AC to be made
+ * both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdRequestedForBestEffort = ( 1 << 11 );
+ /**
+ * set if WLAN mgmt client has requested Background AC to be made
+ * both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdRequestedForBackground = ( 1 << 12 );
+ /**
+ * set if Voice AC is both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdUsedForVoice = ( 1 << 13 );
+ /**
+ * set if Video AC is both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdUsedForVideo = ( 1 << 14 );
+ /**
+ * set if Best Effort AC is both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdUsedForBestEffort = ( 1 << 15 );
+ /**
+ * set if Background AC is both trigger and delivery enabled
+ */
+ static const TUint32 KUapsdUsedForBackground = ( 1 << 16 );
+ /**
+ * set if finding suitable time to perform AP tests has been started
+ */
+ static const TUint32 KApTestOpportunitySeekStarted = ( 1 << 17 );
+ /**
+ * set if suitable time to perform AP tests has been indicated to WLAN
+ * Mgmt Client
+ */
+ static const TUint32 KApTestOpportunityIndicated = ( 1 << 18 );
+ /** set if the target/current nw supports HT operation (802.11n) */
+ static const TUint32 KHtSupportedByNw = ( 1 << 19 );
+ /**
+ * set if WLAN Mgmt Client has disabled dynamic power mode management
+ */
+ static const TUint32 KDynamicPwrModeMgmtDisabled = ( 1 << 20 );
+
+
+ /** AP advertised supported rates IE */
+ SSupportedRatesIE iApSupportedRates;
+ /** AP advertised extended supported rates IE */
+ SExtendedSupportedRatesIE iApExtendedSupportedRates;
+ /** AP capability information fixed field */
+ SCapabilityInformationField iCapabilityInformation;
+ /** association ID */
+ TUint32 iAid;
+
+ /**
+ * these are the rates we advertise
+ * to AP in assoc-request frame. Extended rates
+ * used also if more than eight rates supported
+ */
+ SSupportedRatesIE iOurSupportedRates;
+ SExtendedSupportedRatesIE iOurExtendedSupportedRates;
+
+ /**
+ * The following four arrays contain the Access Category
+ * parameters for the current network.
+ * Indexed with WHA::TQueueId values
+ */
+ TCwMinVector iCwMin;
+ TCwMaxVector iCwMax;
+ TAifsVector iAIFS;
+ TTxOplimitVector iTxOplimit;
+ /**
+ * WMM Parater Set Count, which is a 4 bit value when coming
+ * from the network
+ * Has value KWmmParamSetNotDefined if WMM parameters have not
+ * been defined
+ */
+ TUint8 iWmmParamSetCount;
+ /**
+ * WMM IE which we use to inform about our WMM (QoS) settings
+ */
+ STxWmmIE iOurWmmIe;
+ /**
+ * Is admission control mandatory (i.e. required by the AP) for
+ * the ACs. Indexed with a WHA::TQueueId value
+ */
+ TAcmVector iAdmCtrlMandatory;
+ /**
+ * Bitmask of WHA rates which both us and the nw support
+ */
+ TUint32 iRateBitMask;
+ /*
+ * provided by WLAN mgmt client.
+ * Defines the rate class(es) to use for frame Tx.
+ * If WLAN PDD does not support as many rate classes as are specified
+ * here, only the rate class specified for ELegacy
+ * queue, which shall be the first policy in this array, will be used.
+ */
+ TTxRatePolicy iRatePolicy;
+ /*
+ * provided by WLAN mgmt client.
+ * Defines the rate class to be used for every Tx queue / QoS Access
+ * Category.
+ * TQueueId is used to index this array.
+ */
+ TQueue2RateClass iQueue2RateClass;
+ /*
+ * provided by WLAN mgmt client.
+ * Defines the Max Tx rate which will be initially used to transmit using
+ * the rate class in question. If the specified rate is not supported,
+ * the next lower supported rate from the rate policy will be used
+ * instead.
+ * Only the first numOfPolicyObjects values (see TTxRatePolicy) from
+ * the beginning of the array are relevant.
+ */
+ TInitialMaxTxRate4RateClass iInitialMaxTxRate4RateClass;
+ /**
+ * provided by WLAN mgmt client.
+ * Defines the rate class(es) to use for frame Tx when the WLAN vendor
+ * implementation handles Tx rate adaptation.
+ * If WLAN PDD does not support as many rate classes as are specified
+ * in this command message, only the rate class specified for ELegacy
+ * queue, which shall be the first class in this array, will be used.
+ * The mapping defined in queue2RateClass applies also to these classes.
+ * The shortRetryLimit and the longRetryLimit values defined as part of
+ * the ratePolicy are relevant also with the auto rate policy.
+ * Only the first numOfPolicyObjects values (see TTxRatePolicy) from
+ * the beginning of the array are relevant.
+ */
+ TTxAutoRatePolicy iAutoRatePolicy;
+ /**
+ * provided by WLAN mgmt client.
+ * Defines the HT MCS sets to use for frame Tx when communicating
+ * with a HT network.
+ * If WLAN PDD does not support as many MCS sets as are specified
+ * here, only the MCS set specified for ELegacy
+ * queue, which shall be the first MCS set in this array, will be used.
+ * The mapping defined in queue2RateClass applies also to these MCS sets.
+ * The shortRetryLimit and the longRetryLimit values defined as part of
+ * the iRatePolicy are relevant also with the MCS sets.
+ * Only the first numOfPolicyObjects values (see TTxRatePolicy) from
+ * the beginning of the array are relevant.
+ */
+ THtMcsPolicy iHtMcsPolicy;
+ /**
+ * the ID of the special Tx rate policy which can be used to transmit
+ * frames whose successful delivery is of special importance.
+ * Value zero means that such a policy is not available.
+ */
+ TUint8 iSpecialTxRatePolicyId;
+ /**
+ * Maximum U-APSD Service Period length. Indicates the max number of MSDUs and
+ * MMPDUs the WMM AP may deliver to a WMM STA during any service period
+ * triggered by the WMM STA.
+ * This value is provided by WLAN mgmt client
+ */
+ TQosInfoUapsdMaxSpLen iUapsdMaxSpLen;
+ /**
+ * HT Capabilities element of the target/current network informing its
+ * static HT capabilities
+ */
+ SHtCapabilitiesIE iNwHtCapabilitiesIe;
+ /**
+ * HT Operation element of the target/current network informing its
+ * dynamic HT configuration
+ */
+ SHtOperationIE iNwHtOperationIe;
+ };
+
+#include "umacconnectcontext.inl"
+
+#endif // WLANCONNECTCONTEXT_H