Test that the system doesn't accept non-/96 NAT64 prefixes.
Other system components (clatd, netd's DNS64 synthesis) don't
support non-/96 prefixes, so such prefixes must be ignored.
CTS already checks that LinkProperties#setNat64Prefix throws
IllegalArgumentException when passed an invalid prefix length.
Here we test that nothing happens (e.g., the network stack
doesn't crash) when that exception is thrown.
Bug: 153694684
Test: new unit tests
Change-Id: I8a57e171d472532b930c8d5c33e11a99024cf128
diff --git a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
index 4a3f445..e286439 100644
--- a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
+++ b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
@@ -1528,6 +1528,13 @@
expectAlarmCancelled(inOrder, pref64Alarm);
expectNat64PrefixUpdate(inOrder, null);
+ // Announce a non-/96 prefix and expect it to be ignored.
+ IpPrefix invalidPrefix = new IpPrefix("64:ff9b::/64");
+ pref64 = new StructNdOptPref64(invalidPrefix, 1200).toByteBuffer();
+ ra = buildRaPacket(pio, rdnss, pref64);
+ mPacketReader.sendResponse(ra);
+ expectNoNat64PrefixUpdate(inOrder, invalidPrefix);
+
// Re-announce the prefix.
pref64 = new StructNdOptPref64(prefix, 600).toByteBuffer();
ra = buildRaPacket(pio, rdnss, pref64);