wlan_bearer/wlanldd/wlan_common/umac_common/inc/umacconnectcontext.h
changeset 0 c40eb8fe8501
child 3 6524e815f76f
equal deleted inserted replaced
-1:000000000000 0:c40eb8fe8501
       
     1 /*
       
     2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Declaration of the WlanConnectContext class.
       
    15 *
       
    16 */
       
    17 
       
    18 /*
       
    19 * %version: 21 %
       
    20 */
       
    21 
       
    22 #ifndef WLANCONNECTCONTEXT_H
       
    23 #define WLANCONNECTCONTEXT_H
       
    24 
       
    25 #include "umac_types.h"
       
    26 #include "umacinternaldefinitions.h"
       
    27 
       
    28 #ifndef RD_WLAN_DDK
       
    29 #include <wha.h>
       
    30 #else
       
    31 #include <wlanwha.h>
       
    32 #endif
       
    33 
       
    34 #include "802dot11.h"
       
    35 #include "umacoidmsg.h"
       
    36 #include "wha_mibDefaultvalues.h"
       
    37 
       
    38 /**
       
    39  *  WLAN connection context
       
    40  *
       
    41  *  @lib wlanumac.lib
       
    42  *  @since S60 v3.1
       
    43  */
       
    44 class WlanConnectContext
       
    45     {
       
    46     
       
    47 public: 
       
    48 
       
    49     /**
       
    50     * C++ default constructor.
       
    51     */
       
    52     inline WlanConnectContext();
       
    53     
       
    54     /**
       
    55     * Destructor.
       
    56     */
       
    57     virtual inline ~WlanConnectContext();
       
    58 
       
    59 private:
       
    60 
       
    61     // Prohibit copy constructor 
       
    62     WlanConnectContext( const WlanConnectContext& );
       
    63     // Prohibit assigment operator 
       
    64     WlanConnectContext& operator= ( const WlanConnectContext& );
       
    65 
       
    66 public: // Data
       
    67 
       
    68     /** items from Connect mgmt command; begin */
       
    69     /** 
       
    70     * pointer to a Beacon or Probe Response frame body from the network
       
    71     * to connect to. This pointer is temporarily stored here in the roaming case
       
    72     * Not own.  
       
    73     */
       
    74     const TUint8*           iScanResponseFrameBody;
       
    75     /** length of the Beacon / Probe Response frame body (above) */
       
    76     TUint16                 iScanResponseFrameBodyLength;
       
    77     /** 
       
    78     * the IE(s) to be included into the (re-)association request.
       
    79     * NULL, if none to be included 
       
    80     * Not own.  
       
    81     */
       
    82     const TUint8*           iIeData;
       
    83     /** length of IE(s) to be included into the (re-)association request */
       
    84     TUint8                  iIeDataLength;
       
    85     /** BSSID where to connect/connectted to */
       
    86     ::TMacAddress           iBSSID;
       
    87     /** SSID where to connect/connectted to */
       
    88     TSSID                   iSSID;
       
    89     /** authentication algorithm number to be used */
       
    90     TUint16                 iAuthAlgorithmNbr;      
       
    91     /** used privacy mode */
       
    92     TEncryptionStatus       iEncryptionStatus;  
       
    93     /** Pairwise cipher to be used */
       
    94     TWlanCipherSuite        iPairwiseCipher;
       
    95     /** Radio Measurement settings */
       
    96     TBool                   iRadioMeasurement;
       
    97     /** adhoc or infrastructure mode */
       
    98     WHA::TOperationMode     iOperationMode;
       
    99     /** items from Connect mgmt command; end */
       
   100     
       
   101     /** group key type inserted */
       
   102     WHA::TKeyType           iGroupKeyType;
       
   103     /** pairwise key type inserted */
       
   104     WHA::TKeyType           iPairWiseKeyType;
       
   105 
       
   106     /** items initially set from scaninfo - begin */
       
   107     /** minimum basic rate of the network */
       
   108     TUint32                 iNwsaMinBasicRate;
       
   109     /** maxium basic rate of the network*/
       
   110     TUint32                 iNwsaMaxBasicRate;
       
   111     /** basic rate set of the network*/
       
   112     TUint32                 iNwsaBasicRateSet;
       
   113     /** specifies to used channel of the network */
       
   114     WHA::TChannelNumber     iChannelNumber;
       
   115     /** items initially set from scaninfo - end */
       
   116 
       
   117     /** the desired dot11 power management mode in BSS mode */
       
   118     WHA::TPsMode            iDesiredDot11PwrMgmtMode;
       
   119     /** the current dot11 power management mode in BSS mode */
       
   120     WHA::TPsMode            iCurrentDot11PwrMgmtMode;
       
   121     
       
   122     /** the desired PS mode config */
       
   123     TDot11PsModeWakeupSetting iDesiredPsModeConfig;
       
   124     /** 
       
   125     * the desired dot11 power management mode in BSS mode 
       
   126     * from WLAN Mgmt Client perspective 
       
   127     */
       
   128     WHA::TPsMode            iClientDesiredDot11PwrMgtMode;
       
   129     
       
   130     /** the desired Light PS mode config from WLAN Mgmt Client perspective */ 
       
   131     TDot11PsModeWakeupSetting iClientLightPsModeConfig;
       
   132     
       
   133     /** the desired Deep PS mode config from WLAN Mgmt Client perspective */ 
       
   134     TDot11PsModeWakeupSetting iClientDeepPsModeConfig;    
       
   135     
       
   136     /** beacon interval */
       
   137     TUint32                 iBeaconInterval;         
       
   138     /** ATIM window */
       
   139     TUint32                 iAtim;
       
   140 
       
   141     /** holds the flags defined below it */
       
   142     TUint32                 iFlags;
       
   143     /** if network has short slottime bit set */
       
   144     static const TUint32 KUseShortSlotTime     = ( 1 << 0 );
       
   145     /** if network has protection bit set we must use ctstoself */
       
   146     static const TUint32 KProtectionBitSet     = ( 1 << 1 );
       
   147     /** QoS supported by the network */
       
   148     static const TUint32 KQosEnabled           = ( 1 << 2 );
       
   149     /** does AP demand to use short preamble or not */
       
   150     static const TUint32 KUseShortPreamble     = ( 1 << 3 );
       
   151     /** 
       
   152     * if we are roaming we will perform reassociation 
       
   153     * instead of association.
       
   154     */
       
   155     static const TUint32 KReassociate          = ( 1 << 4 );
       
   156     /** U-APSD supported by the network */
       
   157     static const TUint32 KUapsdEnabled         = ( 1 << 5 );
       
   158     /** multicast filtering is not allowed */
       
   159     static const TUint32 KMulticastFilteringDisAllowed = ( 1 << 6 );      
       
   160     /** network has sent ERP IE in beacon/probe response */
       
   161     static const TUint32 KErpIePresent         = ( 1 << 7 );      
       
   162     /** 
       
   163     * the AP has sent us either a disassociation or
       
   164     * a deauthentication frame. 
       
   165     */
       
   166     static const TUint32 KDisassociatedByAp    = ( 1 << 8 );      
       
   167     /** 
       
   168     * set if WLAN mgmt client has requested Voice AC to be made 
       
   169     * both trigger and delivery enabled 
       
   170     */
       
   171     static const TUint32 KUapsdRequestedForVoice = ( 1 << 9 );
       
   172     /** 
       
   173     * set if WLAN mgmt client has requested Video AC to be made 
       
   174     * both trigger and delivery enabled 
       
   175     */
       
   176     static const TUint32 KUapsdRequestedForVideo = ( 1 << 10 );
       
   177     /** 
       
   178     * set if WLAN mgmt client has requested Best Effort AC to be made
       
   179     * both trigger and delivery enabled
       
   180     */
       
   181     static const TUint32 KUapsdRequestedForBestEffort = ( 1 << 11 );
       
   182     /** 
       
   183     * set if WLAN mgmt client has requested Background AC to be made
       
   184     * both trigger and delivery enabled 
       
   185     */
       
   186     static const TUint32 KUapsdRequestedForBackground = ( 1 << 12 );
       
   187     /** 
       
   188     * set if Voice AC is both trigger and delivery enabled 
       
   189     */
       
   190     static const TUint32 KUapsdUsedForVoice = ( 1 << 13 );
       
   191     /** 
       
   192     * set if Video AC is both trigger and delivery enabled 
       
   193     */
       
   194     static const TUint32 KUapsdUsedForVideo = ( 1 << 14 );
       
   195     /** 
       
   196     * set if Best Effort AC is both trigger and delivery enabled
       
   197     */
       
   198     static const TUint32 KUapsdUsedForBestEffort = ( 1 << 15 );
       
   199     /** 
       
   200     * set if Background AC is both trigger and delivery enabled 
       
   201     */
       
   202     static const TUint32 KUapsdUsedForBackground = ( 1 << 16 );
       
   203     /** 
       
   204     * set if finding suitable time to perform AP tests has been started
       
   205     */
       
   206     static const TUint32 KApTestOpportunitySeekStarted = ( 1 << 17 );
       
   207     /** 
       
   208     * set if suitable time to perform AP tests has been indicated to WLAN 
       
   209     * Mgmt Client
       
   210     */
       
   211     static const TUint32 KApTestOpportunityIndicated = ( 1 << 18 );
       
   212     /** set if the target/current nw supports HT operation (802.11n) */
       
   213     static const TUint32 KHtSupportedByNw = ( 1 << 19 );
       
   214     /** 
       
   215     * set if WLAN Mgmt Client has disabled dynamic power mode management
       
   216     */
       
   217     static const TUint32 KDynamicPwrModeMgmtDisabled = ( 1 << 20 );
       
   218 
       
   219     
       
   220     /** AP advertised supported rates IE */
       
   221     SSupportedRatesIE   iApSupportedRates;
       
   222     /** AP advertised extended supported rates IE */
       
   223     SExtendedSupportedRatesIE iApExtendedSupportedRates;
       
   224     /** AP capability information fixed field */
       
   225     SCapabilityInformationField iCapabilityInformation;                
       
   226     /** association ID */
       
   227     TUint32             iAid;
       
   228 
       
   229     /** 
       
   230     * these are the rates we advertise 
       
   231     * to AP in assoc-request frame. Extended rates
       
   232     * used also if more than eight rates supported
       
   233     */
       
   234     SSupportedRatesIE   iOurSupportedRates;
       
   235     SExtendedSupportedRatesIE iOurExtendedSupportedRates;
       
   236 
       
   237     /** 
       
   238     * The following four arrays contain the Access Category
       
   239     * parameters for the current network.
       
   240     * Indexed with WHA::TQueueId values
       
   241     */
       
   242     TCwMinVector       iCwMin;
       
   243     TCwMaxVector       iCwMax;
       
   244     TAifsVector        iAIFS;
       
   245     TTxOplimitVector   iTxOplimit;    
       
   246     /** 
       
   247     * WMM Parater Set Count, which is a 4 bit value when coming
       
   248     * from the network
       
   249     * Has value KWmmParamSetNotDefined if WMM parameters have not 
       
   250     * been defined
       
   251     */
       
   252     TUint8 iWmmParamSetCount;
       
   253     /** 
       
   254     * WMM IE which we use to inform about our WMM (QoS) settings
       
   255     */
       
   256     STxWmmIE iOurWmmIe;
       
   257     /** 
       
   258     * Is admission control mandatory (i.e. required by the AP) for 
       
   259     * the ACs. Indexed with a WHA::TQueueId value
       
   260     */
       
   261     TAcmVector iAdmCtrlMandatory;    
       
   262     /** 
       
   263     * Bitmask of WHA rates which both us and the nw support
       
   264     */
       
   265     TUint32 iRateBitMask;
       
   266     /*
       
   267     * provided by WLAN mgmt client.
       
   268     * Defines the rate class(es) to use for frame Tx.
       
   269     * If WLAN PDD does not support as many rate classes as are specified
       
   270     * here, only the rate class specified for ELegacy 
       
   271     * queue, which shall be the first policy in this array, will be used.
       
   272     */
       
   273     TTxRatePolicy iRatePolicy;
       
   274     /*
       
   275     * provided by WLAN mgmt client.
       
   276     * Defines the rate class to be used for every Tx queue / QoS Access 
       
   277     * Category.
       
   278     * TQueueId is used to index this array.
       
   279     */
       
   280     TQueue2RateClass iQueue2RateClass;
       
   281     /*
       
   282     * provided by WLAN mgmt client.
       
   283     * Defines the Max Tx rate which will be initially used to transmit using 
       
   284     * the rate class in question. If the specified rate is not supported, 
       
   285     * the next lower supported rate from the rate policy will be used 
       
   286     * instead.
       
   287     * Only the first numOfPolicyObjects values (see TTxRatePolicy) from 
       
   288     * the beginning of the array are relevant.
       
   289     */
       
   290     TInitialMaxTxRate4RateClass iInitialMaxTxRate4RateClass;
       
   291     /** 
       
   292     * provided by WLAN mgmt client.
       
   293     * Defines the rate class(es) to use for frame Tx when the WLAN vendor
       
   294     * implementation handles Tx rate adaptation.
       
   295     * If WLAN PDD does not support as many rate classes as are specified
       
   296     * in this command message, only the rate class specified for ELegacy 
       
   297     * queue, which shall be the first class in this array, will be used.
       
   298     * The mapping defined in queue2RateClass applies also to these classes.
       
   299     * The shortRetryLimit and the longRetryLimit values defined as part of 
       
   300     * the ratePolicy are relevant also with the auto rate policy. 
       
   301     * Only the first numOfPolicyObjects values (see TTxRatePolicy) from 
       
   302     * the beginning of the array are relevant.
       
   303     */
       
   304     TTxAutoRatePolicy iAutoRatePolicy;
       
   305     /**
       
   306     * provided by WLAN mgmt client.
       
   307     * Defines the HT MCS sets to use for frame Tx when communicating
       
   308     * with a HT network.
       
   309     * If WLAN PDD does not support as many MCS sets as are specified
       
   310     * here, only the MCS set specified for ELegacy 
       
   311     * queue, which shall be the first MCS set in this array, will be used.
       
   312     * The mapping defined in queue2RateClass applies also to these MCS sets.
       
   313     * The shortRetryLimit and the longRetryLimit values defined as part of 
       
   314     * the iRatePolicy are relevant also with the MCS sets. 
       
   315     * Only the first numOfPolicyObjects values (see TTxRatePolicy) from 
       
   316     * the beginning of the array are relevant.
       
   317     */
       
   318     THtMcsPolicy iHtMcsPolicy;
       
   319     /** 
       
   320     * the ID of the special Tx rate policy which can be used to transmit
       
   321     * frames whose successful delivery is of special importance.
       
   322     * Value zero means that such a policy is not available. 
       
   323     */
       
   324     TUint8 iSpecialTxRatePolicyId;
       
   325     /**
       
   326     * Maximum U-APSD Service Period length. Indicates the max number of MSDUs and 
       
   327     * MMPDUs the WMM AP may deliver to a WMM STA during any service period 
       
   328     * triggered by the WMM STA.
       
   329     * This value is provided by WLAN mgmt client
       
   330     */
       
   331     TQosInfoUapsdMaxSpLen iUapsdMaxSpLen;
       
   332     /** 
       
   333     * HT Capabilities element of the target/current network informing its 
       
   334     * static HT capabilities
       
   335     */
       
   336     SHtCapabilitiesIE iNwHtCapabilitiesIe;
       
   337     /** 
       
   338     * HT Operation element of the target/current network informing its 
       
   339     * dynamic HT configuration
       
   340     */
       
   341     SHtOperationIE iNwHtOperationIe;
       
   342     };
       
   343 
       
   344 #include "umacconnectcontext.inl"
       
   345 
       
   346 #endif // WLANCONNECTCONTEXT_H