wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacDot11MacError.h
changeset 0 c40eb8fe8501
equal deleted inserted replaced
-1:000000000000 0:c40eb8fe8501
       
     1 /*
       
     2 * Copyright (c) 2002-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 WlanDot11MacError class.
       
    15 *
       
    16 */
       
    17 
       
    18 /*
       
    19 * %version: 18 %
       
    20 */
       
    21 
       
    22 #ifndef WLANDOT11MACERROR_H
       
    23 #define WLANDOT11MACERROR_H
       
    24 
       
    25 #include "UmacDot11State.h"
       
    26 
       
    27 /**
       
    28  *  dot11 state object for unrecoverable error
       
    29  *
       
    30  *  This state becomes the current state either 
       
    31  *  by external or internal reason.
       
    32  *  External reason is the WHA-Error indication and internal reason
       
    33  *  for example a memory allocation failure.
       
    34  *  In any cause system must be reset in order to recover.
       
    35  *  This is the termination point for the dot11 state fsm
       
    36  *  and the whole framework must be deallocated from the memory and
       
    37  *  reinitialised as there is no future anymore in this domain...
       
    38  *
       
    39  *  @lib wlanumac.lib
       
    40  *  @since S60 v3.1
       
    41  */
       
    42 class WlanDot11MacError : public WlanDot11State
       
    43     {    
       
    44     /**  is entry method already executed or not */
       
    45     enum { KEntryExecuted   = (1 << 0) };
       
    46     /** oid to be completed or not */
       
    47     enum { KCompleteOid     = (1 << 1) };
       
    48 
       
    49 public:
       
    50     
       
    51     /**
       
    52     * C++ default constructor.
       
    53     */
       
    54     WlanDot11MacError() : iFlags ( 0 ) {};
       
    55 
       
    56     /**
       
    57     * Destructor.
       
    58     */
       
    59     virtual ~WlanDot11MacError() {};
       
    60                 
       
    61 private:    
       
    62 
       
    63     // Functions from base classes
       
    64 
       
    65     /**
       
    66     * From WlanMacState
       
    67     * State entry method
       
    68     * @since S60 3.1
       
    69     * @param aCtxImpl global statemachine context
       
    70     */
       
    71     virtual void Entry( WlanContextImpl& aCtxImpl );
       
    72 
       
    73     /**
       
    74     * From WlanMacState
       
    75     * State exit method
       
    76     * @since S60 3.1
       
    77     * @param aCtxImpl global statemachine context
       
    78     */
       
    79     virtual void Exit( WlanContextImpl& aCtxImpl );
       
    80 
       
    81     /**
       
    82      * From MWlanUserEvent
       
    83      * Make system ready for unloading
       
    84      *
       
    85      * @since S60 3.1
       
    86      * @param aCtxImpl global statemachine context
       
    87      */
       
    88     virtual void FinitSystem( WlanContextImpl& aCtxImpl );
       
    89 
       
    90     /**
       
    91      * From WlanMacState
       
    92      *
       
    93      * @since S60 3.1
       
    94      * @param aCtxImpl global statemachine context
       
    95      */
       
    96     virtual void Indication( 
       
    97         WlanContextImpl& aCtxImpl, 
       
    98         WHA::TIndicationId aIndicationId,
       
    99         const WHA::UIndicationParams& aIndicationParams );
       
   100 
       
   101     /**
       
   102     * From MWlanUserEvent
       
   103     * Set inital WLAN specific parameters
       
   104     * @param aCtxImpl statemachine context
       
   105     * @param aRTSThreshold 
       
   106     * @param aMaxTxMSDULifetime 
       
   107     * @param aVoiceCallEntryTimeout when we are not in Voice over WLAN Call
       
   108     *        state and we transmit at least aVoiceCallEntryTxThreshold
       
   109     *        Voice priority frames during the time period (microseconds)
       
   110     *        denoted by this parameter, we enter Voice over WLAN Call state
       
   111     * @param aVoiceCallEntryTxThreshold Threshold value for the number of 
       
   112     *        Voice priority Tx frames to enter Voice over WLAN Call state    
       
   113     * @param aVoiceNullTimeout NULL frame sending interval during a Voice over
       
   114     *        WLAN call in U-APSD power save mode
       
   115     * @param aNoVoiceTimeout after this long time of no Voice priority data 
       
   116     *        Tx, exit Voice over WLAN call state
       
   117     * @param aKeepAliveTimeout Keep Alive frame sending interval in 
       
   118     *        infrastructure mode
       
   119     * @param aSpRcpiIndicationLevel If this RCPI level is predicted to be
       
   120     *        reached within the time specified by aSpTimeToCountPrediction,
       
   121     *        a signal loss prediction indication is sent. 
       
   122     * @param aSpTimeToCountPrediction Specifies the time (in microseconds)
       
   123     *        how far into the future signal prediction is done.
       
   124     * @param aSpMinIndicationInterval The minimum time difference (in 
       
   125     *        microseconds) between two signal loss prediction indications.
       
   126     * @return KErrNone command completed successfully 
       
   127     *         any other = failure
       
   128     */        
       
   129     virtual TBool Configure(
       
   130         WlanContextImpl& aCtxImpl,
       
   131         TUint32 aRTSThreshold,              
       
   132         TUint32 aMaxTxMSDULifetime,
       
   133         TUint32 aVoiceCallEntryTimeout,
       
   134         TUint32 aVoiceCallEntryTxThreshold,
       
   135         TUint32 aVoiceNullTimeout,
       
   136         TUint32 aNoVoiceTimeout,
       
   137         TUint32 aKeepAliveTimeout,
       
   138         TUint32 aSpRcpiIndicationLevel,
       
   139         TUint32 aSpTimeToCountPrediction,
       
   140         TUint32 aSpMinIndicationInterval );
       
   141 
       
   142     /**
       
   143     * From MWlanUserEvent
       
   144     * Connect (authenticate and associate) to a WLAN network
       
   145     *
       
   146     * @since S60 3.1
       
   147     * @param aCtxImpl statemachine context
       
   148     * @param aSSID Name of the network
       
   149     * @param aBSSID BSSID of the access point
       
   150     * @param aAuthAlgorithmNbr Authentication algorithm number to be used
       
   151     * @param aEncryptionStatus Used encryption level
       
   152     * @param aIsInfra ETrue when connecting to infrastructure network
       
   153     * @param aScanResponseFrameBodyLength length of the scan response frame body
       
   154     * @param aScanResponseFrameBody scan response frame body
       
   155     * @param aIeData The IE(s) to be included into the (re-)association request.
       
   156     *              NULL, if none to be included
       
   157     * @param aIeDataLength Length of the IE(s) to be included into the 
       
   158     *                    (re-)association request
       
   159     * @return ETrue if a state transition occurred
       
   160     *         EFalse otherwise
       
   161     */
       
   162     virtual TBool Connect(
       
   163         WlanContextImpl& aCtxImpl,
       
   164         const TSSID& aSSID,                 
       
   165         const TMacAddress& aBSSID,          
       
   166         TUint16 aAuthAlgorithmNbr,      
       
   167         TEncryptionStatus aEncryptionStatus,
       
   168         TBool aIsInfra,
       
   169         TUint16 aScanResponseFrameBodyLength,
       
   170         const TUint8* aScanResponseFrameBody,
       
   171         const TUint8* aIeData,
       
   172         TUint16 aIeDataLength );
       
   173 
       
   174     /**
       
   175     * From MWlanUserEvent
       
   176     * Start an own IBSS network if there doesn't already exist a network
       
   177     * with that name. If does then it is joined
       
   178     * @param aCtxImpl statemachine context
       
   179     * @param aSSID name of the network
       
   180     * @param aBeaconInterval Beacon period in TUs (kusec). range:[1, 1024]
       
   181     * @param aAtim ATIM window
       
   182     * @param aChannel Used channel (1-14). 
       
   183     *        Has to be legal at the current region.
       
   184     * @param aEncryptionStatus, used encryption level
       
   185     * @return KErrNone command completed successfully 
       
   186     *         any other = failure
       
   187     */
       
   188     virtual TBool StartIBSS(
       
   189         WlanContextImpl& aCtxImpl,
       
   190         const TSSID& aSSID,                 
       
   191         TUint32 aBeaconInterval,            
       
   192         TUint32 aAtim,                      
       
   193         TUint32 aChannel,                   
       
   194         TEncryptionStatus aEncryptionStatus );
       
   195 
       
   196     /**
       
   197     * From MWlanUserEvent
       
   198     * Scan all available networks. 
       
   199     *
       
   200     * @since S60 3.1
       
   201     * @param aCtxImpl statemachine context
       
   202     * @param aMode passive or active scan see #TScanMode
       
   203     * @param aSSID Network that APs are scanned. Can be broadcast SSID.
       
   204     * @param aScanRate rate that is used in active scanning see #TRate
       
   205     * @param aMinChannelTime min. time to listen beacons/probe responses on 
       
   206     *                        a channel
       
   207     * @param aMaxChannelTime max. time to listen beacons/probe responses on 
       
   208     *                        a channel
       
   209     * @param aSplitScan if ETrue, use split scan
       
   210     * @return KErrNone command completed successfully 
       
   211     * any other = failure
       
   212     */
       
   213     virtual TBool Scan(
       
   214         WlanContextImpl& aCtxImpl,
       
   215         TScanMode aMode,                   
       
   216         const TSSID& aSSID,                
       
   217         TRate aScanRate,                   
       
   218         SChannels& aChannels,
       
   219         TUint32 aMinChannelTime,            
       
   220         TUint32 aMaxChannelTime,
       
   221         TBool aSplitScan );       
       
   222     
       
   223     /**
       
   224     * From MWlanUserEvent
       
   225     * Stop a previously started scan process. 
       
   226     *
       
   227     * @since S60 3.2
       
   228     * @param aCtxImpl global statemachine context
       
   229     * @return ETrue if a state transition occurred
       
   230     *         EFalse otherwise
       
   231     */
       
   232     virtual TBool StopScan( WlanContextImpl& aCtxImpl );
       
   233 
       
   234     /**
       
   235     * From MWlanUserEvent
       
   236     * Disconnect STA from current network.
       
   237     *
       
   238     * @since S60 3.1
       
   239     * @param aCtxImpl statemachine context
       
   240     * @return KErrNone command completed successfully 
       
   241     * any other = failure
       
   242     */
       
   243     virtual TBool Disconnect( WlanContextImpl& aCtxImpl );
       
   244 
       
   245     /**
       
   246     * From MWlanUserEvent
       
   247     * Set 802.11 power mgmt mode in infrastructure networks.
       
   248     * @param aCtxImpl statemachine context
       
   249     * @param aPowerMode desired power mode
       
   250     * @param aDisableDynamicPowerModeManagement If ETrue, disables the dynamic
       
   251     *        power mode management handling. Relevant only when aPowerMode
       
   252     *        is EPowerModePs
       
   253     * @param aWakeupModeInLightPs WLAN wake-up mode in Light PS mode
       
   254     * @param aListenIntervalInLightPs specifies the value of N for wake-up
       
   255     *        modes 2 and 3 in Light PS mode. 
       
   256     * @param aWakeupModeInDeepPs WLAN wake-up mode in Deep PS mode
       
   257     * @param aListenIntervalInDeepPs specifies the value of N for wake-up 
       
   258     *        modes 2 and 3 in Deep PS mode
       
   259     * @return ETrue if a state transition occurred
       
   260     *         EFalse otherwise
       
   261     */
       
   262     virtual TBool SetPowerMode(
       
   263         WlanContextImpl& aCtxImpl,
       
   264         TPowerMode aPowerMode,
       
   265         TBool aDisableDynamicPowerModeManagement,
       
   266         TWlanWakeUpInterval aWakeupModeInLightPs, 
       
   267         TUint8 aListenIntervalInLightPs,
       
   268         TWlanWakeUpInterval aWakeupModeInDeepPs,
       
   269         TUint8 aListenIntervalInDeepPs );
       
   270 
       
   271     /**
       
   272     * From MWlanUserEvent
       
   273     * Set trigger level for RCPI trigger. 
       
   274     * @param aCtxImpl statemachine context
       
   275     * @param aRcpiTrigger RCPI trigger level
       
   276     * @return KErrNone command completed successfully 
       
   277     *         any other = failure
       
   278     */
       
   279     virtual TBool SetRcpiTriggerLevel(
       
   280         WlanContextImpl& aCtxImpl,
       
   281         TUint32 aRcpiTrigger);          
       
   282     
       
   283     /**
       
   284     * From MWlanUserEvent
       
   285     * Gets last RCPI value
       
   286     * @param aCtxImpl statemachine context
       
   287     * @return KErrNone command completed successfully 
       
   288     *         any other = failure
       
   289     */
       
   290     virtual TBool GetLastRcpi(
       
   291         WlanContextImpl& aCtxImpl );   
       
   292     
       
   293     /**
       
   294      * From MWlanUserEvent
       
   295      * Add (or replace) a TKIP key
       
   296      *
       
   297      * @since S60 3.1
       
   298      * @param aCtxImpl statemachine context
       
   299      * @param aData data blob that holds TKIP parameters
       
   300      * @param aLength length of the data blob
       
   301      * @param aKeyIndex value for key id filed of WEP IV
       
   302      * @return ETrue if state transition occurred, EFalse otherwise
       
   303      */
       
   304     virtual TBool AddTkIPKey( 
       
   305         WlanContextImpl& aCtxImpl,
       
   306         const TUint8* aData, 
       
   307         TUint32 aLength,
       
   308         T802Dot11WepKeyId aKeyIndex,
       
   309         const TMacAddress& aMacAddr );
       
   310 
       
   311     /**
       
   312      * From MWlanUserEvent
       
   313      * Add (or replace) a multicast TKIP key.
       
   314      *
       
   315      * @since S60 3.1
       
   316      * @param aCtxImpl statemachine context
       
   317      * @param aKeyIndex Value for the key id field of WEP IV.
       
   318      * @param aLength Length of the TKIP parameters.
       
   319      * @param aData TKIP parameters.
       
   320      * @return ETrue if state transition occurred, EFalse otherwise
       
   321      */
       
   322     virtual TBool AddMulticastTKIPKey( 
       
   323         WlanContextImpl& aCtxImpl,
       
   324         T802Dot11WepKeyId aKeyIndex,
       
   325         TUint32 aLength,
       
   326         const TUint8* aData );
       
   327 
       
   328     /**
       
   329      * From MWlanUserEvent
       
   330      * Add (or replace) a pairwise AES key.
       
   331      *
       
   332      * @since S60 3.1
       
   333      * @param aCtxImpl statemachine context
       
   334      * @param aLength Length of the AES parameters.
       
   335      * @param aData AES parameters.
       
   336      * @return ETrue if state transition occurred, EFalse otherwise
       
   337      */
       
   338     virtual TBool AddAesKey( 
       
   339         WlanContextImpl& aCtxImpl,
       
   340         const TUint8* aData, 
       
   341         TUint32 aLength,
       
   342         const TMacAddress& aMacAddr );
       
   343 
       
   344     /**
       
   345      * From MWlanUserEvent
       
   346      * Add (or replace) an AES group key.
       
   347      *
       
   348      * @since S60 3.1
       
   349      * @param aCtxImpl statemachine context
       
   350      * @param aKeyIndex Value for the key id field of WEP IV.
       
   351      * @param aLength Length of the AES parameters.
       
   352      * @param aData AES parameters.
       
   353      * @return ETrue if state transition occurred, EFalse otherwise
       
   354      */
       
   355     virtual TBool AddMulticastAesKey( 
       
   356         WlanContextImpl& aCtxImpl,
       
   357         T802Dot11WepKeyId aKeyIndex,
       
   358         TUint32 aLength,
       
   359         const TUint8* aData );
       
   360 
       
   361     /**
       
   362      * From MWlanUserEvent
       
   363      * Add/set (or replace) a broadcast WEP key
       
   364      *
       
   365      * @since S60 3.1
       
   366      * @param aCtxImpl statemachine context
       
   367      * @param aKeyIndex Index of the key in the default key table 
       
   368      * @param aKeyLength Length of the key in BYTES
       
   369      * @param aKey The WEP key
       
   370      * @param aMac MAC address associated with the key
       
   371      * @return ETrue if state transition occurred, EFalse otherwise
       
   372      */
       
   373     virtual TBool AddBroadcastWepKey(
       
   374         WlanContextImpl& aCtxImpl,
       
   375         TUint32 aKeyIndex,             
       
   376         TBool aUseAsDefaulKey,                
       
   377         TUint32 aKeyLength,                      
       
   378         const TUint8 aKey[KMaxWEPKeyLength],
       
   379         const TMacAddress& aMac );   
       
   380 
       
   381     /**
       
   382      * From MWlanUserEvent
       
   383      * Add (or replace) a unicast WEP key.
       
   384      *
       
   385      * @since S60 3.1
       
   386      * @param aCtxImpl statemachine context
       
   387      * @param aMacAddr MAC address to which the WEP key corresponds to
       
   388      * @param aKeyLength Length of the key in BYTES
       
   389      * @param aKey The WEP key
       
   390      * @return ETrue if state transition occurred, EFalse otherwise
       
   391      */
       
   392     virtual TBool AddUnicastWepKey(
       
   393         WlanContextImpl& aCtxImpl,
       
   394         const TMacAddress& aMacAddr,
       
   395         TUint32 aKeyLength,                      
       
   396         const TUint8 aKey[KMaxWEPKeyLength]);
       
   397 
       
   398     /**
       
   399     * From MWlanUserEvent
       
   400     * Add (or replace) a multicast WAPI key.
       
   401     *
       
   402     * @param aCtxImpl statemachine context
       
   403     * @param aKeyIndex  Value for the key id field of WEP IV.
       
   404     * @param aLength    Length of the WAPI parameters.
       
   405     * @param aData      WAPI parameters.
       
   406     * @return ETrue if state transition occurred, EFalse otherwise
       
   407     */
       
   408     virtual TBool AddMulticastWapiKey( 
       
   409         WlanContextImpl& aCtxImpl,
       
   410         T802Dot11WepKeyId aKeyIndex,
       
   411         TUint32 aLength,
       
   412         const TUint8* aData );
       
   413 
       
   414     /**
       
   415     * From MWlanUserEvent
       
   416     * Add (or replace) a pairwise WAPI key.
       
   417     *
       
   418     * @param aCtxImpl statemachine context
       
   419     * @param aData data blob that holds WAPI parameters
       
   420     * @param aLength length of the data blob
       
   421     * @param aKeyIndex value for key id field of WEP IV
       
   422     * @param aMacAddr MAC address of the peer station
       
   423     * @return ETrue if state transition occurred, EFalse otherwise
       
   424     */
       
   425     virtual TBool AddUnicastWapiKey( 
       
   426         WlanContextImpl& aCtxImpl,
       
   427         const TUint8* aData, 
       
   428         TUint32 aLength,
       
   429         T802Dot11WepKeyId aKeyIndex,
       
   430         const TMacAddress& aMacAddr );
       
   431 
       
   432     /**
       
   433      * From MWlanUserEvent
       
   434      * Set transmission power level. 
       
   435      * This has to be legal at the current region.
       
   436      *
       
   437      * @since S60 3.1
       
   438      * @param aCtxImpl statemachine context
       
   439      * @param aLevel Transmission power level in mW.
       
   440      * @return ETrue if state transition occurred, EFalse otherwise
       
   441      */
       
   442     virtual TBool SetTxPowerLevel(
       
   443         WlanContextImpl& aCtxImpl,
       
   444         TUint32 aLevel);    
       
   445 
       
   446     /**
       
   447     * From MWlanUserEvent
       
   448     * Adds a multicast MAC address and starts to filter (Rx) multicast 
       
   449     * traffic sent to any other MAC addresses than those that have been 
       
   450     * specified using this method
       
   451     *
       
   452     * @since S60 3.1
       
   453     * @param aCtxImpl statemachine context
       
   454     * @param aMacAddr The address to be added
       
   455     * @return 
       
   456     */
       
   457     virtual TBool AddMulticastAddr(
       
   458         WlanContextImpl& aCtxImpl,
       
   459         const TMacAddress& aMacAddr );        
       
   460     
       
   461     /**
       
   462     * From MWlanUserEvent
       
   463     * Removes a multicast MAC address from multicast (Rx) filtering
       
   464     * configuration. So any packet that we receive and which has been sent
       
   465     * to the multicast address in question is not accepted any more (i.e. 
       
   466     * it is filtered).
       
   467     * However, if there are no addresses left in the multicast (Rx) filtering
       
   468     * configuration after this remove, the multicast filtering is disabled
       
   469     * and all (otherwise acceptable) multicast packets are accepted again.
       
   470     *
       
   471     * @since S60 3.1
       
   472     * @param aCtxImpl statemachine context
       
   473     * @param aMacAddr The address to be removed
       
   474     * @return ETrue if a state change occurred in the state machine 
       
   475     *         EFalse otherwise
       
   476     */
       
   477     virtual TBool RemoveMulticastAddr(
       
   478         WlanContextImpl& aCtxImpl,
       
   479         TBool aRemoveAll,
       
   480         const TMacAddress& aMacAddr );
       
   481 
       
   482     /**
       
   483      * From MWlanUserEvent
       
   484      * Configures the parameters which define when BSS lost is indicated.
       
   485      * The indication is sent when either one of the specified thresholds
       
   486      * is exceeded.
       
   487      *
       
   488      * @since S60 v3.1
       
   489      * @param aCtxImpl statemachine context
       
   490      * @param aBeaconLostCount beacon lost count threshold
       
   491      * @aFailedTxPacketCount failed Tx packet count threshold
       
   492      * @return ETrue if a state change occurred
       
   493      *         EFalse otherwise
       
   494      */
       
   495     virtual TBool ConfigureBssLost( 
       
   496         WlanContextImpl& aCtxImpl,
       
   497         TUint32 aBeaconLostCount,
       
   498         TUint8 aFailedTxPacketCount );
       
   499 
       
   500     /**
       
   501     * From MWlanUserEvent
       
   502     * Sets the Tx rate adaptation algorithm parameters
       
   503     *
       
   504     * @since S60 3.1
       
   505     * @param aCtxImpl statemachine context
       
   506     * @param aMinStepUpCheckpoint minimum and initial rate increase 
       
   507     *        checkpoint in units of frames
       
   508     *        Range: [aStepDownCheckpoint,aMaxStepUpCheckpoint]
       
   509     * @param aMaxStepUpCheckpoint maximum rate increase checkpoint in units 
       
   510     *        of frames
       
   511     *        Range: [aStepDownCheckpoint,UCHAR_MAX]
       
   512     * @param aStepUpCheckpointFactor StepUpCheckpoint is multiplied with this
       
   513     *        value if sending a probe frame fails
       
   514     *        Range: [1,aMaxStepUpCheckpoint]
       
   515     * @param aStepDownCheckpoint after this many frames the need to decrease
       
   516     *        the rate is checked
       
   517     *        Range: [2,UCHAR_MAX]
       
   518     * @param aMinStepUpThreshold minimum and initial StepUpThreshold 
       
   519     *        percentage
       
   520     *        Range: [1,aMaxStepUpThreshold]
       
   521     * @param aMaxStepUpThreshold maximum StepUpThreshold percentage
       
   522     *        Range: [1,100]
       
   523     * @param aStepUpThresholdIncrement StepUpThreshold is incremented by this
       
   524     *        value if sending a probe frame fails
       
   525     *        Range: [0,aMaxStepUpThreshold]
       
   526     * @param aStepDownThreshold if the percentage of frames which failed to
       
   527     *        be transmitted at the originally requested rate is at least 
       
   528     *        aStepDownThreshold at the aStepDownCheckpoint, the rate will
       
   529     *        be decreased
       
   530     *        Range: [1,100]
       
   531     * @param aDisableProbeHandling if EFalse, the rate adaptation algorithm
       
   532     *        handles the first frame transmitted after a rate increase in a
       
   533     *        special way. Otherwise the special handling is disabled
       
   534     * @return ETrue if a state change occurred
       
   535     *         EFalse otherwise
       
   536     */
       
   537     virtual TBool SetTxRateAdaptParams( 
       
   538         WlanContextImpl& aCtxImpl,
       
   539         TUint8 aMinStepUpCheckpoint,
       
   540         TUint8 aMaxStepUpCheckpoint,
       
   541         TUint8 aStepUpCheckpointFactor,
       
   542         TUint8 aStepDownCheckpoint,
       
   543         TUint8 aMinStepUpThreshold,
       
   544         TUint8 aMaxStepUpThreshold,
       
   545         TUint8 aStepUpThresholdIncrement,
       
   546         TUint8 aStepDownThreshold,
       
   547         TBool aDisableProbeHandling );
       
   548     
       
   549     /**
       
   550      * From MWlanUserEvent
       
   551      * Configures Tx rate policy objects, sets the policy object to use for 
       
   552      * every Tx Queue / QoS AC, and also sets the Initial Max Tx Rate to be 
       
   553      * used for the configured policy objects
       
   554      *
       
   555      * @since S60 v3.1
       
   556      * @param aCtxImpl statemachine context
       
   557      * @param aRatePolicy rate policy (policy objects)
       
   558      * @param aQueue2RateClass Tx queue (AC) to rate policy object mapping
       
   559      * @param aInitialMaxTxRate4RateClass initial max Tx rate for the
       
   560      *        policy objects
       
   561      * @param aAutoRatePolicy auto rate policy
       
   562      * @param aHtMcsPolicy HT MCS policy 
       
   563      * @return ETrue if a state change occurred
       
   564      *         EFalse otherwise
       
   565      */
       
   566     virtual TBool ConfigureTxRatePolicies( 
       
   567         WlanContextImpl& aCtxImpl,
       
   568         const TTxRatePolicy& aRatePolicy,
       
   569         const TQueue2RateClass& aQueue2RateClass,
       
   570         const TInitialMaxTxRate4RateClass& aInitialMaxTxRate4RateClass,
       
   571         const TTxAutoRatePolicy& aAutoRatePolicy,
       
   572         const THtMcsPolicy& aHtMcsPolicy );
       
   573 
       
   574     /**
       
   575      * From MWlanUserEvent
       
   576      * Gets data frame Rx & Tx statistics
       
   577      *
       
   578      * @since S60 v3.2
       
   579      * @param aCtxImpl statemachine context
       
   580      * @return ETrue if a state change occurred
       
   581      *         EFalse otherwise
       
   582      */
       
   583     virtual TBool GetFrameStatistics( WlanContextImpl& aCtxImpl );
       
   584     
       
   585     /**
       
   586      * From MWlanUserEvent
       
   587      * Reconfigures the specified Tx queue if necessary
       
   588      *
       
   589      * @since S60 v3.2
       
   590      * @param aCtxImpl statemachine context
       
   591      * @param aQueueId ID of the queue to reconfigure
       
   592      * @param aMediumTime The amount of time the queue is allowed to access 
       
   593      *                    the WLAN air interface.
       
   594      * @param aMaxTxMSDULifetime Maximum Transmit MSDU Lifetime to be used 
       
   595      *                           for the specified queue.
       
   596      * @return ETrue if a state change occurred
       
   597      *         EFalse otherwise
       
   598      */
       
   599     virtual TBool ConfigureTxQueueIfNecessary( 
       
   600             WlanContextImpl& aCtxImpl,
       
   601             TQueueId aQueueId,
       
   602             TUint16 aMediumTime,
       
   603             TUint32 aMaxTxMSDULifetime );
       
   604 
       
   605     /**
       
   606      * From MWlanUserEvent
       
   607      * Get our own MAC address
       
   608      *
       
   609      * @since S60 v3.1
       
   610      * @param aCtxImpl statemachine context
       
   611      * @return ETrue if a state change occurred
       
   612      *         EFalse otherwise
       
   613      */
       
   614     virtual TBool GetMacAddress( WlanContextImpl& aCtxImpl );
       
   615     
       
   616     /**
       
   617     * Configures ARP IP address filtering
       
   618     * 
       
   619     * @param aCtxImpl statemachine context
       
   620     * @param aEnableFiltering If ETrue, filtering is enabled
       
   621     *                         If EFalse, filtering is disabled
       
   622     * @param aIpv4Address If the target IP Address in a received ARP request 
       
   623     *        doesn't match this address, the packet shall be discarded
       
   624     *        on the lower layers.
       
   625     *        Relevant only when enabling filtering.
       
   626     * @return ETrue if a state change occurred in the state machine 
       
   627     *         EFalse otherwise
       
   628     */
       
   629     virtual TBool ConfigureArpIpAddressFiltering(
       
   630         WlanContextImpl& aCtxImpl,
       
   631         TBool aEnableFiltering,
       
   632         TIpv4Address aIpv4Address );
       
   633 
       
   634     /**
       
   635     * Configures HT Block Ack use
       
   636     * 
       
   637     * @param aCtxImpl statemachine context
       
   638     * @param aTxBlockAckUsage Bit map defining Block Ack use in Tx direction
       
   639     * @param aRxBlockAckUsage Bit map defining Block Ack use in Rx direction
       
   640     * @return ETrue if a state change occurred in the state machine 
       
   641     *         EFalse otherwise
       
   642     */
       
   643     virtual TBool ConfigureHtBlockAck(
       
   644         WlanContextImpl& aCtxImpl, 
       
   645         TUint8 aTxBlockAckUsage,
       
   646         TUint8 aRxBlockAckUsage );        
       
   647 
       
   648     /**
       
   649      * From MWlanUserEvent
       
   650      * Returns the states name
       
   651      *
       
   652      * @since S60 3.1
       
   653      * @param aLength (OUT) length of the name of the state
       
   654      * @return name of the state
       
   655      */
       
   656 #ifndef NDEBUG 
       
   657     virtual const TInt8* GetStateName( TUint8& aLength ) const;
       
   658 #endif // !NDEBUG 
       
   659                
       
   660 private:
       
   661 
       
   662     /**
       
   663     * Completes WLAN Mgmt Client command
       
   664     * 
       
   665     * @param aCtxImpl Global statemachine context
       
   666     * @param aStatus Status code to return to WLAN Mgmt Client     
       
   667     * @return ETrue if a state change occurred in the global state machine 
       
   668     *         EFalse otherwise
       
   669     */
       
   670     TBool CompleteMgmtCommand(
       
   671         WlanContextImpl& aCtxImpl,
       
   672         TInt aStatus );
       
   673     
       
   674     // Prohibit copy constructor 
       
   675     WlanDot11MacError( const WlanDot11MacError& );
       
   676     // Prohibit assigment operator
       
   677     WlanDot11MacError& operator= ( const WlanDot11MacError& );         
       
   678 
       
   679 private:   // Data
       
   680     
       
   681     /** flags */
       
   682     TUint32 iFlags;
       
   683 
       
   684 #ifndef NDEBUG 
       
   685     /** name of the state */
       
   686     static const TInt8  iName[];        
       
   687 #endif // !NDEBUG 
       
   688     };
       
   689 
       
   690 #endif      // WLANDOT11MACERROR_H