From 8af41fac2f47b7f87324370cb718d96abc22c3bc Mon Sep 17 00:00:00 2001 From: Patrick Rohr Date: Thu, 30 Jun 2022 14:47:51 -0700 Subject: [PATCH] TestNetworkManager: add support for configuring tap link addresses Without an IpClient, there is otherwise no way to configure IPv4 addresses on a tap interface in tests. Test: TH Change-Id: I6a788687708b2034c464befdfec9267ce3399d70 --- .../src/android/net/TestNetworkManager.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/framework/src/android/net/TestNetworkManager.java b/framework/src/android/net/TestNetworkManager.java index 9cae9e637a..788834ac87 100644 --- a/framework/src/android/net/TestNetworkManager.java +++ b/framework/src/android/net/TestNetworkManager.java @@ -192,6 +192,24 @@ public class TestNetworkManager { } } + /** + * Create a tap interface for testing purposes + * + * @param linkAddrs an array of LinkAddresses to assign to the TAP interface + * @return A TestNetworkInterface representing the underlying TAP interface. Close the contained + * ParcelFileDescriptor to tear down the TAP interface. + * @hide + */ + @RequiresPermission(Manifest.permission.MANAGE_TEST_NETWORKS) + @NonNull + public TestNetworkInterface createTapInterface(@NonNull LinkAddress[] linkAddrs) { + try { + return mService.createInterface(TAP, CARRIER_UP, BRING_UP, linkAddrs, null /* iface */); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** * Create a tap interface for testing purposes *