From ffa7b2f12c9e20a7076395334768644306bf5361 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Mon, 26 Oct 2020 15:12:12 +0800 Subject: [PATCH 1/2] Replace hidden NMS default network configuration API Replace the hidden setDefaultNetId and clearDefaultNetId NMS APIs with accessing INetd directly for the incoming ConnectivityService mainline. Bug: 170598012 Test: atest FrameworksNetTests Test: manually connect and disconnect wifi Change-Id: I162fae5ca444207a037e5ac4bf8fa0a77a648ca1 --- .../android/os/INetworkManagementService.aidl | 3 --- .../android/server/ConnectivityService.java | 6 ++--- .../server/NetworkManagementService.java | 22 ------------------- .../server/ConnectivityServiceTest.java | 14 ++++++------ 4 files changed, 10 insertions(+), 35 deletions(-) diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 99f04183cc0db..856d8bf23820e 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -352,9 +352,6 @@ interface INetworkManagementService void addLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid); - void setDefaultNetId(int netId); - void clearDefaultNetId(); - /** * Set permission for a network. * @param permission PERMISSION_NONE to clear permissions. diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 1ba157c5c45ec..0d1d2f7d4a7e8 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -6708,11 +6708,11 @@ public class ConnectivityService extends IConnectivityManager.Stub try { if (null != newNetwork) { - mNMS.setDefaultNetId(newNetwork.network.netId); + mNetd.networkSetDefault(newNetwork.network.netId); } else { - mNMS.clearDefaultNetId(); + mNetd.networkClearDefault(); } - } catch (Exception e) { + } catch (RemoteException | ServiceSpecificException e) { loge("Exception setting default network :" + e); } diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index 5d8db30ad8aa6..58c6780df7af5 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -2019,28 +2019,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub { } } - @Override - public void setDefaultNetId(int netId) { - NetworkStack.checkNetworkStackPermission(mContext); - - try { - mNetdService.networkSetDefault(netId); - } catch (RemoteException | ServiceSpecificException e) { - throw new IllegalStateException(e); - } - } - - @Override - public void clearDefaultNetId() { - NetworkStack.checkNetworkStackPermission(mContext); - - try { - mNetdService.networkClearDefault(); - } catch (RemoteException | ServiceSpecificException e) { - throw new IllegalStateException(e); - } - } - @Override public void setNetworkPermission(int netId, int permission) { NetworkStack.checkNetworkStackPermission(mContext); diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 0ab631bbb671a..75ab128a374db 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -6021,23 +6021,23 @@ public class ConnectivityServiceTest { mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR); mCellNetworkAgent.connect(true); trustedCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent); - verify(mNetworkManagementService).setDefaultNetId(eq(mCellNetworkAgent.getNetwork().netId)); - reset(mNetworkManagementService); + verify(mMockNetd).networkSetDefault(eq(mCellNetworkAgent.getNetwork().netId)); + reset(mMockNetd); mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI); mWiFiNetworkAgent.connect(true); trustedCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent); - verify(mNetworkManagementService).setDefaultNetId(eq(mWiFiNetworkAgent.getNetwork().netId)); - reset(mNetworkManagementService); + verify(mMockNetd).networkSetDefault(eq(mWiFiNetworkAgent.getNetwork().netId)); + reset(mMockNetd); mWiFiNetworkAgent.removeCapability(NET_CAPABILITY_TRUSTED); trustedCallback.expectAvailableCallbacksValidated(mCellNetworkAgent); - verify(mNetworkManagementService).setDefaultNetId(eq(mCellNetworkAgent.getNetwork().netId)); - reset(mNetworkManagementService); + verify(mMockNetd).networkSetDefault(eq(mCellNetworkAgent.getNetwork().netId)); + reset(mMockNetd); mCellNetworkAgent.removeCapability(NET_CAPABILITY_TRUSTED); trustedCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent); - verify(mNetworkManagementService).clearDefaultNetId(); + verify(mMockNetd).networkClearDefault(); mCm.unregisterNetworkCallback(trustedCallback); } From 8d39f189d570f5dd382bdc947cee51ea3e1b2fb2 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Mon, 26 Oct 2020 17:13:09 +0800 Subject: [PATCH 2/2] Replace hidden NMS API for setting MTU Replace the hidden NMS setMtu API with calling INetd directly for incoming ConnectivityService mainline. Bug: 170598012 Test: atest FrameworksNetTests Test: manually connect and disconnect network Change-Id: I6a51d8033b3354824d4cfb953c2bbe3055d00102 --- core/java/android/os/INetworkManagementService.aidl | 5 ----- .../java/com/android/server/ConnectivityService.java | 6 +++--- .../com/android/server/NetworkManagementService.java | 11 ----------- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 856d8bf23820e..3bcef901aa4a2 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -116,11 +116,6 @@ interface INetworkManagementService */ void removeRoute(int netId, in RouteInfo route); - /** - * Set the specified MTU size - */ - void setMtu(String iface, int mtu); - /** * Shuts down the service */ diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 0d1d2f7d4a7e8..3291e96f4dc82 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2437,9 +2437,9 @@ public class ConnectivityService extends IConnectivityManager.Stub try { if (VDBG || DDBG) log("Setting MTU size: " + iface + ", " + mtu); - mNMS.setMtu(iface, mtu); - } catch (Exception e) { - Slog.e(TAG, "exception in setMtu()" + e); + mNetd.interfaceSetMtu(iface, mtu); + } catch (RemoteException | ServiceSpecificException e) { + Slog.e(TAG, "exception in interfaceSetMtu()" + e); } } diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index 58c6780df7af5..dea6c04b4f372 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -944,17 +944,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub { return list; } - @Override - public void setMtu(String iface, int mtu) { - NetworkStack.checkNetworkStackPermission(mContext); - - try { - mNetdService.interfaceSetMtu(iface, mtu); - } catch (RemoteException | ServiceSpecificException e) { - throw new IllegalStateException(e); - } - } - @Override public void shutdown() { // TODO: remove from aidl if nobody calls externally