diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacDot11PrepareForBssMode.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacDot11PrepareForBssMode.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,277 @@ +/* +* Copyright (c) 2002-2007 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 WlanDot11PrepareForBssMode class +* +*/ + +/* +* %version: 18 % +*/ + +#ifndef WLANDOT11PREPAREFORBSSMODE_H +#define WLANDOT11PREPAREFORBSSMODE_H + +#include "UmacDot11State.h" + +/** +* State to join to a BSS network +* +* @lib wlanumac.lib +* @since S60 v3.1 +*/ +class WlanDot11PrepareForBssMode : public WlanDot11State + { + +public: + + /** + * C++ default constructor. + */ + WlanDot11PrepareForBssMode() : iState( EINIT ), iJoinFailed ( EFalse ) {}; + + /** + * Destructor. + */ + virtual ~WlanDot11PrepareForBssMode() {}; + + +private: // definitions + + // events for the FSM + enum TEvent + { + // state entry action to be executed + ESTATEENTRY, + // underlying sw layer tx delivery complete event + ETXCOMPLETE, + // abort FSM execution + EABORT, + // defined as an upper bound + EEVENTMAX + }; + + // states of the FSM + enum TState + { + EINIT, // start state of the state machine + ESETSLEEPMODE, // configure sleep mode mib + ESETDOT11SLOTTIME, // configure slottime mib if + // supported by the WLAN vendor solution + ESETCTSTOSELF, // configure ctstoself mib + ECONFTXQUEUE, // configure just the legacy tx queue + ECONFTXQUEUEPARAMS, // configure tx queue parameters + ESETTXRATEPOLICY, // set Tx rate policy + ESETHTCAPABILITIES, // configure HT capabilities mib + ESETHTBSSOPERATION, // configure HT BSS operation mib + ERESETHTCAPABILITIES, // reset HT capabilities mib + EISSUEJOIN, // issue join command + ESETHTBLOCKACKCONF, // configure HT Block Ack configure mib + ERESETHTBLOCKACKCONF, // reset HT Block Ack configure mib + ECONTINUEDOT11TRAVERSE, // continue dot11 fsm traversal + ESTATEMAX // defined as an upper bound + }; + +private: + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ChangeInternalState( + WlanContextImpl& aCtxImpl, + TState aNewState ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void Fsm( + WlanContextImpl& aCtxImpl, + TEvent aEvent ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void OnStateEntryEvent( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void OnTxCompleteEvent( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void OnAbortEvent( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void SetSleepMode( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void SetDot11SlotTime( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void SetCtsToSelf( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ConfigureQueue( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ConfigureTxQueueParams( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void SetTxRatePolicy( WlanContextImpl& aCtxImpl ); + + /** + * Informs lower layer about the HT capabilities + * of the target network + * @param aCtxImpl global statemachine context + */ + void SetHtCapabilities( WlanContextImpl& aCtxImpl ); + + /** + * Informs lower layer about the dynamic HT configuration + * of the target network + * @param aCtxImpl statemachine context + */ + void SetHtBssOperation( WlanContextImpl& aCtxImpl ); + + /** + * Resets the HT Capabilities MIB to its default value + * @param aCtxImpl statemachine context + */ + void ResetHtCapabilities( WlanContextImpl& aCtxImpl ); + + /** + * Resets the HT Block Ack Configure MIB to its default value + * @param aCtxImpl statemachine context + */ + void ResetHtBlockAckConfiguration( WlanContextImpl& aCtxImpl ); + + /** + * Informs lower layer about the HT Block Ack configuration + * of the target network + * @param aCtxImpl statemachine context + */ + void SetHtBlockAckConfiguration( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void IssueJoin( WlanContextImpl& aCtxImpl ); + + /** + * ?member_description. + * @since Series 60 3.1 + * @param aCtxImpl global statemachine context + */ + void ContinueDot11StateTraversal( WlanContextImpl& aCtxImpl ); + + // Functions from base classes + + /** + * From ?base_class ?member_description + */ + virtual void Entry( WlanContextImpl& aCtxImpl ); + + /** + * From ?base_class ?member_description + */ + virtual void Exit( WlanContextImpl& aCtxImpl ); + + /** + * From ?base_class ?member_description + */ + virtual void OnWhaCommandResponse( + WlanContextImpl& aCtxImpl, + WHA::TCommandId aCommandId, + WHA::TStatus aStatus, + const WHA::UCommandResponseParams& aCommandResponseParams, + TUint32 aAct ); + + /** + * From ?base_class ?member_description + * Returns the states name + */ +#ifndef NDEBUG + virtual const TInt8* GetStateName( TUint8& aLength ) const; +#endif // !NDEBUG + + // Prohibit copy constructor + WlanDot11PrepareForBssMode( const WlanDot11PrepareForBssMode& ); + // Prohibit assigment operator + WlanDot11PrepareForBssMode& operator=( + const WlanDot11PrepareForBssMode& ); + +private: // Data + + // state of the object + TState iState; + + // true, if the Join operation failed + TBool iJoinFailed; + +#ifndef NDEBUG + // max length of state name for tracing + enum { KMaxStateStringLength = 50 }; + // max length of event name for tracing + enum { KMaxEventStringLength = KMaxStateStringLength }; + + // state names for tracing + static const TUint8 iStateName[ESTATEMAX][KMaxStateStringLength]; + // event names for tracing + static const TUint8 iEventName[EEVENTMAX][KMaxEventStringLength]; + // name of the state + static const TInt8 iName[]; +#endif + }; + +#endif // WLANDOT11PREPAREFORBSSMODE_H