diff options
author | Cody Kesting <ckesting@google.com> | 2020-01-20 18:09:59 -0800 |
---|---|---|
committer | Cody Kesting <ckesting@google.com> | 2020-02-05 11:49:59 -0800 |
commit | 176bce77536e68b5314aa11cb988ef725b7b8b81 (patch) | |
tree | ec5297dfcfe11cde68717d422c30073290d1c57d /src | |
parent | 782cbfa3fb32bbfe42288c3767ee262c187b04d2 (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.java | 35 |
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() { |