Support multiple addresses in PacketBridge

Test: atest NetworkStackIntegrationTests:android.net.NetworkStatsIntegrationTest
Bug: N/A
Change-Id: Icaef559d54f8d7ce06fb9bf231330235ee01ab8f
diff --git a/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt b/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt
index 0d0cc06..1a2cc88 100644
--- a/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt
+++ b/staticlibs/testutils/devicetests/com/android/testutils/PacketBridge.kt
@@ -37,10 +37,9 @@
  *
  * See {@link PacketForwarder} for more detailed information.
  */
-// TODO: Support multiple addresses.
 class PacketBridge(
     context: Context,
-    address: LinkAddress,
+    addresses: List<LinkAddress>,
     dnsAddr: InetAddress
 ) {
     private val binder = Binder()
@@ -50,9 +49,9 @@
 
     // Create test networks. The needed permissions should be supplied by the callers.
     @SuppressLint("MissingPermission")
-    private val internalIface = tnm.createTunInterface(listOf(address))
+    private val internalIface = tnm.createTunInterface(addresses)
     @SuppressLint("MissingPermission")
-    private val externalIface = tnm.createTunInterface(listOf(address))
+    private val externalIface = tnm.createTunInterface(addresses)
 
     // Register test networks to ConnectivityService.
     private val internalNetworkCallback: TestableNetworkCallback
@@ -60,8 +59,8 @@
     val internalNetwork: Network
     val externalNetwork: Network
     init {
-        val (inCb, inNet) = createTestNetwork(internalIface, address, dnsAddr)
-        val (exCb, exNet) = createTestNetwork(externalIface, address, dnsAddr)
+        val (inCb, inNet) = createTestNetwork(internalIface, addresses, dnsAddr)
+        val (exCb, exNet) = createTestNetwork(externalIface, addresses, dnsAddr)
         internalNetworkCallback = inCb
         externalNetworkCallback = exCb
         internalNetwork = inNet
@@ -94,7 +93,7 @@
      */
     private fun createTestNetwork(
         testIface: TestNetworkInterface,
-        addr: LinkAddress,
+        addresses: List<LinkAddress>,
         dnsAddr: InetAddress
     ): Pair<TestableNetworkCallback, Network> {
         // Make a network request to hold the test network
@@ -107,7 +106,7 @@
         cm.requestNetwork(nr, testCb)
 
         val lp = LinkProperties().apply {
-            addLinkAddress(addr)
+            setLinkAddresses(addresses)
             interfaceName = testIface.interfaceName
             addDnsServer(dnsAddr)
         }