Determine the multipath hint from data usage.

Bug: 35142602
Test: builds, boots
Change-Id: I0f5de5e313ead442aa210f163db035fcf7de5e73
This commit is contained in:
Lorenzo Colitti
2018-01-24 17:35:07 +09:00
parent d6aa30a780
commit 389a81485e
2 changed files with 16 additions and 0 deletions

View File

@@ -137,6 +137,7 @@ import com.android.server.connectivity.IpConnectivityMetrics;
import com.android.server.connectivity.KeepaliveTracker;
import com.android.server.connectivity.LingerMonitor;
import com.android.server.connectivity.MockableSystemProperties;
import com.android.server.connectivity.MultipathPolicyTracker;
import com.android.server.connectivity.NetworkAgentInfo;
import com.android.server.connectivity.NetworkDiagnostics;
import com.android.server.connectivity.NetworkMonitor;
@@ -507,6 +508,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
@VisibleForTesting
final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
@VisibleForTesting
final MultipathPolicyTracker mMultipathPolicyTracker;
/**
* Implements support for the legacy "one network per network type" model.
*
@@ -890,6 +894,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
mContext, mHandler, () -> rematchForAvoidBadWifiUpdate());
mMultinetworkPolicyTracker.start();
mMultipathPolicyTracker = new MultipathPolicyTracker(mContext, mHandler);
mDnsManager = new DnsManager(mContext, mNetd, mSystemProperties);
registerPrivateDnsSettingsCallbacks();
}
@@ -1966,6 +1972,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
pw.println();
dumpAvoidBadWifiSettings(pw);
pw.println();
mMultipathPolicyTracker.dump(pw);
if (argsContain(args, SHORT_ARG) == false) {
pw.println();
synchronized (mValidationLogs) {
@@ -2901,6 +2910,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
return ConnectivityManager.MULTIPATH_PREFERENCE_UNMETERED;
}
Integer networkPreference = mMultipathPolicyTracker.getMultipathPreference(network);
if (networkPreference != null) {
return networkPreference;
}
return mMultinetworkPolicyTracker.getMeteredMultipathPreference();
}
@@ -2994,6 +3008,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
nai.networkMonitor.systemReady = true;
}
mMultipathPolicyTracker.start();
break;
}
case EVENT_REVALIDATE_NETWORK: {

View File

@@ -122,6 +122,7 @@ public class MultinetworkPolicyTracker {
return mAvoidBadWifi;
}
// TODO: move this to MultipathPolicyTracker.
public int getMeteredMultipathPreference() {
return mMeteredMultipathPreference;
}