Determine the multipath hint from data usage.
Bug: 35142602 Test: builds, boots Change-Id: I0f5de5e313ead442aa210f163db035fcf7de5e73
This commit is contained in:
@@ -137,6 +137,7 @@ import com.android.server.connectivity.IpConnectivityMetrics;
|
|||||||
import com.android.server.connectivity.KeepaliveTracker;
|
import com.android.server.connectivity.KeepaliveTracker;
|
||||||
import com.android.server.connectivity.LingerMonitor;
|
import com.android.server.connectivity.LingerMonitor;
|
||||||
import com.android.server.connectivity.MockableSystemProperties;
|
import com.android.server.connectivity.MockableSystemProperties;
|
||||||
|
import com.android.server.connectivity.MultipathPolicyTracker;
|
||||||
import com.android.server.connectivity.NetworkAgentInfo;
|
import com.android.server.connectivity.NetworkAgentInfo;
|
||||||
import com.android.server.connectivity.NetworkDiagnostics;
|
import com.android.server.connectivity.NetworkDiagnostics;
|
||||||
import com.android.server.connectivity.NetworkMonitor;
|
import com.android.server.connectivity.NetworkMonitor;
|
||||||
@@ -507,6 +508,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
|
final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
final MultipathPolicyTracker mMultipathPolicyTracker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements support for the legacy "one network per network type" model.
|
* Implements support for the legacy "one network per network type" model.
|
||||||
*
|
*
|
||||||
@@ -890,6 +894,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mContext, mHandler, () -> rematchForAvoidBadWifiUpdate());
|
mContext, mHandler, () -> rematchForAvoidBadWifiUpdate());
|
||||||
mMultinetworkPolicyTracker.start();
|
mMultinetworkPolicyTracker.start();
|
||||||
|
|
||||||
|
mMultipathPolicyTracker = new MultipathPolicyTracker(mContext, mHandler);
|
||||||
|
|
||||||
mDnsManager = new DnsManager(mContext, mNetd, mSystemProperties);
|
mDnsManager = new DnsManager(mContext, mNetd, mSystemProperties);
|
||||||
registerPrivateDnsSettingsCallbacks();
|
registerPrivateDnsSettingsCallbacks();
|
||||||
}
|
}
|
||||||
@@ -1966,6 +1972,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
pw.println();
|
pw.println();
|
||||||
dumpAvoidBadWifiSettings(pw);
|
dumpAvoidBadWifiSettings(pw);
|
||||||
|
|
||||||
|
pw.println();
|
||||||
|
mMultipathPolicyTracker.dump(pw);
|
||||||
|
|
||||||
if (argsContain(args, SHORT_ARG) == false) {
|
if (argsContain(args, SHORT_ARG) == false) {
|
||||||
pw.println();
|
pw.println();
|
||||||
synchronized (mValidationLogs) {
|
synchronized (mValidationLogs) {
|
||||||
@@ -2901,6 +2910,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
return ConnectivityManager.MULTIPATH_PREFERENCE_UNMETERED;
|
return ConnectivityManager.MULTIPATH_PREFERENCE_UNMETERED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Integer networkPreference = mMultipathPolicyTracker.getMultipathPreference(network);
|
||||||
|
if (networkPreference != null) {
|
||||||
|
return networkPreference;
|
||||||
|
}
|
||||||
|
|
||||||
return mMultinetworkPolicyTracker.getMeteredMultipathPreference();
|
return mMultinetworkPolicyTracker.getMeteredMultipathPreference();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2994,6 +3008,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
|
for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
|
||||||
nai.networkMonitor.systemReady = true;
|
nai.networkMonitor.systemReady = true;
|
||||||
}
|
}
|
||||||
|
mMultipathPolicyTracker.start();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EVENT_REVALIDATE_NETWORK: {
|
case EVENT_REVALIDATE_NETWORK: {
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ public class MultinetworkPolicyTracker {
|
|||||||
return mAvoidBadWifi;
|
return mAvoidBadWifi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: move this to MultipathPolicyTracker.
|
||||||
public int getMeteredMultipathPreference() {
|
public int getMeteredMultipathPreference() {
|
||||||
return mMeteredMultipathPreference;
|
return mMeteredMultipathPreference;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user