summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCody Kesting <ckesting@google.com>2020-01-20 18:09:59 -0800
committerCody Kesting <ckesting@google.com>2020-02-05 11:49:59 -0800
commit176bce77536e68b5314aa11cb988ef725b7b8b81 (patch)
treeec5297dfcfe11cde68717d422c30073290d1c57d /src
parent782cbfa3fb32bbfe42288c3767ee262c187b04d2 (diff)
Include Bundle values with ConnectivityDiagnostics calls.
ConnectivityDiagnostics allows PersistableBundles to be passed from NetworkMonitor to ConnectivityDiagnosticsCallbacks that are registered with the System in ConnectivityService. This change populates the bundles passed from NetworkMonitor with values relating to ConnectivityDiagnosticsManager#ConnectivityReport and ConnectivityDiagnosticsManager#DataStallReport using keys defined in those classes. The keys used for the bundles are defined in ConstantsShim. Bug: 147249364 Test: compiles Test: atest NetworkStackTests Change-Id: Id007ab38a20c6a107c9528e3e861dafa191797c3 Merged-In: Id007ab38a20c6a107c9528e3e861dafa191797c3
Diffstat (limited to 'src')
-rw-r--r--src/com/android/server/connectivity/NetworkMonitor.java35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/com/android/server/connectivity/NetworkMonitor.java b/src/com/android/server/connectivity/NetworkMonitor.java
index 3a3f95c..6fc146d 100644
--- a/src/com/android/server/connectivity/NetworkMonitor.java
+++ b/src/com/android/server/connectivity/NetworkMonitor.java
@@ -70,6 +70,12 @@ import static android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY;
import static com.android.networkstack.apishim.ConstantsShim.DETECTION_METHOD_DNS_EVENTS;
import static com.android.networkstack.apishim.ConstantsShim.DETECTION_METHOD_TCP_METRICS;
+import static com.android.networkstack.apishim.ConstantsShim.KEY_DNS_CONSECUTIVE_TIMEOUTS;
+import static com.android.networkstack.apishim.ConstantsShim.KEY_NETWORK_PROBES_ATTEMPTED_BITMASK;
+import static com.android.networkstack.apishim.ConstantsShim.KEY_NETWORK_PROBES_SUCCEEDED_BITMASK;
+import static com.android.networkstack.apishim.ConstantsShim.KEY_NETWORK_VALIDATION_RESULT;
+import static com.android.networkstack.apishim.ConstantsShim.KEY_TCP_METRICS_COLLECTION_PERIOD_MILLIS;
+import static com.android.networkstack.apishim.ConstantsShim.KEY_TCP_PACKET_FAIL_RATE;
import static com.android.networkstack.util.DnsUtils.PRIVATE_DNS_PROBE_HOST_SUFFIX;
import static com.android.networkstack.util.DnsUtils.TYPE_ADDRCONFIG;
@@ -584,9 +590,15 @@ public class NetworkMonitor extends StateMachine {
return NetworkMonitorUtils.isPrivateDnsValidationRequired(mNetworkCapabilities);
}
- private void notifyNetworkTested(int result, @Nullable String redirectUrl) {
+ private void notifyNetworkTested(
+ int result, @Nullable String redirectUrl, PersistableBundle extras) {
try {
- mCallback.notifyNetworkTested(result, redirectUrl);
+ if (mCallbackVersion <= 5) {
+ mCallback.notifyNetworkTested(result, redirectUrl);
+ } else {
+ mCallback.notifyNetworkTestedWithExtras(
+ result, redirectUrl, SystemClock.elapsedRealtime(), extras);
+ }
} catch (RemoteException e) {
Log.e(TAG, "Error sending network test result", e);
}
@@ -2288,8 +2300,10 @@ public class NetworkMonitor extends StateMachine {
} else if (tst.isDataStallSuspected()) {
result = true;
- // TODO(b/147249364): add metrics to PersistableBundle once keys are defined
- notifyDataStallSuspected(DETECTION_METHOD_TCP_METRICS, PersistableBundle.EMPTY);
+ final PersistableBundle extras = new PersistableBundle();
+ extras.putInt(KEY_TCP_PACKET_FAIL_RATE, tst.getLatestPacketFailPercentage());
+ extras.putInt(KEY_TCP_METRICS_COLLECTION_PERIOD_MILLIS, getTcpPollingInterval());
+ notifyDataStallSuspected(DETECTION_METHOD_TCP_METRICS, extras);
}
if (DBG || VDBG_STALL) {
msg.add("tcp packets received=" + tst.getLatestReceivedCount())
@@ -2308,8 +2322,10 @@ public class NetworkMonitor extends StateMachine {
result = true;
logNetworkEvent(NetworkEvent.NETWORK_CONSECUTIVE_DNS_TIMEOUT_FOUND);
- // TODO(b/147249364): add metrics to PersistableBundle once keys are defined
- notifyDataStallSuspected(DETECTION_METHOD_DNS_EVENTS, PersistableBundle.EMPTY);
+ final PersistableBundle extras = new PersistableBundle();
+ extras.putInt(KEY_DNS_CONSECUTIVE_TIMEOUTS,
+ mDnsStallDetector.getConsecutiveTimeoutCount());
+ notifyDataStallSuspected(DETECTION_METHOD_DNS_EVENTS, extras);
}
if (DBG || VDBG_STALL) {
msg.add("consecutive dns timeout count=" + dsd.getConsecutiveTimeoutCount());
@@ -2387,7 +2403,12 @@ public class NetworkMonitor extends StateMachine {
protected void reportEvaluationResult(int result, @Nullable String redirectUrl) {
mEvaluationResult = result;
mRedirectUrl = redirectUrl;
- notifyNetworkTested(getNetworkTestResult(), mRedirectUrl);
+ final PersistableBundle extras = new PersistableBundle();
+
+ extras.putInt(KEY_NETWORK_VALIDATION_RESULT, result);
+ extras.putInt(KEY_NETWORK_PROBES_SUCCEEDED_BITMASK, mProbeResults);
+ extras.putInt(KEY_NETWORK_PROBES_ATTEMPTED_BITMASK, mProbeCompleted);
+ notifyNetworkTested(getNetworkTestResult(), mRedirectUrl, extras);
}
protected int getNetworkTestResult() {