From bf6b879b55b555fb06ec886403be2b3836710a65 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Tue, 11 Jan 2022 10:48:07 +0800 Subject: [PATCH] Add excludeLocalRoutes in NativeNetworkConfig Add extra field in NativeNetworkConfig to allow CS to notify netd whether the local traffic should be excluded from the VPN network. Bug: 184750836 Test: atest FrameworksNetworkTests Change-Id: If230fe7057722c80a09433673ac3cec857f7a7a5 --- service/src/com/android/server/ConnectivityService.java | 4 ++-- .../unit/java/com/android/server/ConnectivityServiceTest.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index a59b5d6178..f0c404d31b 100644 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -4041,11 +4041,11 @@ public class ConnectivityService extends IConnectivityManager.Stub config = new NativeNetworkConfig(nai.network.getNetId(), NativeNetworkType.VIRTUAL, INetd.PERMISSION_NONE, (nai.networkAgentConfig == null || !nai.networkAgentConfig.allowBypass), - getVpnType(nai)); + getVpnType(nai), /*excludeLocalRoutes=*/ false); } else { config = new NativeNetworkConfig(nai.network.getNetId(), NativeNetworkType.PHYSICAL, getNetworkPermission(nai.networkCapabilities), /*secure=*/ false, - VpnManager.TYPE_VPN_NONE); + VpnManager.TYPE_VPN_NONE, /*excludeLocalRoutes=*/ false); } mNetd.networkCreate(config); mDnsResolver.createNetworkCache(nai.network.getNetId()); diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index c47604c0eb..8d9155282e 100644 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -3386,12 +3386,12 @@ public class ConnectivityServiceTest { private NativeNetworkConfig nativeNetworkConfigPhysical(int netId, int permission) { return new NativeNetworkConfig(netId, NativeNetworkType.PHYSICAL, permission, - /*secure=*/ false, VpnManager.TYPE_VPN_NONE); + /*secure=*/ false, VpnManager.TYPE_VPN_NONE, /*excludeLocalRoutes=*/ false); } private NativeNetworkConfig nativeNetworkConfigVpn(int netId, boolean secure, int vpnType) { return new NativeNetworkConfig(netId, NativeNetworkType.VIRTUAL, INetd.PERMISSION_NONE, - secure, vpnType); + secure, vpnType, /*excludeLocalRoutes=*/ false); } @Test