Merge "Create v4 mapped v6 correctly" into main

This commit is contained in:
Chiachang Wang
2023-07-20 05:06:18 +00:00
committed by Gerrit Code Review

View File

@@ -28,6 +28,7 @@ import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
import com.android.testutils.assertEqualBothWays
import com.android.testutils.assertParcelingIsLossless
import com.android.testutils.parcelingRoundTrip
import java.net.Inet6Address
import java.net.InetAddress
import kotlin.test.assertFailsWith
import org.junit.Assert.assertEquals
@@ -44,10 +45,33 @@ class NattKeepalivePacketDataTest {
private val TEST_PORT = 4243
private val TEST_PORT2 = 4244
// ::FFFF:1.2.3.4
private val SRC_V4_MAPPED_V6_ADDRESS_BYTES = byteArrayOf(
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0x00.toByte(),
0xff.toByte(),
0xff.toByte(),
0x01.toByte(),
0x02.toByte(),
0x03.toByte(),
0x04.toByte()
)
private val TEST_SRC_ADDRV4 = "198.168.0.2".address()
private val TEST_DST_ADDRV4 = "198.168.0.1".address()
private val TEST_ADDRV6 = "2001:db8::1".address()
private val TEST_ADDRV4MAPPEDV6 = "::ffff:1.2.3.4".address()
// This constant requires to be an Inet6Address, but InetAddresses.parseNumericAddress() will
// convert v4 mapped v6 address into an Inet4Address. So use Inet6Address.getByAddress() to
// create the address.
private val TEST_ADDRV4MAPPEDV6 = Inet6Address.getByAddress(null /* host */,
SRC_V4_MAPPED_V6_ADDRESS_BYTES, -1 /* scope_id */)
private val TEST_ADDRV4 = "1.2.3.4".address()
private fun String.address() = InetAddresses.parseNumericAddress(this)