wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacContextImpl.inl
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/UmacContextImpl.inl	Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,2119 @@
+/*
+* Copyright (c) 2002-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:   Implementation of WlanContextImpl inline methods.
+*
+*/
+
+/*
+* %version: 75 %
+*/
+
+#include "umacconnectcontext.h"
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WlanMacState& WlanContextImpl::CurrentState()
+    {
+    return *iCurrentMacState;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::SSettings& WlanContextImpl::WHASettings()
+    {
+    return iWHASettings;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const WHA::SSettings& WlanContextImpl::WHASettings() const
+    {
+    return iWHASettings;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::WHASettings( 
+    const WHA::SSettings& aSSettings )
+    {
+    iWHASettings = aSSettings;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SAuthenticationFrame& WlanContextImpl::GetAuthenticationFrame()
+    {
+    return iManagementFrameTemplates.iAuthenticationFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtAuthenticationFrame& WlanContextImpl::GetHtAuthenticationFrame()
+    {
+    return iManagementFrameTemplates.iHtAuthenticationFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SAssociationRequestFrame& 
+WlanContextImpl::GetAssociationRequestFrame() 
+    {
+    return  iManagementFrameTemplates.iAssociationRequestFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtAssociationRequestFrame& 
+WlanContextImpl::GetHtAssociationRequestFrame() 
+    {
+    return  iManagementFrameTemplates.iHtAssociationRequestFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SDeauthenticateFrame& WlanContextImpl::GetDeauthenticateFrame() 
+    {
+    return iManagementFrameTemplates.iDeauthenticateFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtDeauthenticateFrame& WlanContextImpl::GetHtDeauthenticateFrame() 
+    {
+    return iManagementFrameTemplates.iHtDeauthenticateFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SDisassociateFrame& WlanContextImpl::GetDisassociationFrame()
+    {
+    return iManagementFrameTemplates.iDisassociationFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtDisassociateFrame& WlanContextImpl::GetHtDisassociationFrame()
+    {
+    return iManagementFrameTemplates.iHtDisassociationFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SReassociationRequestFrame& WlanContextImpl::GetReassociationRequestFrame()
+    {
+    return iManagementFrameTemplates.iReassociationRequestFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtReassociationRequestFrame& 
+WlanContextImpl::GetHtReassociationRequestFrame()
+    {
+    return iManagementFrameTemplates.iHtReassociationRequestFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SNullDataFrame& WlanContextImpl::NullDataFrame()
+    {
+    return iNullDataFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtQosNullDataFrame& WlanContextImpl::QosNullDataFrame()
+    {
+    return iQosNullDataFrame;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint16 WlanContextImpl::QosNullDataFrameLength() const
+    {
+    return ( HtSupportedByNw() ? 
+                sizeof( SHtQosNullDataFrame ) :
+                sizeof( SQosNullDataFrame ) );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SDataFrameHeader& WlanContextImpl::GetDataFrameHeader() 
+    {
+    return iDataFrameHeader;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TWlanUserTxDataCntx& WlanContextImpl::GetTxDataCntx()
+    {
+    return iTxDataCntx;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TWlanUserTxDataCntx& WlanContextImpl::GetTxDataCntx() const
+    {
+    return iTxDataCntx;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TWlanUserTxDataCntx& WlanContextImpl::GetMgmtTxDataCntx()
+    {
+    return iMgmtTxDataCntx;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResetAuthSeqNmbrExpected()
+    {
+    iAuthSeqNmbrExpected.Reset();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::TxRatePolicy(
+    WHA::TQueueId aQueueId,
+    TBool aUseSpecialRatePolicy,
+    WHA::TRate& aRate, 
+    TUint8& aPolicyId ) const
+    {
+    return iTxRateAdaptation.RatePolicy( 
+        *this, 
+        aQueueId, 
+        aUseSpecialRatePolicy, 
+        aRate, 
+        aPolicyId );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TMacAddress& WlanContextImpl::GetBssId() 
+    {
+    return iConnectContext.iBSSID;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::Aid( const TUint32 aAid )
+    {
+    iConnectContext.iAid = aAid;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::Aid() const
+    {
+    return iConnectContext.iAid;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::AtimWindow( const TUint32 aAtimWindow )
+    {
+    iConnectContext.iAtim = aAtimWindow;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::AtimWindow() const
+    {
+    return iConnectContext.iAtim;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TSSID& WlanContextImpl::GetSsId()
+    {
+    return iConnectContext.iSSID;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TEncryptionStatus& WlanContextImpl::EncryptionStatus() 
+    {
+    return iConnectContext.iEncryptionStatus;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint16& WlanContextImpl::AuthenticationAlgorithmNumber()
+    {
+    return iConnectContext.iAuthAlgorithmNbr;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnTxCompleted( 
+    const TUint32 aRate, 
+    const TBool aSuccess,
+    WHA::TQueueId aQueueId,
+    WHA::TRate aRequestedRate )
+    {
+    if ( !( WHASettings().iCapability & 
+         WHA::SSettings::KAutonomousRateAdapt ) )
+        {
+        // as autonomous rate adaptation is not being used, inform our own
+        // rate adaptation object about Tx completion
+        iTxRateAdaptation.OnTxCompleted( aRate, aSuccess, aQueueId, 
+            aRequestedRate );        
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::CancelTimer()
+    {
+    iUmac.CancelTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint8 WlanContextImpl::GetAuthSeqNmbrExpected() const
+    {
+    return iAuthSeqNmbrExpected.GetAuthSeqNmbrExpected();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SSupportedRatesIE& WlanContextImpl::GetOurSupportedRatesIE()
+    {
+    return iConnectContext.iOurSupportedRates;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SExtendedSupportedRatesIE& WlanContextImpl::GetOurExtendedSupportedRatesIE()
+    {
+    return iConnectContext.iOurExtendedSupportedRates;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetScanResponseFrameBody( const TUint8* aBody )
+    {
+    iConnectContext.iScanResponseFrameBody = aBody;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TUint8* WlanContextImpl::ScanResponseFrameBody() const
+    {
+    return iConnectContext.iScanResponseFrameBody;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetScanResponseFrameBodyLength( TUint16 aLength )
+    {
+    iConnectContext.iScanResponseFrameBodyLength = aLength;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TUint16 WlanContextImpl::ScanResponseFrameBodyLength() const
+    {
+    return iConnectContext.iScanResponseFrameBodyLength;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IeData( const TUint8* aIeData )
+    {
+    iConnectContext.iIeData = aIeData;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TUint8* WlanContextImpl::IeData() const
+    {
+    return iConnectContext.iIeData;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IeDataLength( TUint16 aIeDataLength )
+    {
+    iConnectContext.iIeDataLength = aIeDataLength;    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::RadioMeasurement() const
+    {
+    return iConnectContext.iRadioMeasurement;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::RadioMeasurement( TBool aRadioMeasurement )
+    {
+    iConnectContext.iRadioMeasurement = aRadioMeasurement;    
+    }
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint16 WlanContextImpl::IeDataLength() const
+    {
+    return iConnectContext.iIeDataLength;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetActivePrivacyModeFilter(
+    WlanContextImpl& /*aCtxImpl*/,                                                            
+    TEncryptionStatus aEncryptionStatus )
+    {
+    iPrivacyModeFilters.SetActiveFilter( aEncryptionStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ExecuteActivePrivacyModeFilter(
+    const SDataFrameHeader& aFrameheader, 
+    TBool aUserDataEnabled, 
+    TUint16 aEthernetType,
+    TBool aUnicastKeyExists, 
+    TBool aAesOrTkipOrWapiEncrypted ) const
+    {
+    return iPrivacyModeFilters.ExecuteFilter(
+        aFrameheader, 
+        aUserDataEnabled, 
+        aEthernetType,
+        aUnicastKeyExists, 
+        aAesOrTkipOrWapiEncrypted );    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SCapabilityInformationField& 
+WlanContextImpl::GetCapabilityInformation() 
+    {
+    return iConnectContext.iCapabilityInformation;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::OnConsecutiveBeaconsLost()
+    {
+    TBool ret( EFalse );
+
+    if ( !iConsecutiveBeaconsLostIndicated )
+        {
+        iConsecutiveBeaconsLostIndicated = ETrue;
+        ret = ETrue;        
+        }
+
+    return ret;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::OnConsecutiveTxFailures()
+    {
+    TBool ret( EFalse );
+
+    if ( !iConsecutiveTxFailuresIndicated )
+        {
+        iConsecutiveTxFailuresIndicated = ETrue;
+        ret = ETrue;        
+        }
+
+    return ret;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::OnConsecutivePwrModeSetFailures()
+    {
+    TBool ret( EFalse );
+
+    if ( !iConsecutivePwrModeSetFailuresIndicated )
+        {
+        iConsecutivePwrModeSetFailuresIndicated = ETrue;
+        ret = ETrue;        
+        }
+
+    return ret;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResetBssLossIndications()
+    {
+    iConsecutiveBeaconsLostIndicated = EFalse;
+    iConsecutiveTxFailuresIndicated = EFalse;
+    iConsecutivePwrModeSetFailuresIndicated = EFalse;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SSupportedRatesIE& WlanContextImpl::GetApSupportedRatesIE() 
+    {
+    return iConnectContext.iApSupportedRates;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SExtendedSupportedRatesIE& WlanContextImpl::GetApExtendedSupportedRatesIE() 
+    {
+    return iConnectContext.iApExtendedSupportedRates;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResetTxRateAdaptation()
+    {
+    iTxRateAdaptation.Reset();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32& WlanContextImpl::GetMinBasicRate()
+    {
+    return iConnectContext.iNwsaMinBasicRate;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32& WlanContextImpl::GetMaxBasicRate()
+    {
+    return iConnectContext.iNwsaMaxBasicRate;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ClearBasicRateSet()
+    {
+    iConnectContext.iNwsaBasicRateSet = 0;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::BasicRateSetBitSet( 
+    const TUint32 aRateBitToSet )
+    {
+    iConnectContext.iNwsaBasicRateSet |= aRateBitToSet;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::BasicRateSet() const
+    {
+    return iConnectContext.iNwsaBasicRateSet;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TOperationMode WlanContextImpl::NetworkOperationMode() const
+    {
+    return iConnectContext.iOperationMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::NetworkOperationMode( 
+    WHA::TOperationMode aOperationMode )
+    {
+    iConnectContext.iOperationMode = aOperationMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::GroupKeyType( 
+    WHA::TKeyType aKeyType )
+    {
+    iConnectContext.iGroupKeyType = aKeyType;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TKeyType WlanContextImpl::GroupKeyType() const
+    {
+    return iConnectContext.iGroupKeyType;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::PairWiseKeyType( 
+    WHA::TKeyType aKeyType )
+    {
+    iConnectContext.iPairWiseKeyType = aKeyType;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TKeyType WlanContextImpl::PairWiseKeyType() const
+    {
+    return iConnectContext.iPairWiseKeyType;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::PairwiseCipher( TWlanCipherSuite aCipherSuite )
+    {
+    iConnectContext.iPairwiseCipher = aCipherSuite;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TWlanCipherSuite WlanContextImpl::PairwiseCipher() const
+    {
+    return iConnectContext.iPairwiseCipher;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TChannelNumber WlanContextImpl::NetworkChannelNumeber() const
+    {
+    return iConnectContext.iChannelNumber;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::NetworkChannelNumeber( 
+    WHA::TChannelNumber aChannelNumber )
+    {
+    iConnectContext.iChannelNumber = aChannelNumber;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::NetworkBeaconInterval() const
+    {
+    return iConnectContext.iBeaconInterval;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::NetworkBeaconInterval( 
+    TUint32 aBeaconInterval )
+    {
+    iConnectContext.iBeaconInterval = aBeaconInterval;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TPsMode WlanContextImpl::DesiredDot11PwrMgmtMode() const
+    {
+    return iConnectContext.iDesiredDot11PwrMgmtMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::DesiredDot11PwrMgmtMode( 
+    WHA::TPsMode aPsMode )
+    {
+    iConnectContext.iDesiredDot11PwrMgmtMode = aPsMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TPsMode WlanContextImpl::CurrentDot11PwrMgmtMode() const
+    {
+    return iConnectContext.iCurrentDot11PwrMgmtMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::CurrentDot11PwrMgmtMode( 
+    WHA::TPsMode aPsMode )
+    {
+    iConnectContext.iCurrentDot11PwrMgmtMode = aPsMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TDot11PsModeWakeupSetting& 
+    WlanContextImpl::DesiredPsModeConfig() const
+    {
+    return iConnectContext.iDesiredPsModeConfig;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetDesiredPsModeConfig(
+    const TDot11PsModeWakeupSetting& aPsModeWakeupSetting )
+    {
+    iConnectContext.iDesiredPsModeConfig = aPsModeWakeupSetting;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::TPsMode WlanContextImpl::ClientDot11PwrMgmtMode() const
+    {
+    return iConnectContext.iClientDesiredDot11PwrMgtMode;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ClientDot11PwrMgmtMode( 
+    TPowerMode aPsMode )
+    {
+    iConnectContext.iClientDesiredDot11PwrMgtMode = 
+        static_cast<WHA::TPsMode>(aPsMode);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TDot11PsModeWakeupSetting& 
+    WlanContextImpl::ClientLightPsModeConfig() const
+    {
+    return iConnectContext.iClientLightPsModeConfig;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetClientLightPsModeConfig( 
+    TWlanWakeUpInterval aWakeupMode, 
+    TUint8 aListenInterval )
+    {
+    iConnectContext.iClientLightPsModeConfig.iWakeupMode = aWakeupMode;
+    iConnectContext.iClientLightPsModeConfig.iListenInterval = aListenInterval;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TDot11PsModeWakeupSetting&
+    WlanContextImpl::ClientDeepPsModeConfig() const
+    {
+    return iConnectContext.iClientDeepPsModeConfig;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetClientDeepPsModeConfig( 
+    TWlanWakeUpInterval aWakeupMode, 
+    TUint8 aListenInterval )
+    {
+    iConnectContext.iClientDeepPsModeConfig.iWakeupMode = aWakeupMode;
+    iConnectContext.iClientDeepPsModeConfig.iListenInterval = aListenInterval;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::DynamicPwrModeMgtDisabled() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KDynamicPwrModeMgmtDisabled );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UseShortPreamble() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KUseShortPreamble);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::Reassociate() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KReassociate);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UseShortSlotTime() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KUseShortSlotTime);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ProtectionBitSet() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KProtectionBitSet);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::QosEnabled() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KQosEnabled);
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdEnabled() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KUapsdEnabled);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::MulticastFilteringDisAllowed() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KMulticastFilteringDisAllowed);    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ErpIePresent() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KErpIePresent);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::DisassociatedByAp() const
+    {
+    return (iConnectContext.iFlags & WlanConnectContext::KDisassociatedByAp);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdRequestedForVoice() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdRequestedForVoice );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdRequestedForVideo() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdRequestedForVideo );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdRequestedForBestEffort() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdRequestedForBestEffort );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdRequestedForBackground() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdRequestedForBackground );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdUsedForVoice() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdUsedForVoice );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdUsedForVideo() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdUsedForVideo );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdUsedForBestEffort() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdUsedForBestEffort );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UapsdUsedForBackground() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KUapsdUsedForBackground );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ApTestOpportunitySeekStarted() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KApTestOpportunitySeekStarted );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ApTestOpportunityIndicated() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KApTestOpportunityIndicated );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::HtSupportedByNw() const
+    {
+    return ( iConnectContext.iFlags & 
+             WlanConnectContext::KHtSupportedByNw );    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint8 WlanContextImpl::WmmParameterSetCount() const
+    {
+    return iConnectContext.iWmmParamSetCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::WmmParameterSetCount( TUint8 aValue )
+    {
+    iConnectContext.iWmmParamSetCount = aValue;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::RateBitMask() const
+    {
+    return iConnectContext.iRateBitMask;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::RateBitMask( TUint32 aValue )
+    {
+    iConnectContext.iRateBitMask = aValue;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TCwMinVector& WlanContextImpl::CwMinVector()
+    {
+    return iConnectContext.iCwMin;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TCwMaxVector& WlanContextImpl::CwMaxVector()
+    {
+    return iConnectContext.iCwMax;    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TAifsVector& WlanContextImpl::AifsVector()
+    {
+    return iConnectContext.iAIFS;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TTxOplimitVector& WlanContextImpl::TxOplimitVector()
+    {
+    return iConnectContext.iTxOplimit;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TAcmVector& WlanContextImpl::AcmVector()
+    {
+    return iConnectContext.iAdmCtrlMandatory;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline STxWmmIE& WlanContextImpl::OurWmmIe()
+    {
+    return iConnectContext.iOurWmmIe;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TTxRatePolicy& WlanContextImpl::RatePolicy()
+    {
+    return iConnectContext.iRatePolicy;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TQueue2RateClass& WlanContextImpl::Queue2RateClass()
+    {
+    return iConnectContext.iQueue2RateClass;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TInitialMaxTxRate4RateClass& 
+WlanContextImpl::InitialMaxTxRate4RateClass()
+    {
+    return iConnectContext.iInitialMaxTxRate4RateClass;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TTxAutoRatePolicy& WlanContextImpl::AutoRatePolicy()
+    {
+    return iConnectContext.iAutoRatePolicy;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint8 WlanContextImpl::SpecialTxAutoRatePolicy() const
+    {
+    return iConnectContext.iSpecialTxRatePolicyId;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SpecialTxAutoRatePolicy( TUint8 aPolicyId )
+    {
+    iConnectContext.iSpecialTxRatePolicyId = aPolicyId;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline THtMcsPolicy& WlanContextImpl::HtMcsPolicy()
+    {
+    return iConnectContext.iHtMcsPolicy;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TQosInfoUapsdMaxSpLen& WlanContextImpl::UapsdMaxSpLen()
+    {
+    return iConnectContext.iUapsdMaxSpLen;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::WsaCmdActive() const
+    {
+    return iWsaCmdActive;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ActivateWsaCmd()
+    {
+    iWsaCmdActive = ETrue;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::DeActivateWsaCmd()
+    {
+    iWsaCmdActive = EFalse;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementAuthSeqNmbrExpected()
+    {
+    ++iAuthSeqNmbrExpected;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::SetTxRateAdaptationRates( 
+    TUint8 aPolicyId,
+    WHA::TRate aRateBitmask )
+    {
+    return iTxRateAdaptation.SetRates( aPolicyId, aRateBitmask );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetTxRatePolicy( WHA::TQueueId aQueueId, TUint8 aPolicyId )
+    {
+    iTxRateAdaptation.SetPolicy( aQueueId, aPolicyId );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetCurrentMaxTxRate( 
+    TUint8 aPolicyId, 
+    WHA::TRate aRate )
+    {
+    iTxRateAdaptation.SetCurrentMaxTxRate( aPolicyId, aRate );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetTxRateAdaptationAlgorithmParams( 
+    TUint8 aMinStepUpCheckpoint,
+    TUint8 aMaxStepUpCheckpoint,
+    TUint8 aStepUpCheckpointFactor,
+    TUint8 aStepDownCheckpoint,
+    TUint8 aMinStepUpThreshold,
+    TUint8 aMaxStepUpThreshold,
+    TUint8 aStepUpThresholdIncrement,
+    TUint8 aStepDownThreshold,
+    TBool aDisableProbeHandling )
+    {
+    iTxRateAdaptation.SetAlgorithmParameters(
+        aMinStepUpCheckpoint,
+        aMaxStepUpCheckpoint,
+        aStepUpCheckpointFactor,
+        aStepDownCheckpoint,
+        aMinStepUpThreshold,
+        aMaxStepUpThreshold,
+        aStepUpThresholdIncrement,
+        aStepDownThreshold,
+        aDisableProbeHandling );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::Random()
+    {
+    return iPrnGenerator.Generate();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint32 WlanContextImpl::WhaCommandAct() const
+    {
+    return iWhaCommandAct;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::WhaCommandAct( TUint32 aAct )
+    {
+    iWhaCommandAct = aAct;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::RegisterEvent( const TOIDHeader& aOid )
+    {
+    iEventDispatcher.Register( aOid );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::RegisterEvent( TInternalEvent aInternalEvent )
+    {
+    iEventDispatcher.Register( aInternalEvent );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ChannelEnabled( 
+    WlanEventDispatcher::TChannel aChannel ) const
+    {
+    return iEventDispatcher.ChannelEnabled( aChannel );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::Enable( 
+    WlanEventDispatcher::TChannel aChannelMask )
+    {
+    iEventDispatcher.Enable( aChannelMask );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::Disable( 
+    WlanEventDispatcher::TChannel aChannelMask )
+    {
+    iEventDispatcher.Disable( aChannelMask );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::DispatchEvent()
+    {
+    return iEventDispatcher.Dispatch();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::CommandCompletionEventRegistered( 
+    WHA::TCompleteCommandId aCommandId ) const
+    {
+    return iEventDispatcher.CommandCompletionRegistered( aCommandId );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::DispatchCommandCompletionEvent()
+    {
+    return iEventDispatcher.DispatchCommandCompletionEvent();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::ProtocolStackTxDataAllowed() const
+    {
+    return iEnableUserData;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::PushPacketToPacketScheduler( 
+    const TAny* aPacket, 
+    TUint32 aLength, 
+    WHA::TQueueId aQueueId,
+    TUint32 aPacketId,
+    const TDataBuffer* aMetaHeader,
+    TBool aMore,
+    TBool aMulticastData,
+    TBool aUseSpecialRatePolicy )
+    {
+    return iPacketScheduler.Push( 
+        *this, 
+        aPacket, 
+        aLength,
+        aQueueId,
+        aPacketId,
+        aMetaHeader,
+        aMore,
+        aMulticastData,
+        aUseSpecialRatePolicy );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::FlushPacketScheduler()
+    {
+    iPacketScheduler.Flush( *this );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SchedulePackets( TBool aMore )
+    {
+    iPacketScheduler.SchedulePackets( *this, aMore );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::UnsentTxPackets() const
+    {
+    return iPacketScheduler.UnsentPackets();
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementFailedTxPacketCount()
+    {
+    ++iFailedTxPacketCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint8 WlanContextImpl::FailedTxPacketCount() const
+    {
+    return iFailedTxPacketCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResetFailedTxPacketCount()
+    {
+    iFailedTxPacketCount = 0;
+    }
+
+// ---------------------------------------------------------------------------
+// We use the failed Tx packet count threshold as the threshold value
+// in this case, too - as informing AP about a power mgmt mode change
+// also involves a frame Tx
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::InitializeSetPsModeCount()
+    {
+    iSetPsModeCount = iWlanMib.iFailedTxPacketCountThreshold;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::DecrementSetPsModeCount()
+    {
+    --iSetPsModeCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint WlanContextImpl::SetPsModeCount() const
+    {
+    return iSetPsModeCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StartPowerModeManagement()
+    {
+    iDynamicPowerModeCntx.StartPowerModeManagement();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StopPowerModeManagement()
+    {
+    iDynamicPowerModeCntx.StopPowerModeManagement();
+    }
+                
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TPowerMgmtModeChange WlanContextImpl::OnFrameTx( 
+    WHA::TQueueId aQueueId,
+    TUint16 aEtherType )
+    {
+    return iDynamicPowerModeCntx.OnFrameTx( aQueueId, aEtherType );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TPowerMgmtModeChange WlanContextImpl::OnFrameRx(
+    WHA::TQueueId aAccessCategory,
+    TUint16 aEtherType,
+    TUint aPayloadLength,
+    TDaType aDaType )
+    {
+    return iDynamicPowerModeCntx.OnFrameRx( 
+        aAccessCategory, 
+        aEtherType,
+        aPayloadLength, 
+        aDaType );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetPowerModeManagementParameters(
+    TUint32 aToLightPsTimeout,
+    TUint16 aToLightPsFrameThreshold,
+    TUint32 aToActiveTimeout,
+    TUint16 aToActiveFrameThreshold,
+    TUint32 aToDeepPsTimeout,
+    TUint16 aToDeepPsFrameThreshold,
+    TUint16 aUapsdRxFrameLengthThreshold )
+    {
+    iDynamicPowerModeCntx.SetParameters(
+        aToLightPsTimeout,
+        aToLightPsFrameThreshold,
+        aToActiveTimeout,
+        aToActiveFrameThreshold,
+        aToDeepPsTimeout,
+        aToDeepPsFrameThreshold,
+        aUapsdRxFrameLengthThreshold );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ConfigurePwrModeMgmtTrafficOverride( 
+    TBool aStayInPsDespiteUapsdVoiceTraffic,
+    TBool aStayInPsDespiteUapsdVideoTraffic,
+    TBool aStayInPsDespiteUapsdBestEffortTraffic, 
+    TBool aStayInPsDespiteUapsdBackgroundTraffic,
+    TBool aStayInPsDespiteLegacyVoiceTraffic,
+    TBool aStayInPsDespiteLegacyVideoTraffic,
+    TBool aStayInPsDespiteLegacyBestEffortTraffic,
+    TBool aStayInPsDespiteLegacyBackgroundTraffic )
+    {
+    iDynamicPowerModeCntx.ConfigureTrafficOverride( 
+        aStayInPsDespiteUapsdVoiceTraffic,
+        aStayInPsDespiteUapsdVideoTraffic,
+        aStayInPsDespiteUapsdBestEffortTraffic, 
+        aStayInPsDespiteUapsdBackgroundTraffic,
+        aStayInPsDespiteLegacyVoiceTraffic,
+        aStayInPsDespiteLegacyVideoTraffic,
+        aStayInPsDespiteLegacyBestEffortTraffic,
+        aStayInPsDespiteLegacyBackgroundTraffic );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::FreezePwrModeMgmtTrafficOverride()
+    {
+    iDynamicPowerModeCntx.FreezeTrafficOverride();
+    }
+                    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::OnActiveToLightPsTimerTimeout()
+    {
+    return iDynamicPowerModeCntx.OnActiveToLightPsTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::OnLightPsToActiveTimerTimeout()
+    {
+    return iDynamicPowerModeCntx.OnLightPsToActiveTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::OnLightPsToDeepPsTimerTimeout()
+    {
+    return iDynamicPowerModeCntx.OnLightPsToDeepPsTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WlanContextImpl::TGroupAddStatus WlanContextImpl::AddMulticastAddress( 
+        const TMacAddress& aMacAddress )
+    {
+    return iJoinedMulticastGroups.AddGroup( aMacAddress );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::RemoveMulticastAddress( const TMacAddress& aMacAddress )
+    {
+    return iJoinedMulticastGroups.RemoveGroup( aMacAddress );    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint8 WlanContextImpl::MulticastAddressCount() const
+    {
+    return iJoinedMulticastGroups.Count();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TUint8 WlanContextImpl::GetMulticastAddresses( 
+    const TMacAddress*& aMacAddresses ) const
+    {
+    return iJoinedMulticastGroups.GetGroups( aMacAddresses );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResetMulticastAddresses()
+    {
+    iJoinedMulticastGroups.Reset();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::MarkInternalTxBufFree()
+    {
+    iInternalTxBufFree = ETrue;
+
+    OsTracePrint( KUmacDetails, (TUint8*)
+        ("UMAC: WlanContextImpl::MarkInternalTxBufFree: buffer free again"));
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::InternalTxBufBeingWaited() const
+    {
+    return iInternalTxBufBeingWaited;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ClearInternalTxBufBeingWaitedFlag()
+    {
+    iInternalTxBufBeingWaited = EFalse;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResetFrameStatistics()
+    {
+    os_memset( &iFrameStatistics, 0, sizeof( iFrameStatistics ) );    
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementRxUnicastDataFrameCount( 
+    WHA::TQueueId aAccessCategory )
+    {
+    ++iFrameStatistics.acSpecific[aAccessCategory].rxUnicastDataFrameCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementTxUnicastDataFrameCount(
+    WHA::TQueueId aAccessCategory )
+    {
+    ++iFrameStatistics.acSpecific[aAccessCategory].txUnicastDataFrameCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementRxMulticastDataFrameCount(
+    WHA::TQueueId aAccessCategory )
+    {
+    ++iFrameStatistics.acSpecific[aAccessCategory].rxMulticastDataFrameCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementTxMulticastDataFrameCount(
+    WHA::TQueueId aAccessCategory)
+    {
+    ++iFrameStatistics.acSpecific[aAccessCategory].txMulticastDataFrameCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementTxRetryCount( 
+    WHA::TQueueId aAccessCategory,
+    TUint aCount )
+    {
+    iFrameStatistics.acSpecific[aAccessCategory].txRetryCount += aCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementTxErrorCount( 
+    WHA::TQueueId aAccessCategory )
+    {
+    ++iFrameStatistics.acSpecific[aAccessCategory].txErrorCount;
+    }
+
+// ---------------------------------------------------------------------------
+// Note! We use the Tx Media Delay field first to collect the
+// cumulative Media Delay. The average Media Delay is then calculated at the 
+// point of reporting the frame statistics results to WLAN Mgmt client
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementTxMediaDelay( 
+    WHA::TQueueId aAccessCategory,
+    TUint aDelay )
+    {
+    iFrameStatistics.acSpecific[aAccessCategory].txMediaDelay += aDelay;
+    }
+
+// ---------------------------------------------------------------------------
+// Note! We use the Total Tx Delay field first to collect the
+// cumulative Total Tx Delay. The average Total Tx Delay is then calculated 
+// at the point of reporting the frame statistics results to WLAN Mgmt client
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::IncrementTotalTxDelay( 
+    WHA::TQueueId aAccessCategory,
+    TUint aDelay )
+    {
+    iFrameStatistics.acSpecific[aAccessCategory].totalTxDelay += aDelay;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StoreFcsErrorCount( TUint aCount )
+    {
+    iFrameStatistics.fcsErrorCount = aCount;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline const TStatisticsResponse& WlanContextImpl::FrameStatistics() const
+    {
+    return iFrameStatistics;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::SetNullSendControllerParameters(
+    TUint32 aVoiceCallEntryTimeout,
+    TUint32 aVoiceCallEntryTxThreshold,
+    TUint32 aNullTimeout,
+    TUint32 aNoVoiceTimeout,
+    TUint32 aKeepAliveTimeout )
+    {
+    iNullSendController.SetParameters( 
+        aVoiceCallEntryTimeout,
+        aVoiceCallEntryTxThreshold,
+        aNullTimeout, 
+        aNoVoiceTimeout, 
+        aKeepAliveTimeout );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StartVoiceOverWlanCallMaintenance()
+    {
+    iNullSendController.StartVoiceOverWlanCallMaintenance();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StopVoiceOverWlanCallMaintenance()
+    {
+    iNullSendController.StopVoiceOverWlanCallMaintenance();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::TerminateVoiceOverWlanCallMaintenance()
+    {
+    iNullSendController.TerminateVoiceOverWlanCallMaintenance();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ResumeQosNullSending()
+    {
+    iNullSendController.ResumeQosNullSending();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StartKeepAlive()
+    {
+    iNullSendController.StartKeepAlive();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::StopKeepAlive()
+    {
+    iNullSendController.StopKeepAlive();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnDataRxCompleted( 
+    WHA::TQueueId aQueueId,
+    TUint aPayloadLength )
+    {
+    iNullSendController.OnFrameRx( aQueueId, aPayloadLength );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnDataTxCompleted( WHA::TQueueId aQueueId )
+    {
+    iNullSendController.OnFrameTx( aQueueId );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnQosNullDataTxCompleted()
+    {
+    iNullSendController.OnQosNullDataTxCompleted();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnNullDataTxCompleted()
+    {
+    iNullSendController.OnNullDataTxCompleted();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnVoiceCallEntryTimerTimeout()
+    {
+    iNullSendController.OnVoiceCallEntryTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnNullTimerTimeout()
+    {
+    iNullSendController.OnNullTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnNoVoiceTimerTimeout()
+    {
+    iNullSendController.OnNoVoiceTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::OnKeepAliveTimerTimeout()
+    {
+    iNullSendController.OnKeepAliveTimerTimeout();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::InsertNewRcpiIntoPredictor( 
+    TInt64 aTimestamp, 
+    WHA::TRcpi aRcpi )
+    {
+    return iWlanSignalPredictor.InsertNewRcpi( 
+        // this cast is ok as the predictor is prepared for the possibility 
+        // of the lower (TUint32) part of the timestamp rolling around
+        static_cast<TUint32>(aTimestamp), 
+        aRcpi );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::GetLatestMedianRcpiFromPredictor( 
+    TInt64 aTimestamp,
+    WHA::TRcpi& aLatestMedian ) const
+    {
+    return iWlanSignalPredictor.GetLatestMedian( 
+        // this cast is ok as the predictor is prepared for the possibility 
+        // of the lower (TUint32) part of the timestamp rolling around
+        static_cast<TUint32>(aTimestamp),
+        aLatestMedian );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline void WlanContextImpl::ConfigureWlanSignalPredictor(
+    TUint32 aTimeToWarnLevel,
+    TUint32 aTimeToNextInd,
+    WHA::TRcpi aRcpiWarnLevel)
+    {
+    iWlanSignalPredictor.ConfigureSignalPredictor( 
+        aTimeToWarnLevel,
+        aTimeToNextInd,
+        aRcpiWarnLevel );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtCapabilitiesIE& WlanContextImpl::GetOurHtCapabilitiesIe()
+    {
+    return iOurHtCapabilitiesIe;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtCapabilitiesIE& WlanContextImpl::GetNwHtCapabilitiesIe()
+    {
+    return iConnectContext.iNwHtCapabilitiesIe;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SHtOperationIE& WlanContextImpl::GetNwHtOperationIe()
+    {
+    return iConnectContext.iNwHtOperationIe;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline WHA::ShtBlockAckConfigure& WlanContextImpl::GetHtBlockAckConfigure()
+    {
+    return iHtBlockAckConfigure;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline SSnapHeader& WlanContextImpl::GetProprietarySnapHeader()
+    {
+    return iProprietarySnapHeader;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+inline TBool WlanContextImpl::GetWhaTxStatus( 
+    TWhaTxQueueState& aTxQueueState ) const
+    {
+    return iPacketScheduler.GetWhaTxStatus( *this, aTxQueueState );
+    }