Merge "Have NetworkPolicyManagerService create MultipathPolicyTracker"
This commit is contained in:
@@ -201,7 +201,6 @@ 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.NetworkNotificationManager;
|
import com.android.server.connectivity.NetworkNotificationManager;
|
||||||
@@ -441,11 +440,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
*/
|
*/
|
||||||
private static final int EVENT_EXPIRE_NET_TRANSITION_WAKELOCK = 24;
|
private static final int EVENT_EXPIRE_NET_TRANSITION_WAKELOCK = 24;
|
||||||
|
|
||||||
/**
|
|
||||||
* Used internally to indicate the system is ready.
|
|
||||||
*/
|
|
||||||
private static final int EVENT_SYSTEM_READY = 25;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used to add a network request with a pending intent
|
* used to add a network request with a pending intent
|
||||||
* obj = NetworkRequestInfo
|
* obj = NetworkRequestInfo
|
||||||
@@ -660,9 +654,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
|
final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
final MultipathPolicyTracker mMultipathPolicyTracker;
|
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final Map<IBinder, ConnectivityDiagnosticsCallbackInfo> mConnectivityDiagnosticsCallbacks =
|
final Map<IBinder, ConnectivityDiagnosticsCallbackInfo> mConnectivityDiagnosticsCallbacks =
|
||||||
new HashMap<>();
|
new HashMap<>();
|
||||||
@@ -1167,8 +1158,6 @@ 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, mDnsResolver);
|
mDnsManager = new DnsManager(mContext, mDnsResolver);
|
||||||
registerPrivateDnsSettingsCallbacks();
|
registerPrivateDnsSettingsCallbacks();
|
||||||
}
|
}
|
||||||
@@ -2315,10 +2304,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void systemReadyInternal() {
|
public void systemReadyInternal() {
|
||||||
// Let PermissionMonitor#startMonitoring() running in the beginning of the systemReady
|
// Since mApps in PermissionMonitor needs to be populated first to ensure that
|
||||||
// before MultipathPolicyTracker.start(). Since mApps in PermissionMonitor needs to be
|
// listening network request which is sent by MultipathPolicyTracker won't be added
|
||||||
// populated first to ensure that listening network request which is sent by
|
// NET_CAPABILITY_FOREGROUND capability. Thus, MultipathPolicyTracker.start() must
|
||||||
// MultipathPolicyTracker won't be added NET_CAPABILITY_FOREGROUND capability.
|
// be called after PermissionMonitor#startMonitoring().
|
||||||
|
// Calling PermissionMonitor#startMonitoring() in systemReadyInternal() and the
|
||||||
|
// MultipathPolicyTracker.start() is called in NetworkPolicyManagerService#systemReady()
|
||||||
|
// to ensure the tracking will be initialized correctly.
|
||||||
mPermissionMonitor.startMonitoring();
|
mPermissionMonitor.startMonitoring();
|
||||||
mProxyTracker.loadGlobalProxy();
|
mProxyTracker.loadGlobalProxy();
|
||||||
registerNetdEventCallback();
|
registerNetdEventCallback();
|
||||||
@@ -2337,8 +2329,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
// Create network requests for always-on networks.
|
// Create network requests for always-on networks.
|
||||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_CONFIGURE_ALWAYS_ON_NETWORKS));
|
mHandler.sendMessage(mHandler.obtainMessage(EVENT_CONFIGURE_ALWAYS_ON_NETWORKS));
|
||||||
|
|
||||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_READY));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2638,7 +2628,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
dumpAvoidBadWifiSettings(pw);
|
dumpAvoidBadWifiSettings(pw);
|
||||||
|
|
||||||
pw.println();
|
pw.println();
|
||||||
mMultipathPolicyTracker.dump(pw);
|
|
||||||
|
|
||||||
if (ArrayUtils.contains(args, SHORT_ARG) == false) {
|
if (ArrayUtils.contains(args, SHORT_ARG) == false) {
|
||||||
pw.println();
|
pw.println();
|
||||||
@@ -4186,11 +4175,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
return ConnectivityManager.MULTIPATH_PREFERENCE_UNMETERED;
|
return ConnectivityManager.MULTIPATH_PREFERENCE_UNMETERED;
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer networkPreference = mMultipathPolicyTracker.getMultipathPreference(network);
|
final NetworkPolicyManager netPolicyManager =
|
||||||
if (networkPreference != null) {
|
mContext.getSystemService(NetworkPolicyManager.class);
|
||||||
|
|
||||||
|
final int networkPreference = netPolicyManager.getMultipathPreference(network);
|
||||||
|
if (networkPreference != 0) {
|
||||||
return networkPreference;
|
return networkPreference;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mMultinetworkPolicyTracker.getMeteredMultipathPreference();
|
return mMultinetworkPolicyTracker.getMeteredMultipathPreference();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4294,10 +4285,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mKeepaliveTracker.handleStopKeepalive(nai, slot, reason);
|
mKeepaliveTracker.handleStopKeepalive(nai, slot, reason);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EVENT_SYSTEM_READY: {
|
|
||||||
mMultipathPolicyTracker.start();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case EVENT_REVALIDATE_NETWORK: {
|
case EVENT_REVALIDATE_NETWORK: {
|
||||||
handleReportNetworkConnectivity((Network) msg.obj, msg.arg1, toBool(msg.arg2));
|
handleReportNetworkConnectivity((Network) msg.obj, msg.arg1, toBool(msg.arg2));
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -4742,11 +4742,9 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNetworkCallbackMaximum() {
|
public void testNetworkCallbackMaximum() {
|
||||||
// We can only have 99 callbacks, because MultipathPolicyTracker is
|
final int MAX_REQUESTS = 100;
|
||||||
// already one of them.
|
|
||||||
final int MAX_REQUESTS = 99;
|
|
||||||
final int CALLBACKS = 89;
|
final int CALLBACKS = 89;
|
||||||
final int INTENTS = 10;
|
final int INTENTS = 11;
|
||||||
assertEquals(MAX_REQUESTS, CALLBACKS + INTENTS);
|
assertEquals(MAX_REQUESTS, CALLBACKS + INTENTS);
|
||||||
|
|
||||||
NetworkRequest networkRequest = new NetworkRequest.Builder().build();
|
NetworkRequest networkRequest = new NetworkRequest.Builder().build();
|
||||||
|
|||||||
Reference in New Issue
Block a user