Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f397b394 authored by Chiachang Wang's avatar Chiachang Wang Committed by Gerrit Code Review
Browse files

Merge "Update description based on API feedback"

parents 8bf13f06 4349dc08
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4655,6 +4655,7 @@ package android.provider {
    field public static final String CARRIER_APP_WHITELIST = "carrier_app_whitelist";
    field public static final String DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD = "data_stall_consecutive_dns_timeout_threshold";
    field public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type";
    field public static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; // 0x1
    field public static final String DATA_STALL_MIN_EVALUATE_INTERVAL = "data_stall_min_evaluate_interval";
    field public static final String DATA_STALL_VALID_DNS_TIME_THRESHOLD = "data_stall_valid_dns_time_threshold";
    field public static final String DEFAULT_SM_DP_PLUS = "default_sm_dp_plus";
+1 −0
Original line number Diff line number Diff line
@@ -1227,6 +1227,7 @@ package android.provider {
    field public static final String CAPTIVE_PORTAL_USE_HTTPS = "captive_portal_use_https";
    field public static final String DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD = "data_stall_consecutive_dns_timeout_threshold";
    field public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type";
    field public static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; // 0x1
    field public static final String DATA_STALL_MIN_EVALUATE_INTERVAL = "data_stall_min_evaluate_interval";
    field public static final String DATA_STALL_VALID_DNS_TIME_THRESHOLD = "data_stall_valid_dns_time_threshold";
    field public static final String HIDDEN_API_BLACKLIST_EXEMPTIONS = "hidden_api_blacklist_exemptions";
+17 −4
Original line number Diff line number Diff line
@@ -10475,8 +10475,9 @@ public final class Settings {
        /**
         * The threshold value for the number of consecutive dns timeout events received to be a
         * signal of data stall. Set the value to 0 or less than 0 to disable. Note that the value
         * should be larger than 0 if the DNS data stall detection is enabled.
         * signal of data stall. The number of consecutive timeouts needs to be {@code >=} this
         * threshold to be considered a data stall. Set the value to {@code <= 0} to disable. Note
         * that the value should be {@code > 0} if the DNS data stall detection is enabled.
         *
         * @hide
         */
@@ -10507,15 +10508,27 @@ public final class Settings {
                "data_stall_valid_dns_time_threshold";
        /**
         * Which data stall detection signal to use. Possible values are a union of the powers of 2
         * of DATA_STALL_EVALUATION_TYPE_*.
         * Which data stall detection signal to use. This is a bitmask constructed by bitwise-or-ing
         * (i.e. {@code |}) the DATA_STALL_EVALUATION_TYPE_* values.
         *
         * Type: int
         * Valid values:
         *   {@link #DATA_STALL_EVALUATION_TYPE_DNS} : Use dns as a signal.
         * @hide
         */
        @SystemApi
        @TestApi
        public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type";
        /**
         * Use dns timeout counts to detect data stall.
         *
         * @hide
         */
        @SystemApi
        @TestApi
        public static final int DATA_STALL_EVALUATION_TYPE_DNS = 1;
        /**
         * Whether to try cellular data recovery when a bad network is reported.
         *
+4 −4
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import static android.net.metrics.ValidationProbeEvent.DNS_SUCCESS;
import static android.net.metrics.ValidationProbeEvent.PROBE_FALLBACK;
import static android.net.metrics.ValidationProbeEvent.PROBE_PRIVDNS;
import static android.net.util.NetworkStackUtils.isEmpty;
import static android.provider.Settings.Global.DATA_STALL_EVALUATION_TYPE_DNS;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -128,9 +129,8 @@ public class NetworkMonitor extends StateMachine {
    private static final int DEFAULT_DATA_STALL_MIN_EVALUATE_TIME_MS = 60 * 1000;
    private static final int DEFAULT_DATA_STALL_VALID_DNS_TIME_THRESHOLD_MS = 30 * 60 * 1000;

    private static final int DATA_STALL_EVALUATION_TYPE_DNS = 1;
    private static final int DEFAULT_DATA_STALL_EVALUATION_TYPES =
            (1 << DATA_STALL_EVALUATION_TYPE_DNS);
            DATA_STALL_EVALUATION_TYPE_DNS;
    // Reevaluate it as intending to increase the number. Larger log size may cause statsd
    // log buffer bust and have stats log lost.
    private static final int DEFAULT_DNS_LOG_SIZE = 20;
@@ -1772,7 +1772,7 @@ public class NetworkMonitor extends StateMachine {
    }

    private boolean dataStallEvaluateTypeEnabled(int type) {
        return (mDataStallEvaluationType & (1 << type)) != 0;
        return (mDataStallEvaluationType & type) != 0;
    }

    @VisibleForTesting
@@ -1792,7 +1792,7 @@ public class NetworkMonitor extends StateMachine {
        }

        // Check dns signal. Suspect it may be a data stall if both :
        // 1. The number of consecutive DNS query timeouts > mConsecutiveDnsTimeoutThreshold.
        // 1. The number of consecutive DNS query timeouts >= mConsecutiveDnsTimeoutThreshold.
        // 2. Those consecutive DNS queries happened in the last mValidDataStallDnsTimeThreshold ms.
        if (dataStallEvaluateTypeEnabled(DATA_STALL_EVALUATION_TYPE_DNS)) {
            if (mDnsStallDetector.isDataStallSuspected(mConsecutiveDnsTimeoutThreshold,
+2 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.net.CaptivePortal.APP_RETURN_DISMISSED;
import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_INVALID;
import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_VALID;
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.provider.Settings.Global.DATA_STALL_EVALUATION_TYPE_DNS;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
@@ -114,7 +115,6 @@ public class NetworkMonitorTest {
    private static final String TEST_OTHER_FALLBACK_URL = "http://otherfallback.google.com/gen_204";
    private static final String TEST_MCCMNC = "123456";

    private static final int DATA_STALL_EVALUATION_TYPE_DNS = 1;
    private static final int RETURN_CODE_DNS_SUCCESS = 0;
    private static final int RETURN_CODE_DNS_TIMEOUT = 255;
    private static final int DEFAULT_DNS_TIMEOUT_THRESHOLD = 5;
@@ -186,7 +186,7 @@ public class NetworkMonitorTest {
        when(mCm.getNetworkCapabilities(any())).thenReturn(METERED_CAPABILITIES);

        setMinDataStallEvaluateInterval(500);
        setDataStallEvaluationType(1 << DATA_STALL_EVALUATION_TYPE_DNS);
        setDataStallEvaluationType(DATA_STALL_EVALUATION_TYPE_DNS);
        setValidDataStallDnsTimeThreshold(500);
        setConsecutiveDnsTimeoutThreshold(5);
    }