summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Ma <xiaom@google.com>2020-05-28 02:41:09 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-05-28 02:41:09 +0000
commit251bbe024d8ba8991a93b116301ce8c0c1cacb41 (patch)
tree2972758a3f416fa2195fee11a174b4edb11e51b8
parent797bcc347e490e7831b5af4430de2044497207ae (diff)
parent7b486419f47f2af216c0fcefe84700ad59fab706 (diff)
Merge "Enable DHCP INIT-REBOOT state on R." into rvc-dev am: 7b486419f4
Change-Id: Ica0430391fb73bd3045b2a780568c50f53be9a3a
-rw-r--r--src/android/net/dhcp/DhcpClient.java23
-rwxr-xr-xsrc/android/net/util/NetworkStackUtils.java4
-rw-r--r--tests/integration/src/android/net/ip/IpClientIntegrationTest.java6
3 files changed, 23 insertions, 10 deletions
diff --git a/src/android/net/dhcp/DhcpClient.java b/src/android/net/dhcp/DhcpClient.java
index 6d48c0c..011cbaf 100644
--- a/src/android/net/dhcp/DhcpClient.java
+++ b/src/android/net/dhcp/DhcpClient.java
@@ -74,6 +74,7 @@ import android.net.util.InterfaceParams;
import android.net.util.NetworkStackUtils;
import android.net.util.PacketReader;
import android.net.util.SocketUtils;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
@@ -98,6 +99,7 @@ import com.android.internal.util.WakeupMessage;
import com.android.networkstack.R;
import com.android.networkstack.apishim.CaptivePortalDataShimImpl;
import com.android.networkstack.apishim.SocketUtilsShimImpl;
+import com.android.networkstack.apishim.common.ShimUtils;
import com.android.networkstack.arp.ArpPacket;
import java.io.FileDescriptor;
@@ -407,8 +409,10 @@ public class DhcpClient extends StateMachine {
* Return whether a feature guarded by a feature flag is enabled.
* @see NetworkStackUtils#isFeatureEnabled(Context, String, String)
*/
- public boolean isFeatureEnabled(final Context context, final String name) {
- return NetworkStackUtils.isFeatureEnabled(context, NAMESPACE_CONNECTIVITY, name);
+ public boolean isFeatureEnabled(final Context context, final String name,
+ boolean defaultEnabled) {
+ return NetworkStackUtils.isFeatureEnabled(context, NAMESPACE_CONNECTIVITY, name,
+ defaultEnabled);
}
/**
@@ -496,23 +500,32 @@ public class DhcpClient extends StateMachine {
/**
* check whether or not to support caching the last lease info and INIT-REBOOT state.
+ *
+ * INIT-REBOOT state is supported on Android R by default if there is no experiment flag set to
+ * disable this feature explicitly, meanwhile we still hope to be able to control this feature
+ * on/off by pushing experiment flag for A/B testing and metrics collection on both of Android
+ * Q and R version, however it's disbled on Android Q by default.
*/
public boolean isDhcpLeaseCacheEnabled() {
- return mDependencies.isFeatureEnabled(mContext, DHCP_INIT_REBOOT_VERSION);
+ final boolean defaultEnabled =
+ ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q);
+ return mDependencies.isFeatureEnabled(mContext, DHCP_INIT_REBOOT_VERSION, defaultEnabled);
}
/**
* check whether or not to support DHCP Rapid Commit option.
*/
public boolean isDhcpRapidCommitEnabled() {
- return mDependencies.isFeatureEnabled(mContext, DHCP_RAPID_COMMIT_VERSION);
+ return mDependencies.isFeatureEnabled(mContext, DHCP_RAPID_COMMIT_VERSION,
+ false /* defaultEnabled */);
}
/**
* check whether or not to support IP address conflict detection and DHCPDECLINE.
*/
public boolean isDhcpIpConflictDetectEnabled() {
- return mDependencies.isFeatureEnabled(mContext, DHCP_IP_CONFLICT_DETECT_VERSION);
+ return mDependencies.isFeatureEnabled(mContext, DHCP_IP_CONFLICT_DETECT_VERSION,
+ false /* defaultEnabled */);
}
private void confirmDhcpLease(DhcpPacket packet, DhcpResults results) {
diff --git a/src/android/net/util/NetworkStackUtils.java b/src/android/net/util/NetworkStackUtils.java
index 3f63266..99563ee 100755
--- a/src/android/net/util/NetworkStackUtils.java
+++ b/src/android/net/util/NetworkStackUtils.java
@@ -355,9 +355,7 @@ public class NetworkStackUtils {
*/
public static boolean isFeatureEnabled(@NonNull Context context, @NonNull String namespace,
@NonNull String name) {
- final int propertyVersion = getDeviceConfigPropertyInt(namespace, name,
- 0 /* default value */);
- return isFeatureEnabled(context, namespace, name, false);
+ return isFeatureEnabled(context, namespace, name, false /* defaultEnabled */);
}
/**
diff --git a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
index b4efcf9..6a98696 100644
--- a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
+++ b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
@@ -141,6 +141,7 @@ import com.android.server.NetworkObserverRegistry;
import com.android.server.NetworkStackService.NetworkStackServiceManager;
import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService;
import com.android.testutils.DevSdkIgnoreRule;
+import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter;
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
import com.android.testutils.HandlerUtilsKt;
import com.android.testutils.TapPacketReader;
@@ -319,7 +320,8 @@ public class IpClientIntegrationTest {
NetworkStackIpMemoryStore ipMemoryStore) {
return new DhcpClient.Dependencies(ipMemoryStore) {
@Override
- public boolean isFeatureEnabled(final Context context, final String name) {
+ public boolean isFeatureEnabled(final Context context, final String name,
+ final boolean defaultEnabled) {
switch (name) {
case NetworkStackUtils.DHCP_RAPID_COMMIT_VERSION:
return mIsDhcpRapidCommitEnabled;
@@ -1066,7 +1068,7 @@ public class IpClientIntegrationTest {
assertIpMemoryStoreNetworkAttributes(null, currentTime, TEST_DEFAULT_MTU);
}
- @Test
+ @Test @IgnoreAfter(Build.VERSION_CODES.Q) // INIT-REBOOT is enabled on R.
public void testHandleDisableInitRebootState() throws Exception {
performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S,
false /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */,