wlan_bearer/wlanldd/wlan_common/umac_common/inc/umacconnectcontext.h
changeset 0 c40eb8fe8501
child 3 6524e815f76f
--- /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