summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2019-02-26 19:21:16 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-02-26 19:21:16 +0000
commit9cacfa9fb65aa5001f78c9bddcda72be20281474 (patch)
treef3bf597ca0651ba2446c74fe0d1207f92d66618d /service
parent6b8686617794aafda79ca3c6a6e36d44098eaa59 (diff)
parentbbb5163cf9b1b5664fa31ce5b20b0ea8dd0c349a (diff)
downloadandroid_frameworks_opt_net_wifi-9cacfa9fb65aa5001f78c9bddcda72be20281474.tar.gz
android_frameworks_opt_net_wifi-9cacfa9fb65aa5001f78c9bddcda72be20281474.tar.bz2
android_frameworks_opt_net_wifi-9cacfa9fb65aa5001f78c9bddcda72be20281474.zip
Merge changes I84f39225,I4113ae74
* changes: WakeupEvaluator - use ScoringParams properly Don't cache wifi ScoringParams values
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WakeupEvaluator.java24
-rw-r--r--service/java/com/android/server/wifi/WifiConnectivityManager.java41
-rw-r--r--service/java/com/android/server/wifi/WifiInjector.java6
3 files changed, 29 insertions, 42 deletions
diff --git a/service/java/com/android/server/wifi/WakeupEvaluator.java b/service/java/com/android/server/wifi/WakeupEvaluator.java
index b98a4fd23..63b88b542 100644
--- a/service/java/com/android/server/wifi/WakeupEvaluator.java
+++ b/service/java/com/android/server/wifi/WakeupEvaluator.java
@@ -16,11 +16,8 @@
package com.android.server.wifi;
-import android.content.Context;
import android.net.wifi.ScanResult;
-import com.android.internal.annotations.VisibleForTesting;
-
import java.util.Collection;
/**
@@ -28,22 +25,10 @@ import java.util.Collection;
*/
public class WakeupEvaluator {
- private final int mThresholdMinimumRssi24;
- private final int mThresholdMinimumRssi5;
-
- /**
- * Constructs a {@link WakeupEvaluator} using the given context.
- */
- public static WakeupEvaluator fromContext(Context context) {
- ScoringParams scoringParams = new ScoringParams(context); // TODO(b/74793980) - replumb
- return new WakeupEvaluator(scoringParams.getEntryRssi(ScoringParams.BAND2),
- scoringParams.getEntryRssi(ScoringParams.BAND5));
- }
+ private final ScoringParams mScoringParams;
- @VisibleForTesting
- WakeupEvaluator(int minimumRssi24, int minimumRssi5) {
- mThresholdMinimumRssi24 = minimumRssi24;
- mThresholdMinimumRssi5 = minimumRssi5;
+ WakeupEvaluator(ScoringParams scoringParams) {
+ mScoringParams = scoringParams;
}
/**
@@ -80,7 +65,6 @@ public class WakeupEvaluator {
* Returns whether the given ScanResult's signal strength is below the selection threshold.
*/
public boolean isBelowThreshold(ScanResult scanResult) {
- return ((scanResult.is24GHz() && scanResult.level < mThresholdMinimumRssi24)
- || (scanResult.is5GHz() && scanResult.level < mThresholdMinimumRssi5));
+ return scanResult.level < mScoringParams.getEntryRssi(scanResult.frequency);
}
}
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java
index 65ccc347d..fbb7365df 100644
--- a/service/java/com/android/server/wifi/WifiConnectivityManager.java
+++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java
@@ -180,14 +180,12 @@ public class WifiConnectivityManager {
private int mFullScanMaxRxRate;
// PNO settings
- private int mMin5GHzRssi;
- private int mMin24GHzRssi;
- private int mInitialScoreMax;
private int mCurrentConnectionBonus;
private int mSameNetworkBonus;
private int mSecureBonus;
private int mBand5GHzBonus;
-
+ private int mRssiScoreOffset;
+ private int mRssiScoreSlope;
private int mPnoScanIntervalMs;
// BSSID blacklist
@@ -614,9 +612,6 @@ public class WifiConnectivityManager {
mScoringParams = scoringParams;
mConnectionAttemptTimeStamps = new LinkedList<>();
- //TODO(b/74793980) - handle these more dynamically
- mMin5GHzRssi = mScoringParams.getEntryRssi(ScoringParams.BAND5);
- mMin24GHzRssi = mScoringParams.getEntryRssi(ScoringParams.BAND2);
mBand5GHzBonus = context.getResources().getInteger(
R.integer.config_wifi_framework_5GHz_preference_boost_factor);
mCurrentConnectionBonus = context.getResources().getInteger(
@@ -625,16 +620,16 @@ public class WifiConnectivityManager {
R.integer.config_wifi_framework_SAME_BSSID_AWARD);
mSecureBonus = context.getResources().getInteger(
R.integer.config_wifi_framework_SECURITY_AWARD);
+ mRssiScoreOffset = context.getResources().getInteger(
+ R.integer.config_wifi_framework_RSSI_SCORE_OFFSET);
+ mRssiScoreSlope = context.getResources().getInteger(
+ R.integer.config_wifi_framework_RSSI_SCORE_SLOPE);
mEnableAutoJoinWhenAssociated = context.getResources().getBoolean(
R.bool.config_wifi_framework_enable_associated_network_selection);
mUseSingleRadioChainScanResults = context.getResources().getBoolean(
R.bool.config_wifi_framework_use_single_radio_chain_scan_results_network_selection);
- mInitialScoreMax = (Math.max(mScoringParams.getGoodRssi(ScoringParams.BAND2),
- mScoringParams.getGoodRssi(ScoringParams.BAND5))
- + context.getResources().getInteger(
- R.integer.config_wifi_framework_RSSI_SCORE_OFFSET))
- * context.getResources().getInteger(
- R.integer.config_wifi_framework_RSSI_SCORE_SLOPE);
+
+
mFullScanMaxTxRate = context.getResources().getInteger(
R.integer.config_wifi_framework_max_tx_rate_for_full_scan);
mFullScanMaxRxRate = context.getResources().getInteger(
@@ -642,12 +637,13 @@ public class WifiConnectivityManager {
mPnoScanIntervalMs = MOVING_PNO_SCAN_INTERVAL_MS;
- localLog("PNO settings:" + " min5GHzRssi " + mMin5GHzRssi
- + " min24GHzRssi " + mMin24GHzRssi
+ localLog("PNO settings:"
+ + " min5GHzRssi " + mScoringParams.getEntryRssi(ScoringParams.BAND5)
+ + " min24GHzRssi " + mScoringParams.getEntryRssi(ScoringParams.BAND2)
+ " currentConnectionBonus " + mCurrentConnectionBonus
+ " sameNetworkBonus " + mSameNetworkBonus
+ " secureNetworkBonus " + mSecureBonus
- + " initialScoreMax " + mInitialScoreMax);
+ + " initialScoreMax " + initialScoreMax());
boolean hs2Enabled = context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WIFI_PASSPOINT);
@@ -666,6 +662,13 @@ public class WifiConnectivityManager {
mConfigManager.setOnSavedNetworkUpdateListener(new OnSavedNetworkUpdateListener());
}
+ /** Returns maximum PNO score, before any awards/bonuses. */
+ private int initialScoreMax() {
+ return mRssiScoreSlope * (Math.max(mScoringParams.getGoodRssi(ScoringParams.BAND2),
+ mScoringParams.getGoodRssi(ScoringParams.BAND5))
+ + mRssiScoreOffset);
+ }
+
/**
* This checks the connection attempt rate and recommends whether the connection attempt
* should be skipped or not. This attempts to rate limit the rate of connections to
@@ -1020,9 +1023,9 @@ public class WifiConnectivityManager {
pnoSettings.networkList = new PnoSettings.PnoNetwork[listSize];
pnoSettings.networkList = pnoNetworkList.toArray(pnoSettings.networkList);
- pnoSettings.min5GHzRssi = mMin5GHzRssi;
- pnoSettings.min24GHzRssi = mMin24GHzRssi;
- pnoSettings.initialScoreMax = mInitialScoreMax;
+ pnoSettings.min5GHzRssi = mScoringParams.getEntryRssi(ScoringParams.BAND5);
+ pnoSettings.min24GHzRssi = mScoringParams.getEntryRssi(ScoringParams.BAND2);
+ pnoSettings.initialScoreMax = initialScoreMax();
pnoSettings.currentConnectionBonus = mCurrentConnectionBonus;
pnoSettings.sameNetworkBonus = mSameNetworkBonus;
pnoSettings.secureBonus = mSecureBonus;
diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java
index 5c6a47423..cf1da31b5 100644
--- a/service/java/com/android/server/wifi/WifiInjector.java
+++ b/service/java/com/android/server/wifi/WifiInjector.java
@@ -302,7 +302,7 @@ public class WifiInjector {
mWakeupController = new WakeupController(mContext,
mWifiCoreHandlerThread.getLooper(),
new WakeupLock(mWifiConfigManager, mWifiMetrics.getWakeupMetrics(), mClock),
- WakeupEvaluator.fromContext(mContext), wakeupOnboarding, mWifiConfigManager,
+ new WakeupEvaluator(mScoringParams), wakeupOnboarding, mWifiConfigManager,
mWifiConfigStore, mWifiMetrics.getWakeupMetrics(), this, mFrameworkFacade,
mClock);
mLockManager = new WifiLockManager(mContext, BatteryStatsService.getService(),
@@ -472,8 +472,8 @@ public class WifiInjector {
return mWifiScoreCard;
}
+ /** Gets a TelephonyManager, which moy not be available early on. */
public TelephonyManager makeTelephonyManager() {
- // may not be available when WiFi starts
return (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
}
@@ -485,6 +485,7 @@ public class WifiInjector {
return mDppManager;
}
+ /** Gets IWificond without caching. */
public IWificond makeWificond() {
// We depend on being able to refresh our binder in ClientModeImpl, so don't cache it.
IBinder binder = ServiceManager.getService(WIFICOND_SERVICE_NAME);
@@ -493,7 +494,6 @@ public class WifiInjector {
/**
* Create a SoftApManager.
- * @param listener listener for SoftApManager
* @param config SoftApModeConfiguration object holding the config and mode
* @return an instance of SoftApManager
*/