From 357f586a63da61ffbc9c53464bbda06ad6e8897c Mon Sep 17 00:00:00 2001 From: lucaslin Date: Thu, 21 Jan 2021 19:48:09 +0800 Subject: [PATCH 1/4] Remove BaseNetworkObserver from Nat464Xlat Let ConnectivityService talk to Nat464Xlat through NetworkAgnetInfo directly: - Nat464Xlat will be created once there is a new network bringing up, but Netd doesn't expose the method for unregistering unsolicited event. - ConnectivityService has already registered netd unsolicited event listener, so Nat464Xlat doesn't need to register unsolicited event listenser by itself, it can get the unsolicited event from ConnectivityService directly. Bug: 174837473 Test: atest FrameworksNetTests Change-Id: I751526e8ffa7d25591696ecd8d93b1585c4c20c7 --- .../com/android/server/ConnectivityService.java | 14 ++++++++++++++ .../android/server/connectivity/Nat464Xlat.java | 17 +---------------- .../server/connectivity/Nat464XlatTest.java | 8 -------- 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 383f9a5195..c67379dd6f 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -8662,6 +8662,20 @@ public class ConnectivityService extends IConnectivityManager.Stub long timestampNs, int uid) { mNetworkActivityTracker.setAndReportNetworkActive(isActive, timerLabel, timestampNs); } + + @Override + public void onInterfaceLinkStateChanged(String iface, boolean up) { + for (NetworkAgentInfo nai: mNetworkAgentInfos) { + nai.clatd.interfaceLinkStateChanged(iface, up); + } + } + + @Override + public void onInterfaceRemoved(String iface) { + for (NetworkAgentInfo nai: mNetworkAgentInfos) { + nai.clatd.interfaceRemoved(iface); + } + } } private final LegacyNetworkActivityTracker mNetworkActivityTracker; diff --git a/services/core/java/com/android/server/connectivity/Nat464Xlat.java b/services/core/java/com/android/server/connectivity/Nat464Xlat.java index 641287f0f4..6052a12bdf 100644 --- a/services/core/java/com/android/server/connectivity/Nat464Xlat.java +++ b/services/core/java/com/android/server/connectivity/Nat464Xlat.java @@ -36,7 +36,6 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.net.module.util.NetworkStackConstants; -import com.android.server.net.BaseNetworkObserver; import java.net.Inet6Address; import java.util.Objects; @@ -48,7 +47,7 @@ import java.util.Objects; * * @hide */ -public class Nat464Xlat extends BaseNetworkObserver { +public class Nat464Xlat { private static final String TAG = Nat464Xlat.class.getSimpleName(); // This must match the interface prefix in clatd.c. @@ -174,13 +173,6 @@ public class Nat464Xlat extends BaseNetworkObserver { * and set internal state. */ private void enterStartingState(String baseIface) { - try { - mNMService.registerObserver(this); - } catch (RemoteException e) { - Log.e(TAG, "Can't register iface observer for clat on " + mNetwork.toShortString()); - return; - } - mNat64PrefixInUse = selectNat64Prefix(); String addrStr = null; try { @@ -216,11 +208,6 @@ public class Nat464Xlat extends BaseNetworkObserver { * Unregister as a base observer for the stacked interface, and clear internal state. */ private void leaveStartedState() { - try { - mNMService.unregisterObserver(this); - } catch (RemoteException | IllegalStateException e) { - Log.e(TAG, "Error unregistering clatd observer on " + mBaseIface + ": " + e); - } mNat64PrefixInUse = null; mIface = null; mBaseIface = null; @@ -507,12 +494,10 @@ public class Nat464Xlat extends BaseNetworkObserver { stop(); } - @Override public void interfaceLinkStateChanged(String iface, boolean up) { mNetwork.handler().post(() -> { handleInterfaceLinkStateChanged(iface, up); }); } - @Override public void interfaceRemoved(String iface) { mNetwork.handler().post(() -> handleInterfaceRemoved(iface)); } diff --git a/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java b/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java index 4f65b67fa3..068de4777e 100644 --- a/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java +++ b/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java @@ -206,7 +206,6 @@ public class Nat464XlatTest { // Start clat. nat.start(); - verify(mNms).registerObserver(eq(nat)); verify(mNetd).clatdStart(eq(BASE_IFACE), eq(NAT64_PREFIX)); // Stacked interface up notification arrives. @@ -225,7 +224,6 @@ public class Nat464XlatTest { verify(mNetd).clatdStop(eq(BASE_IFACE)); verify(mConnectivity, times(2)).handleUpdateLinkProperties(eq(mNai), c.capture()); - verify(mNms).unregisterObserver(eq(nat)); assertTrue(c.getValue().getStackedLinks().isEmpty()); assertFalse(c.getValue().getAllInterfaceNames().contains(STACKED_IFACE)); verify(mDnsResolver).stopPrefix64Discovery(eq(NETID)); @@ -346,7 +344,6 @@ public class Nat464XlatTest { nat.start(); - verify(mNms).registerObserver(eq(nat)); verify(mNetd).clatdStart(eq(BASE_IFACE), eq(NAT64_PREFIX)); // Stacked interface up notification arrives. @@ -365,7 +362,6 @@ public class Nat464XlatTest { verify(mNetd).clatdStop(eq(BASE_IFACE)); verify(mConnectivity, times(2)).handleUpdateLinkProperties(eq(mNai), c.capture()); - verify(mNms).unregisterObserver(eq(nat)); verify(mDnsResolver).stopPrefix64Discovery(eq(NETID)); assertTrue(c.getValue().getStackedLinks().isEmpty()); assertFalse(c.getValue().getAllInterfaceNames().contains(STACKED_IFACE)); @@ -386,7 +382,6 @@ public class Nat464XlatTest { nat.start(); - verify(mNms).registerObserver(eq(nat)); verify(mNetd).clatdStart(eq(BASE_IFACE), eq(NAT64_PREFIX)); // ConnectivityService immediately stops clat (Network disconnects, IPv4 addr appears, ...) @@ -394,7 +389,6 @@ public class Nat464XlatTest { nat.stop(); verify(mNetd).clatdStop(eq(BASE_IFACE)); - verify(mNms).unregisterObserver(eq(nat)); verify(mDnsResolver).stopPrefix64Discovery(eq(NETID)); assertIdle(nat); @@ -430,7 +424,6 @@ public class Nat464XlatTest { nat.start(); - verify(mNms).registerObserver(eq(nat)); verify(mNetd).clatdStart(eq(BASE_IFACE), eq(NAT64_PREFIX)); // ConnectivityService immediately stops clat (Network disconnects, IPv4 addr appears, ...) @@ -438,7 +431,6 @@ public class Nat464XlatTest { nat.stop(); verify(mNetd).clatdStop(eq(BASE_IFACE)); - verify(mNms).unregisterObserver(eq(nat)); verify(mDnsResolver).stopPrefix64Discovery(eq(NETID)); assertIdle(nat); From ea5378c50f89fcc00bf8b647f1c33a8df05c9692 Mon Sep 17 00:00:00 2001 From: lucaslin Date: Sat, 20 Feb 2021 18:59:47 +0800 Subject: [PATCH 2/4] Remove unused INetworkManagementService Bug: 174837473 Test: atest FrameworksNetTests Change-Id: I4e4f929f518ae07bf5b4bd1e16d2a85f62ab9d9c --- .../java/com/android/server/ConnectivityService.java | 10 +++++----- .../com/android/server/connectivity/Nat464Xlat.java | 6 +----- .../server/connectivity/NetworkAgentInfo.java | 7 +++---- .../com/android/server/ConnectivityServiceTest.java | 4 ++-- .../server/connectivity/LingerMonitorTest.java | 6 ++---- .../android/server/connectivity/Nat464XlatTest.java | 12 +++++------- 6 files changed, 18 insertions(+), 27 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index c67379dd6f..d5bb108df4 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -1202,7 +1202,7 @@ public class ConnectivityService extends IConnectivityManager.Stub mUserAllContext.registerReceiver(mIntentReceiver, intentFilter, null /* broadcastPermission */, mHandler); - mNetworkActivityTracker = new LegacyNetworkActivityTracker(mContext, mHandler, mNMS, mNetd); + mNetworkActivityTracker = new LegacyNetworkActivityTracker(mContext, mHandler, mNetd); mNetdCallback = new NetdCallback(); try { @@ -1236,12 +1236,12 @@ public class ConnectivityService extends IConnectivityManager.Stub mDnsManager = new DnsManager(mContext, mDnsResolver); registerPrivateDnsSettingsCallbacks(); - mNoServiceNetwork = new NetworkAgentInfo(null, + mNoServiceNetwork = new NetworkAgentInfo(null, new Network(NO_SERVICE_NET_ID), new NetworkInfo(TYPE_NONE, 0, "", ""), new LinkProperties(), new NetworkCapabilities(), 0, mContext, null, new NetworkAgentConfig(), this, null, - null, null, 0, INVALID_UID, + null, 0, INVALID_UID, mQosCallbackTracker); } @@ -6027,7 +6027,7 @@ public class ConnectivityService extends IConnectivityManager.Stub final NetworkAgentInfo nai = new NetworkAgentInfo(na, new Network(mNetIdManager.reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig), - this, mNetd, mDnsResolver, mNMS, providerId, uid, mQosCallbackTracker); + this, mNetd, mDnsResolver, providerId, uid, mQosCallbackTracker); // Make sure the LinkProperties and NetworkCapabilities reflect what the agent info says. processCapabilitiesFromAgent(nai, nc); @@ -8708,7 +8708,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } LegacyNetworkActivityTracker(@NonNull Context context, @NonNull Handler handler, - @NonNull INetworkManagementService nms, @NonNull INetd netd) { + @NonNull INetd netd) { mContext = context; mNetd = netd; mHandler = handler; diff --git a/services/core/java/com/android/server/connectivity/Nat464Xlat.java b/services/core/java/com/android/server/connectivity/Nat464Xlat.java index 6052a12bdf..fa80b25f90 100644 --- a/services/core/java/com/android/server/connectivity/Nat464Xlat.java +++ b/services/core/java/com/android/server/connectivity/Nat464Xlat.java @@ -29,7 +29,6 @@ import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.RouteInfo; -import android.os.INetworkManagementService; import android.os.RemoteException; import android.os.ServiceSpecificException; import android.util.Log; @@ -69,7 +68,6 @@ public class Nat464Xlat { private final IDnsResolver mDnsResolver; private final INetd mNetd; - private final INetworkManagementService mNMService; // The network we're running on, and its type. private final NetworkAgentInfo mNetwork; @@ -98,11 +96,9 @@ public class Nat464Xlat { private boolean mPrefixDiscoveryRunning; - public Nat464Xlat(NetworkAgentInfo nai, INetd netd, IDnsResolver dnsResolver, - INetworkManagementService nmService) { + public Nat464Xlat(NetworkAgentInfo nai, INetd netd, IDnsResolver dnsResolver) { mDnsResolver = dnsResolver; mNetd = netd; - mNMService = nmService; mNetwork = nai; } diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java index 4cf527415d..cac6cab707 100644 --- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java @@ -43,7 +43,6 @@ import android.net.QosSession; import android.net.TcpKeepalivePacketData; import android.os.Handler; import android.os.IBinder; -import android.os.INetworkManagementService; import android.os.RemoteException; import android.os.SystemClock; import android.telephony.data.EpsBearerQosSessionAttributes; @@ -341,8 +340,8 @@ public class NetworkAgentInfo implements Comparable { public NetworkAgentInfo(INetworkAgent na, Network net, NetworkInfo info, @NonNull LinkProperties lp, @NonNull NetworkCapabilities nc, int score, Context context, Handler handler, NetworkAgentConfig config, ConnectivityService connService, INetd netd, - IDnsResolver dnsResolver, INetworkManagementService nms, int factorySerialNumber, - int creatorUid, QosCallbackTracker qosCallbackTracker) { + IDnsResolver dnsResolver, int factorySerialNumber, int creatorUid, + QosCallbackTracker qosCallbackTracker) { Objects.requireNonNull(net); Objects.requireNonNull(info); Objects.requireNonNull(lp); @@ -356,7 +355,7 @@ public class NetworkAgentInfo implements Comparable { linkProperties = lp; networkCapabilities = nc; mScore = score; - clatd = new Nat464Xlat(this, netd, dnsResolver, nms); + clatd = new Nat464Xlat(this, netd, dnsResolver); mConnService = connService; mContext = context; mHandler = handler; diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index fbeebe53fe..975f55286d 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -8926,8 +8926,8 @@ public class ConnectivityServiceTest { ConnectivityManager.getNetworkTypeName(TYPE_MOBILE), TelephonyManager.getNetworkTypeName(TelephonyManager.NETWORK_TYPE_LTE)); return new NetworkAgentInfo(null, new Network(NET_ID), info, new LinkProperties(), - nc, 0, mServiceContext, null, new NetworkAgentConfig(), mService, null, null, null, - 0, INVALID_UID, mQosCallbackTracker); + nc, 0, mServiceContext, null, new NetworkAgentConfig(), mService, null, null, 0, + INVALID_UID, mQosCallbackTracker); } @Test diff --git a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java index 52cb836e19..a913673c2a 100644 --- a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java +++ b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java @@ -41,7 +41,6 @@ import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkProvider; import android.os.Binder; -import android.os.INetworkManagementService; import android.text.format.DateUtils; import androidx.test.filters.SmallTest; @@ -74,7 +73,6 @@ public class LingerMonitorTest { @Mock ConnectivityService mConnService; @Mock IDnsResolver mDnsResolver; @Mock INetd mNetd; - @Mock INetworkManagementService mNMS; @Mock Context mCtx; @Mock NetworkNotificationManager mNotifier; @Mock Resources mResources; @@ -358,8 +356,8 @@ public class LingerMonitorTest { caps.addTransportType(transport); NetworkAgentInfo nai = new NetworkAgentInfo(null, new Network(netId), info, new LinkProperties(), caps, 50, mCtx, null, new NetworkAgentConfig() /* config */, - mConnService, mNetd, mDnsResolver, mNMS, NetworkProvider.ID_NONE, - Binder.getCallingUid(), mQosCallbackTracker); + mConnService, mNetd, mDnsResolver, NetworkProvider.ID_NONE, Binder.getCallingUid(), + mQosCallbackTracker); nai.everValidated = true; return nai; } diff --git a/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java b/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java index 068de4777e..5f56e25356 100644 --- a/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java +++ b/tests/net/java/com/android/server/connectivity/Nat464XlatTest.java @@ -36,7 +36,6 @@ import android.net.LinkProperties; import android.net.NetworkAgentConfig; import android.net.NetworkInfo; import android.os.Handler; -import android.os.INetworkManagementService; import android.os.test.TestLooper; import androidx.test.filters.SmallTest; @@ -67,7 +66,6 @@ public class Nat464XlatTest { @Mock ConnectivityService mConnectivity; @Mock IDnsResolver mDnsResolver; @Mock INetd mNetd; - @Mock INetworkManagementService mNms; @Mock NetworkAgentInfo mNai; TestLooper mLooper; @@ -75,7 +73,7 @@ public class Nat464XlatTest { NetworkAgentConfig mAgentConfig = new NetworkAgentConfig(); Nat464Xlat makeNat464Xlat() { - return new Nat464Xlat(mNai, mNetd, mDnsResolver, mNms) { + return new Nat464Xlat(mNai, mNetd, mDnsResolver) { @Override protected int getNetId() { return NETID; } @@ -233,7 +231,7 @@ public class Nat464XlatTest { nat.interfaceRemoved(STACKED_IFACE); mLooper.dispatchNext(); - verifyNoMoreInteractions(mNetd, mNms, mConnectivity); + verifyNoMoreInteractions(mNetd, mConnectivity); } @Test @@ -370,7 +368,7 @@ public class Nat464XlatTest { // ConnectivityService stops clat: no-op. nat.stop(); - verifyNoMoreInteractions(mNetd, mNms, mConnectivity); + verifyNoMoreInteractions(mNetd, mConnectivity); } private void checkStopBeforeClatdStarts(boolean dueToDisconnect) throws Exception { @@ -402,7 +400,7 @@ public class Nat464XlatTest { assertIdle(nat); - verifyNoMoreInteractions(mNetd, mNms, mConnectivity); + verifyNoMoreInteractions(mNetd, mConnectivity); } @Test @@ -434,7 +432,7 @@ public class Nat464XlatTest { verify(mDnsResolver).stopPrefix64Discovery(eq(NETID)); assertIdle(nat); - verifyNoMoreInteractions(mNetd, mNms, mConnectivity); + verifyNoMoreInteractions(mNetd, mConnectivity); } @Test From d5d3dc15badfea4f7111a1a92a11882d2bf6ee43 Mon Sep 17 00:00:00 2001 From: lucaslin Date: Wed, 24 Feb 2021 13:49:42 +0800 Subject: [PATCH 3/4] Remove INetworkManagementService from ConnectivityService Remove INetworkManagementService from ConnectivityService and related files. Bug: 174837473 Test: atest FrameworksNetTests FrameworksNetIntegrationTests Change-Id: Ie6cfd77bbd64a8fd7539b0ea7fd15bf970e40c3d --- .../com/android/server/ConnectivityService.java | 14 +++++--------- .../server/ConnectivityServiceInitializer.java | 9 +-------- .../com/android/server/TestNetworkService.java | 6 +----- .../ConnectivityServiceIntegrationTest.kt | 2 +- .../android/server/ConnectivityServiceTest.java | 5 ----- 5 files changed, 8 insertions(+), 28 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index d5bb108df4..afa8279bac 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -154,7 +154,6 @@ import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; -import android.os.INetworkManagementService; import android.os.Looper; import android.os.Message; import android.os.Messenger; @@ -323,7 +322,6 @@ public class ConnectivityService extends IConnectivityManager.Stub // 0 is full bad, 100 is full good private int mDefaultInetConditionPublished = 0; - private INetworkManagementService mNMS; @VisibleForTesting protected IDnsResolver mDnsResolver; @VisibleForTesting @@ -1039,15 +1037,14 @@ public class ConnectivityService extends IConnectivityManager.Stub } } - public ConnectivityService(Context context, INetworkManagementService netManager, - INetworkStatsService statsService) { - this(context, netManager, statsService, getDnsResolver(context), new IpConnectivityLog(), + public ConnectivityService(Context context, INetworkStatsService statsService) { + this(context, statsService, getDnsResolver(context), new IpConnectivityLog(), NetdService.getInstance(), new Dependencies()); } @VisibleForTesting - protected ConnectivityService(Context context, INetworkManagementService netManager, - INetworkStatsService statsService, IDnsResolver dnsresolver, IpConnectivityLog logger, + protected ConnectivityService(Context context, INetworkStatsService statsService, + IDnsResolver dnsresolver, IpConnectivityLog logger, INetd netd, Dependencies deps) { if (DBG) log("ConnectivityService starting up"); @@ -1094,7 +1091,6 @@ public class ConnectivityService extends IConnectivityManager.Stub // TODO: Consider making the timer customizable. mNascentDelayMs = DEFAULT_NASCENT_DELAY_MS; - mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService"); mStatsService = Objects.requireNonNull(statsService, "missing INetworkStatsService"); mPolicyManager = mContext.getSystemService(NetworkPolicyManager.class); mPolicyManagerInternal = Objects.requireNonNull( @@ -8183,7 +8179,7 @@ public class ConnectivityService extends IConnectivityManager.Stub TestNetworkService.enforceTestNetworkPermissions(mContext); if (mTNS == null) { - mTNS = new TestNetworkService(mContext, mNMS); + mTNS = new TestNetworkService(mContext); } return mTNS; diff --git a/services/core/java/com/android/server/ConnectivityServiceInitializer.java b/services/core/java/com/android/server/ConnectivityServiceInitializer.java index 0779f7117d..097441f706 100644 --- a/services/core/java/com/android/server/ConnectivityServiceInitializer.java +++ b/services/core/java/com/android/server/ConnectivityServiceInitializer.java @@ -21,7 +21,6 @@ import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_NORMAL; import android.content.Context; import android.net.INetworkStatsService; -import android.os.INetworkManagementService; import android.os.ServiceManager; import android.util.Log; @@ -38,8 +37,7 @@ public final class ConnectivityServiceInitializer extends SystemService { // Load JNI libraries used by ConnectivityService and its dependencies System.loadLibrary("service-connectivity"); // TODO: Define formal APIs to get the needed services. - mConnectivity = new ConnectivityService(context, getNetworkManagementService(), - getNetworkStatsService()); + mConnectivity = new ConnectivityService(context, getNetworkStatsService()); } @Override @@ -49,11 +47,6 @@ public final class ConnectivityServiceInitializer extends SystemService { /* allowIsolated= */ false, DUMP_FLAG_PRIORITY_HIGH | DUMP_FLAG_PRIORITY_NORMAL); } - private INetworkManagementService getNetworkManagementService() { - return INetworkManagementService.Stub.asInterface( - ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE)); - } - private INetworkStatsService getNetworkStatsService() { return INetworkStatsService.Stub.asInterface( ServiceManager.getService(Context.NETWORK_STATS_SERVICE)); diff --git a/services/core/java/com/android/server/TestNetworkService.java b/services/core/java/com/android/server/TestNetworkService.java index 96f832d268..3e5c89de7f 100644 --- a/services/core/java/com/android/server/TestNetworkService.java +++ b/services/core/java/com/android/server/TestNetworkService.java @@ -41,7 +41,6 @@ import android.os.Binder; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; -import android.os.INetworkManagementService; import android.os.Looper; import android.os.ParcelFileDescriptor; import android.os.RemoteException; @@ -69,7 +68,6 @@ class TestNetworkService extends ITestNetworkManager.Stub { @NonNull private static final AtomicInteger sTestTunIndex = new AtomicInteger(); @NonNull private final Context mContext; - @NonNull private final INetworkManagementService mNMS; @NonNull private final INetd mNetd; @NonNull private final HandlerThread mHandlerThread; @@ -82,14 +80,12 @@ class TestNetworkService extends ITestNetworkManager.Stub { private static native int jniCreateTunTap(boolean isTun, @NonNull String iface); @VisibleForTesting - protected TestNetworkService( - @NonNull Context context, @NonNull INetworkManagementService netManager) { + protected TestNetworkService(@NonNull Context context) { mHandlerThread = new HandlerThread("TestNetworkServiceThread"); mHandlerThread.start(); mHandler = new Handler(mHandlerThread.getLooper()); mContext = Objects.requireNonNull(context, "missing Context"); - mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService"); mNetd = Objects.requireNonNull(NetdService.getInstance(), "could not get netd instance"); mCm = mContext.getSystemService(ConnectivityManager.class); mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(), diff --git a/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt b/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt index 9ed55f098a..c10c573aa0 100644 --- a/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt +++ b/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt @@ -177,7 +177,7 @@ class ConnectivityServiceIntegrationTest { } private inner class TestConnectivityService(deps: Dependencies) : ConnectivityService( - context, netManager, statsService, dnsResolver, log, netd, deps) + context, statsService, dnsResolver, log, netd, deps) private fun makeDependencies(): ConnectivityService.Dependencies { val deps = spy(ConnectivityService.Dependencies()) diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 975f55286d..a6dff3b85f 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -1463,7 +1463,6 @@ public class ConnectivityServiceTest { mDeps = makeDependencies(); returnRealCallingUid(); mService = new ConnectivityService(mServiceContext, - mNetworkManagementService, mStatsService, mMockDnsResolver, mock(IpConnectivityLog.class), @@ -7855,7 +7854,6 @@ public class ConnectivityServiceTest { cellLp.addRoute(defaultRoute); cellLp.addRoute(ipv6Subnet); mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp); - reset(mNetworkManagementService); reset(mMockDnsResolver); reset(mMockNetd); reset(mBatteryStatsService); @@ -7895,7 +7893,6 @@ public class ConnectivityServiceTest { verifyNoMoreInteractions(mMockNetd); verifyNoMoreInteractions(mMockDnsResolver); - reset(mNetworkManagementService); reset(mMockNetd); reset(mMockDnsResolver); when(mMockNetd.interfaceGetCfg(CLAT_PREFIX + MOBILE_IFNAME)) @@ -7995,7 +7992,6 @@ public class ConnectivityServiceTest { verify(mMockNetd, times(1)).networkRemoveInterface(cellNetId, CLAT_PREFIX + MOBILE_IFNAME); verifyNoMoreInteractions(mMockNetd); verifyNoMoreInteractions(mMockDnsResolver); - reset(mNetworkManagementService); reset(mMockNetd); reset(mMockDnsResolver); when(mMockNetd.interfaceGetCfg(CLAT_PREFIX + MOBILE_IFNAME)) @@ -8232,7 +8228,6 @@ public class ConnectivityServiceTest { final LinkProperties cellLp = new LinkProperties(); cellLp.setInterfaceName(MOBILE_IFNAME); mCellNetworkAgent.sendLinkProperties(cellLp); - reset(mNetworkManagementService); mCellNetworkAgent.connect(true); networkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent); verify(mMockNetd, times(1)).idletimerAddInterface(eq(MOBILE_IFNAME), anyInt(), From e17f34758569d3767d805d879fd179f75259d333 Mon Sep 17 00:00:00 2001 From: lucaslin Date: Thu, 25 Feb 2021 15:10:29 +0800 Subject: [PATCH 4/4] Fix comments left on aosp/1547454 and aosp/1556106 Bug: 174837473 Test: atest FrameworksNetTests Change-Id: I35ed84fcc53725fe29896ec37b77ef4fb4778fde --- .../core/java/com/android/server/ConnectivityService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index afa8279bac..73981e9dec 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -8654,21 +8654,21 @@ public class ConnectivityService extends IConnectivityManager.Stub private class NetdCallback extends BaseNetdUnsolicitedEventListener { @Override - public void onInterfaceClassActivityChanged(boolean isActive, int timerLabel, + public void onInterfaceClassActivityChanged(boolean isActive, int transportType, long timestampNs, int uid) { - mNetworkActivityTracker.setAndReportNetworkActive(isActive, timerLabel, timestampNs); + mNetworkActivityTracker.setAndReportNetworkActive(isActive, transportType, timestampNs); } @Override public void onInterfaceLinkStateChanged(String iface, boolean up) { - for (NetworkAgentInfo nai: mNetworkAgentInfos) { + for (NetworkAgentInfo nai : mNetworkAgentInfos) { nai.clatd.interfaceLinkStateChanged(iface, up); } } @Override public void onInterfaceRemoved(String iface) { - for (NetworkAgentInfo nai: mNetworkAgentInfos) { + for (NetworkAgentInfo nai : mNetworkAgentInfos) { nai.clatd.interfaceRemoved(iface); } }