diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacContextImpl.inl --- /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(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(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(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 ); + }