1 /* |
1 /* |
2 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 * Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). |
3 * All rights reserved. |
3 * All rights reserved. |
4 * This component and the accompanying materials are made available |
4 * This component and the accompanying materials are made available |
5 * under the terms of the License "Eclipse Public License v1.0" |
5 * under the terms of the License "Eclipse Public License v1.0" |
6 * which accompanies this distribution, and is available |
6 * which accompanies this distribution, and is available |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
137 if ( aDisableDynamicPowerModeManagement ) |
137 if ( aDisableDynamicPowerModeManagement ) |
138 { |
138 { |
139 aCtxImpl.StopPowerModeManagement(); |
139 aCtxImpl.StopPowerModeManagement(); |
140 } |
140 } |
141 |
141 |
|
142 // it is now also our desired dot11 power management mode |
|
143 aCtxImpl.DesiredDot11PwrMgmtMode( aCtxImpl.ClientDot11PwrMgmtMode() ); |
|
144 |
142 aCtxImpl.SetClientLightPsModeConfig( |
145 aCtxImpl.SetClientLightPsModeConfig( |
143 aWakeupModeInLightPs, |
146 aWakeupModeInLightPs, |
144 aListenIntervalInLightPs ); |
147 aListenIntervalInLightPs ); |
145 |
148 |
146 aCtxImpl.SetClientDeepPsModeConfig( |
149 aCtxImpl.SetClientDeepPsModeConfig( |
156 aCtxImpl.ClientDot11PwrMgmtMode() ) |
159 aCtxImpl.ClientDot11PwrMgmtMode() ) |
157 { |
160 { |
158 // there is a difference in current dot11 power management mode and |
161 // there is a difference in current dot11 power management mode and |
159 // WLAN Mgmt Client's desired dot11 power management mode |
162 // WLAN Mgmt Client's desired dot11 power management mode |
160 |
163 |
161 // So, WLAN Mgmt Client's desired dot11 power management mode becomes |
|
162 // our new desired mode |
|
163 aCtxImpl.DesiredDot11PwrMgmtMode( aCtxImpl.ClientDot11PwrMgmtMode() ); |
|
164 |
|
165 // callee will complete the mgmt command |
164 // callee will complete the mgmt command |
166 ret = OnDot11PwrMgmtTransitRequired( aCtxImpl ); |
165 ret = OnDot11PwrMgmtTransitRequired( aCtxImpl ); |
167 } |
166 } |
168 else |
167 else |
169 { |
168 { |
2304 } |
2303 } |
2305 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.DsssCckIn40Mhz() ) |
2304 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.DsssCckIn40Mhz() ) |
2306 { |
2305 { |
2307 mib->iPeerFeatures |= WHA::KDsssCckIn40Mhz; |
2306 mib->iPeerFeatures |= WHA::KDsssCckIn40Mhz; |
2308 } |
2307 } |
2309 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.Psmp() ) |
|
2310 { |
|
2311 mib->iPeerFeatures |= WHA::KPsmp; |
|
2312 } |
|
2313 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.LsigTxopProtection() ) |
2308 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.LsigTxopProtection() ) |
2314 { |
2309 { |
2315 mib->iPeerFeatures |= WHA::KLsigTxopProtection; |
2310 mib->iPeerFeatures |= WHA::KLsigTxopProtection; |
2316 } |
2311 } |
2317 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.Pco() ) |
2312 if ( aCtxImpl.GetNwHtCapabilitiesIe().iData.Pco() ) |
4724 WlanElementLocator& aElementLocator ) const |
4719 WlanElementLocator& aElementLocator ) const |
4725 { |
4720 { |
4726 TBool status ( ETrue ); |
4721 TBool status ( ETrue ); |
4727 |
4722 |
4728 if ( ( aCtxImpl.PairwiseCipher() == EWlanCipherSuiteTkip ) || |
4723 if ( ( aCtxImpl.PairwiseCipher() == EWlanCipherSuiteTkip ) || |
4729 !( aCtxImpl.QosEnabled() ) ) |
4724 !( aCtxImpl.QosEnabled() ) || |
|
4725 !( aCtxImpl.FeaturesAllowed() & KWlanHtOperation ) ) |
4730 { |
4726 { |
4731 // as the control is here it means that |
4727 // as the control is here it means that |
4732 // - the WLAN vendor implementation |
4728 // - the WLAN vendor implementation |
4733 // supports HT AND EITHER |
4729 // supports HT AND EITHER |
4734 // - TKIP will be used as the pairwise cipher OR |
4730 // - TKIP will be used as the pairwise cipher OR |
4735 // - the target nw doesn't support WMM |
4731 // - the target nw doesn't support WMM OR |
|
4732 // - HT use has been denied by WLAN Mgmt client |
4736 // In these cases we must not use HT functionality, even if the target |
4733 // In these cases we must not use HT functionality, even if the target |
4737 // nw supported it. We achieve that by handling the target nw as |
4734 // nw supported it. We achieve that by handling the target nw as |
4738 // a non-HT nw |
4735 // a non-HT nw |
4739 aCtxImpl.HtSupportedByNw( EFalse ); |
4736 aCtxImpl.HtSupportedByNw( EFalse ); |
4740 |
4737 |
4741 OsTracePrint( KInfoLevel, (TUint8*) |
4738 OsTracePrint( KInfoLevel, (TUint8*) |
4742 ("UMAC: WlanDot11State::HandleDot11n: TKIP as pairwise cipher " |
4739 ("UMAC: WlanDot11State::HandleDot11n: TKIP as pairwise cipher " |
4743 "or WMM not supported => HT disabled") ); |
4740 "OR WMM not supported OR HT use denied => HT disabled") ); |
4744 } |
4741 } |
4745 else |
4742 else |
4746 { |
4743 { |
4747 status = HandleHtCapabilities( aCtxImpl, aElementLocator ) ; |
4744 status = HandleHtCapabilities( aCtxImpl, aElementLocator ) ; |
4748 |
4745 |