aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2015-10-14 17:37:05 +0900
committerLorenzo Colitti <lorenzo@google.com>2015-10-15 10:25:37 +0900
commit857d22c55e7f20e2a61b3a9248f27ed013e26743 (patch)
treee3fbc28c5663a99c019cc2e402efe72ba51b1816
parent727f7d78caf0d69a048cea435261475c61fdb756 (diff)
downloadsource.android.com-857d22c55e7f20e2a61b3a9248f27ed013e26743.tar.gz
Add requirements for IPv6 implementation.
This is intended to: 1. Formalize the requirements that we've been testing in CTS for many years now. 2. Prevent some observed bad device behaviours that can severely impact user experience on IPv6-capable networks, which are now quite common. 3. Clarify the treatment of IPv6 in doze mode, which is non-obvious enough that even we only fixed it close to final M release. Bug: 24919272 Change-Id: Ia739b242529e831c63e53e55e490df243e831c80
-rw-r--r--src/compatibility/android-cdd.html33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index 417e4f38..e9a3eda4 100644
--- a/src/compatibility/android-cdd.html
+++ b/src/compatibility/android-cdd.html
@@ -4096,6 +4096,35 @@ common wireless data standard, such as 802.11 (Wi-Fi).</p>
<p>Devices MAY implement more than one form of data connectivity.</p>
+<p>Devices MUST include an IPv6 networking stack and support IPv6 communication
+using the managed APIs, such as <code>java.net.Socket</code> and
+<code>java.net.URLConnection</code>, as well as the native APIs, such as
+<code>AF_INET6</code> sockets. The required level of IPv6 support depends on
+the network type, as follows:</p>
+<ul>
+ <li>Devices that support Wi-Fi networks MUST support dual-stack and IPv6-only
+ operation on Wi-Fi.</li>
+ <li>Devices that support Ethernet networks MUST support dual-stack operation
+ on Ethernet.</li>
+ <li>Devices that support cellular data SHOULD support IPv6 operation
+ (IPv6-only and possibly dual-stack) on cellular data.</li>
+ <li>When a device is simultaneously connected to more than one network (e.g.,
+ Wi-Fi and cellular data), it MUST simultaneously meet these requirements on
+ each network to which it is connected.</li>
+</ul>
+
+<p>IPv6 MUST be enabled by default.</p>
+
+<p>In order to ensure that IPv6 communication is as reliable as IPv4, unicast
+IPv6 packets sent to the device MUST NOT be dropped, even when the screen is
+not in an active state. Redundant multicast IPv6 packets, such as repeated
+identical Router Advertisements, MAY be rate-limited in hardware or firmware
+if doing so is necessary to save power. In such cases, rate-limiting MUST NOT
+cause the device to lose IPv6 connectivity on any IPv6-compliant network that
+uses RA lifetimes of at least 180 seconds.</p>
+
+<p>IPv6 connectivity MUST be maintained in doze mode.</p>
+
<h3 id="7_4_6_sync_settings">7.4.6. Sync Settings</h3>
@@ -5240,6 +5269,10 @@ switching</td>
<td>Additions to requirements for Near-Field Communications (NFC)</td>
</tr>
<tr>
+ <td>7.4.5. Minimum Network Capability</td>
+ <td>Added requirements for IPv6 support</td>
+ </tr>
+ <tr>
<td>7.6.3. Adoptable Storage</td>
<td>New section for implementation of adoptable storage</td>
</tr>