summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Lorenzo Colitti <lorenzo@google.com> 2021-01-13 00:34:09 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-01-13 00:34:09 +0000
commitc27bf45cb62d6d51d9db613b3639fb1868e5186f (patch)
tree13ade63ecd0205113d86dcd60c06d4db2df1898c
parent55e40879e8be93f6eee36a8dca7d0551d25e88f0 (diff)
parentbbd9fb5c27045558af4368eae7edad2e83152307 (diff)
Merge changes I3eb82680,I9d6147d9 am: bbd9fb5c27
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1547644 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I8d65a0465729426fb038004cd80a15ca9e438b0e
-rw-r--r--core/java/android/net/IIpConnectivityMetrics.aidl8
-rw-r--r--core/java/android/net/metrics/IpConnectivityLog.java59
-rw-r--r--services/core/Android.bp4
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java41
-rw-r--r--services/core/java/com/android/server/connectivity/DefaultNetworkMetrics.java47
-rw-r--r--services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java21
-rw-r--r--services/java/com/android/server/SystemServer.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java13
-rw-r--r--tests/net/java/com/android/server/ConnectivityServiceTest.java3
-rw-r--r--tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java22
10 files changed, 170 insertions, 51 deletions
diff --git a/core/java/android/net/IIpConnectivityMetrics.aidl b/core/java/android/net/IIpConnectivityMetrics.aidl
index aeaf09d8fafe..aa3682d92105 100644
--- a/core/java/android/net/IIpConnectivityMetrics.aidl
+++ b/core/java/android/net/IIpConnectivityMetrics.aidl
@@ -19,6 +19,9 @@ package android.net;
import android.os.Parcelable;
import android.net.ConnectivityMetricsEvent;
import android.net.INetdEventCallback;
+import android.net.LinkProperties;
+import android.net.Network;
+import android.net.NetworkCapabilities;
/** {@hide} */
interface IIpConnectivityMetrics {
@@ -29,6 +32,11 @@ interface IIpConnectivityMetrics {
*/
int logEvent(in ConnectivityMetricsEvent event);
+ void logDefaultNetworkValidity(boolean valid);
+ void logDefaultNetworkEvent(in Network defaultNetwork, int score, boolean validated,
+ in LinkProperties lp, in NetworkCapabilities nc, in Network previousDefaultNetwork,
+ int previousScore, in LinkProperties previousLp, in NetworkCapabilities previousNc);
+
/**
* Callback can be registered by DevicePolicyManager or NetworkWatchlistService only.
* @return status {@code true} if registering/unregistering of the callback was successful,
diff --git a/core/java/android/net/metrics/IpConnectivityLog.java b/core/java/android/net/metrics/IpConnectivityLog.java
index a008d855025a..58ea91573775 100644
--- a/core/java/android/net/metrics/IpConnectivityLog.java
+++ b/core/java/android/net/metrics/IpConnectivityLog.java
@@ -17,10 +17,13 @@
package android.net.metrics;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.net.ConnectivityMetricsEvent;
import android.net.IIpConnectivityMetrics;
+import android.net.LinkProperties;
import android.net.Network;
+import android.net.NetworkCapabilities;
import android.os.Parcelable;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -66,6 +69,9 @@ public class IpConnectivityLog {
final IIpConnectivityMetrics service =
IIpConnectivityMetrics.Stub.asInterface(ServiceManager.getService(SERVICE_NAME));
if (service == null) {
+ if (DBG) {
+ Log.d(TAG, SERVICE_NAME + " service was not ready");
+ }
return false;
}
// Two threads racing here will write the same pointer because getService
@@ -83,9 +89,6 @@ public class IpConnectivityLog {
*/
public boolean log(@NonNull ConnectivityMetricsEvent ev) {
if (!checkLoggerService()) {
- if (DBG) {
- Log.d(TAG, SERVICE_NAME + " service was not ready");
- }
return false;
}
if (ev.timestamp == 0) {
@@ -161,6 +164,56 @@ public class IpConnectivityLog {
return log(makeEv(data));
}
+ /**
+ * Logs the validation status of the default network.
+ * @param valid whether the current default network was validated (i.e., whether it had
+ * {@link NetworkCapabilities.NET_CAPABILITY_VALIDATED}
+ * @return true if the event was successfully logged.
+ * @hide
+ */
+ public boolean logDefaultNetworkValidity(boolean valid) {
+ if (!checkLoggerService()) {
+ return false;
+ }
+ try {
+ mService.logDefaultNetworkValidity(valid);
+ } catch (RemoteException ignored) {
+ // Only called within the system server.
+ }
+ return true;
+ }
+
+ /**
+ * Logs a change in the default network.
+ *
+ * @param defaultNetwork the current default network
+ * @param score the current score of {@code defaultNetwork}
+ * @param lp the {@link LinkProperties} of {@code defaultNetwork}
+ * @param nc the {@link NetworkCapabilities} of the {@code defaultNetwork}
+ * @param validated whether {@code defaultNetwork} network is validated
+ * @param previousDefaultNetwork the previous default network
+ * @param previousScore the score of {@code previousDefaultNetwork}
+ * @param previousLp the {@link LinkProperties} of {@code previousDefaultNetwork}
+ * @param previousNc the {@link NetworkCapabilities} of {@code previousDefaultNetwork}
+ * @return true if the event was successfully logged.
+ * @hide
+ */
+ public boolean logDefaultNetworkEvent(@Nullable Network defaultNetwork, int score,
+ boolean validated, @Nullable LinkProperties lp, @Nullable NetworkCapabilities nc,
+ @Nullable Network previousDefaultNetwork, int previousScore,
+ @Nullable LinkProperties previousLp, @Nullable NetworkCapabilities previousNc) {
+ if (!checkLoggerService()) {
+ return false;
+ }
+ try {
+ mService.logDefaultNetworkEvent(defaultNetwork, score, validated, lp, nc,
+ previousDefaultNetwork, previousScore, previousLp, previousNc);
+ } catch (RemoteException ignored) {
+ // Only called within the system server.
+ }
+ return true;
+ }
+
private static ConnectivityMetricsEvent makeEv(Event data) {
ConnectivityMetricsEvent ev = new ConnectivityMetricsEvent();
ev.data = data;
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 01060ca94066..307d344bffa7 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -189,15 +189,11 @@ filegroup {
"java/com/android/server/connectivity/AutodestructReference.java",
"java/com/android/server/connectivity/ConnectivityConstants.java",
"java/com/android/server/connectivity/DataConnectionStats.java",
- "java/com/android/server/connectivity/DefaultNetworkMetrics.java",
"java/com/android/server/connectivity/DnsManager.java",
- "java/com/android/server/connectivity/IpConnectivityEventBuilder.java",
- "java/com/android/server/connectivity/IpConnectivityMetrics.java",
"java/com/android/server/connectivity/KeepaliveTracker.java",
"java/com/android/server/connectivity/LingerMonitor.java",
"java/com/android/server/connectivity/MockableSystemProperties.java",
"java/com/android/server/connectivity/Nat464Xlat.java",
- "java/com/android/server/connectivity/NetdEventListenerService.java",
"java/com/android/server/connectivity/NetworkAgentInfo.java",
"java/com/android/server/connectivity/NetworkDiagnostics.java",
"java/com/android/server/connectivity/NetworkNotificationManager.java",
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index f1f1c8ed0a4f..69f2457ed5de 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -89,7 +89,6 @@ import android.net.ICaptivePortal;
import android.net.IConnectivityDiagnosticsCallback;
import android.net.IConnectivityManager;
import android.net.IDnsResolver;
-import android.net.IIpConnectivityMetrics;
import android.net.INetd;
import android.net.INetworkManagementEventObserver;
import android.net.INetworkMonitor;
@@ -156,7 +155,6 @@ import android.os.PersistableBundle;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
-import android.os.ServiceManager;
import android.os.ServiceSpecificException;
import android.os.SystemClock;
import android.os.SystemProperties;
@@ -929,14 +927,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
"no IpConnectivityMetrics service");
}
- /**
- * @see IpConnectivityMetrics
- */
- public IIpConnectivityMetrics getIpConnectivityMetrics() {
- return IIpConnectivityMetrics.Stub.asInterface(
- ServiceManager.getService(IpConnectivityLog.SERVICE_NAME));
- }
-
public IBatteryStats getBatteryStatsService() {
return BatteryStatsService.getService();
}
@@ -3009,9 +2999,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
if (valid != nai.lastValidated) {
if (wasDefault) {
- mDeps.getMetricsLogger()
- .defaultNetworkMetrics().logDefaultNetworkValidity(
- SystemClock.elapsedRealtime(), valid);
+ mMetricsLog.logDefaultNetworkValidity(valid);
}
final int oldScore = nai.getCurrentScore();
nai.lastValidated = valid;
@@ -3439,7 +3427,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
// if there is a fallback. Taken together, the two form a X -> 0, 0 -> Y sequence
// whose timestamps tell how long it takes to recover a default network.
long now = SystemClock.elapsedRealtime();
- mDeps.getMetricsLogger().defaultNetworkMetrics().logDefaultNetworkEvent(now, null, nai);
+ mMetricsLog.logDefaultNetworkEvent(null, 0, false,
+ null /* lp */, null /* nc */, nai.network, nai.getCurrentScore(),
+ nai.linkProperties, nai.networkCapabilities);
}
notifyIfacesChangedForNetworkStats();
// TODO - we shouldn't send CALLBACK_LOST to requests that can be satisfied
@@ -7238,9 +7228,28 @@ public class ConnectivityService extends IConnectivityManager.Stub
updateDataActivityTracking(newDefaultNetwork, oldDefaultNetwork);
// Notify system services of the new default.
makeDefault(newDefaultNetwork);
+
// Log 0 -> X and Y -> X default network transitions, where X is the new default.
- mDeps.getMetricsLogger().defaultNetworkMetrics().logDefaultNetworkEvent(
- now, newDefaultNetwork, oldDefaultNetwork);
+ final Network network = (newDefaultNetwork != null) ? newDefaultNetwork.network : null;
+ final int score = (newDefaultNetwork != null) ? newDefaultNetwork.getCurrentScore() : 0;
+ final boolean validated = newDefaultNetwork != null && newDefaultNetwork.lastValidated;
+ final LinkProperties lp = (newDefaultNetwork != null)
+ ? newDefaultNetwork.linkProperties : null;
+ final NetworkCapabilities nc = (newDefaultNetwork != null)
+ ? newDefaultNetwork.networkCapabilities : null;
+
+ final Network prevNetwork = (oldDefaultNetwork != null)
+ ? oldDefaultNetwork.network : null;
+ final int prevScore = (oldDefaultNetwork != null)
+ ? oldDefaultNetwork.getCurrentScore() : 0;
+ final LinkProperties prevLp = (oldDefaultNetwork != null)
+ ? oldDefaultNetwork.linkProperties : null;
+ final NetworkCapabilities prevNc = (oldDefaultNetwork != null)
+ ? oldDefaultNetwork.networkCapabilities : null;
+
+ mMetricsLog.logDefaultNetworkEvent(network, score, validated, lp, nc,
+ prevNetwork, prevScore, prevLp, prevNc);
+
// Have a new default network, release the transition wakelock in
scheduleReleaseNetworkTransitionWakelock();
}
diff --git a/services/core/java/com/android/server/connectivity/DefaultNetworkMetrics.java b/services/core/java/com/android/server/connectivity/DefaultNetworkMetrics.java
index 995bb2422de2..8cd1fd6f2b64 100644
--- a/services/core/java/com/android/server/connectivity/DefaultNetworkMetrics.java
+++ b/services/core/java/com/android/server/connectivity/DefaultNetworkMetrics.java
@@ -17,6 +17,8 @@
package com.android.server.connectivity;
import android.net.LinkProperties;
+import android.net.Network;
+import android.net.NetworkCapabilities;
import android.net.metrics.DefaultNetworkEvent;
import android.os.SystemClock;
@@ -61,7 +63,7 @@ public class DefaultNetworkMetrics {
private int mLastTransports;
public DefaultNetworkMetrics() {
- newDefaultNetwork(creationTimeMs, null);
+ newDefaultNetwork(creationTimeMs, null, 0, false, null, null);
}
public synchronized void listEvents(PrintWriter pw) {
@@ -117,13 +119,21 @@ public class DefaultNetworkMetrics {
mCurrentDefaultNetwork.validatedMs += timeMs - mLastValidationTimeMs;
}
- public synchronized void logDefaultNetworkEvent(
- long timeMs, NetworkAgentInfo newNai, NetworkAgentInfo oldNai) {
- logCurrentDefaultNetwork(timeMs, oldNai);
- newDefaultNetwork(timeMs, newNai);
+ /**
+ * Logs a default network event.
+ * @see {IpConnectivityLog#logDefaultNetworkEvent}.
+ */
+ public synchronized void logDefaultNetworkEvent(long timeMs, Network defaultNetwork, int score,
+ boolean validated, LinkProperties lp, NetworkCapabilities nc,
+ Network previousDefaultNetwork, int previousScore, LinkProperties previousLp,
+ NetworkCapabilities previousNc) {
+ logCurrentDefaultNetwork(timeMs, previousDefaultNetwork, previousScore, previousLp,
+ previousNc);
+ newDefaultNetwork(timeMs, defaultNetwork, score, validated, lp, nc);
}
- private void logCurrentDefaultNetwork(long timeMs, NetworkAgentInfo oldNai) {
+ private void logCurrentDefaultNetwork(long timeMs, Network network, int score,
+ LinkProperties lp, NetworkCapabilities nc) {
if (mIsCurrentlyValid) {
updateValidationTime(timeMs);
}
@@ -131,10 +141,10 @@ public class DefaultNetworkMetrics {
ev.updateDuration(timeMs);
ev.previousTransports = mLastTransports;
// oldNai is null if the system had no default network before the transition.
- if (oldNai != null) {
+ if (network != null) {
// The system acquired a new default network.
- fillLinkInfo(ev, oldNai);
- ev.finalScore = oldNai.getCurrentScore();
+ fillLinkInfo(ev, network, lp, nc);
+ ev.finalScore = score;
}
// Only change transport of the previous default network if the event currently logged
// corresponds to an existing default network, and not to the absence of a default network.
@@ -147,14 +157,15 @@ public class DefaultNetworkMetrics {
mEventsLog.append(ev);
}
- private void newDefaultNetwork(long timeMs, NetworkAgentInfo newNai) {
+ private void newDefaultNetwork(long timeMs, Network network, int score, boolean validated,
+ LinkProperties lp, NetworkCapabilities nc) {
DefaultNetworkEvent ev = new DefaultNetworkEvent(timeMs);
ev.durationMs = timeMs;
// newNai is null if the system has no default network after the transition.
- if (newNai != null) {
- fillLinkInfo(ev, newNai);
- ev.initialScore = newNai.getCurrentScore();
- if (newNai.lastValidated) {
+ if (network != null) {
+ fillLinkInfo(ev, network, lp, nc);
+ ev.initialScore = score;
+ if (validated) {
mIsCurrentlyValid = true;
mLastValidationTimeMs = timeMs;
}
@@ -164,10 +175,10 @@ public class DefaultNetworkMetrics {
mCurrentDefaultNetwork = ev;
}
- private static void fillLinkInfo(DefaultNetworkEvent ev, NetworkAgentInfo nai) {
- LinkProperties lp = nai.linkProperties;
- ev.netId = nai.network().getNetId();
- ev.transports |= BitUtils.packBits(nai.networkCapabilities.getTransportTypes());
+ private static void fillLinkInfo(DefaultNetworkEvent ev, Network network, LinkProperties lp,
+ NetworkCapabilities nc) {
+ ev.netId = network.getNetId();
+ ev.transports |= BitUtils.packBits(nc.getTransportTypes());
ev.ipv4 |= lp.hasIpv4Address() && lp.hasIpv4DefaultRoute();
ev.ipv6 |= lp.hasGlobalIpv6Address() && lp.hasIpv6DefaultRoute();
}
diff --git a/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java b/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java
index b5d875d5c162..1024556c17eb 100644
--- a/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java
+++ b/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java
@@ -20,11 +20,15 @@ import android.content.Context;
import android.net.ConnectivityMetricsEvent;
import android.net.IIpConnectivityMetrics;
import android.net.INetdEventCallback;
+import android.net.LinkProperties;
+import android.net.Network;
+import android.net.NetworkCapabilities;
import android.net.NetworkStack;
import android.net.metrics.ApfProgramEvent;
import android.net.metrics.IpConnectivityLog;
import android.os.Binder;
import android.os.Process;
+import android.os.SystemClock;
import android.provider.Settings;
import android.text.TextUtils;
import android.text.format.DateUtils;
@@ -122,8 +126,6 @@ final public class IpConnectivityMetrics extends SystemService {
public IpConnectivityMetrics(Context ctx, ToIntFunction<Context> capacityGetter) {
super(ctx);
- // Load JNI libraries used by the IpConnectivityMetrics service and its dependencies
- System.loadLibrary("service-connectivity");
mCapacityGetter = capacityGetter;
initBuffer();
}
@@ -363,6 +365,21 @@ final public class IpConnectivityMetrics extends SystemService {
}
return mNetdListener.removeNetdEventCallback(callerType);
}
+
+ @Override
+ public void logDefaultNetworkValidity(boolean valid) {
+ mDefaultNetworkMetrics.logDefaultNetworkValidity(SystemClock.elapsedRealtime(), valid);
+ }
+
+ @Override
+ public void logDefaultNetworkEvent(Network defaultNetwork, int score, boolean validated,
+ LinkProperties lp, NetworkCapabilities nc, Network previousDefaultNetwork,
+ int previousScore, LinkProperties previousLp, NetworkCapabilities previousNc) {
+ final long timeMs = SystemClock.elapsedRealtime();
+ mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs, defaultNetwork, score, validated,
+ lp, nc, previousDefaultNetwork, previousScore, previousLp, previousNc);
+ }
+
};
private static final ToIntFunction<Context> READ_BUFFER_SIZE = (ctx) -> {
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index d533848c6f75..4cd1348a0f7a 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -1222,8 +1222,7 @@ public final class SystemServer {
}
t.traceBegin("IpConnectivityMetrics");
- mSystemServiceManager.startServiceFromJar(IP_CONNECTIVITY_METRICS_CLASS,
- CONNECTIVITY_SERVICE_APEX_PATH);
+ mSystemServiceManager.startService(IP_CONNECTIVITY_METRICS_CLASS);
t.traceEnd();
t.traceBegin("NetworkWatchlistService");
diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java
index 9c8a38219a9c..ac9316e7d908 100644
--- a/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java
+++ b/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java
@@ -24,6 +24,9 @@ import static org.junit.Assert.fail;
import android.net.ConnectivityMetricsEvent;
import android.net.IIpConnectivityMetrics;
import android.net.INetdEventCallback;
+import android.net.LinkProperties;
+import android.net.Network;
+import android.net.NetworkCapabilities;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -106,6 +109,16 @@ public class NetworkWatchlistServiceTests {
counter--;
return true;
}
+
+ // TODO: mark @Override when aosp/1541935 automerges to master.
+ public void logDefaultNetworkValidity(boolean valid) {
+ }
+
+ // TODO: mark @Override when aosp/1541935 automerges to master.
+ public void logDefaultNetworkEvent(Network defaultNetwork, int score, boolean validated,
+ LinkProperties lp, NetworkCapabilities nc, Network previousDefaultNetwork,
+ int previousScore, LinkProperties previousLp, NetworkCapabilities previousNc) {
+ }
};
ServiceThread mHandlerThread;
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index 1df78558c6a0..bfa9c77a55bc 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -161,7 +161,6 @@ import android.net.DataStallReportParcelable;
import android.net.EthernetManager;
import android.net.IConnectivityDiagnosticsCallback;
import android.net.IDnsResolver;
-import android.net.IIpConnectivityMetrics;
import android.net.INetd;
import android.net.INetworkMonitor;
import android.net.INetworkMonitorCallbacks;
@@ -359,7 +358,6 @@ public class ConnectivityServiceTest {
private HandlerThread mAlarmManagerThread;
private TestNetIdManager mNetIdManager;
- @Mock IIpConnectivityMetrics mIpConnectivityMetrics;
@Mock IpConnectivityMetrics.Logger mMetricsService;
@Mock DefaultNetworkMetrics mDefaultNetworkMetrics;
@Mock DeviceIdleInternal mDeviceIdleInternal;
@@ -1373,7 +1371,6 @@ public class ConnectivityServiceTest {
doReturn(mock(ProxyTracker.class)).when(deps).makeProxyTracker(any(), any());
doReturn(mMetricsService).when(deps).getMetricsLogger();
doReturn(true).when(deps).queryUserAccess(anyInt(), anyInt());
- doReturn(mIpConnectivityMetrics).when(deps).getIpConnectivityMetrics();
doReturn(mBatteryStatsService).when(deps).getBatteryStatsService();
doAnswer(inv -> {
mPolicyTracker = new WrappedMultinetworkPolicyTracker(
diff --git a/tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java b/tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java
index 3a071667a542..8c5d1d6d05e5 100644
--- a/tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java
+++ b/tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java
@@ -124,6 +124,22 @@ public class IpConnectivityMetricsTest {
assertEquals("", output2);
}
+ private void logDefaultNetworkEvent(long timeMs, NetworkAgentInfo nai,
+ NetworkAgentInfo oldNai) {
+ final Network network = (nai != null) ? nai.network() : null;
+ final int score = (nai != null) ? nai.getCurrentScore() : 0;
+ final boolean validated = (nai != null) ? nai.lastValidated : false;
+ final LinkProperties lp = (nai != null) ? nai.linkProperties : null;
+ final NetworkCapabilities nc = (nai != null) ? nai.networkCapabilities : null;
+
+ final Network prevNetwork = (oldNai != null) ? oldNai.network() : null;
+ final int prevScore = (oldNai != null) ? oldNai.getCurrentScore() : 0;
+ final LinkProperties prevLp = (oldNai != null) ? oldNai.linkProperties : null;
+ final NetworkCapabilities prevNc = (oldNai != null) ? oldNai.networkCapabilities : null;
+
+ mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs, network, score, validated,
+ lp, nc, prevNetwork, prevScore, prevLp, prevNc);
+ }
@Test
public void testDefaultNetworkEvents() throws Exception {
final long cell = BitUtils.packBits(new int[]{NetworkCapabilities.TRANSPORT_CELLULAR});
@@ -147,7 +163,7 @@ public class IpConnectivityMetricsTest {
for (NetworkAgentInfo[] pair : defaultNetworks) {
timeMs += durationMs;
durationMs += durationMs;
- mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs, pair[1], pair[0]);
+ logDefaultNetworkEvent(timeMs, pair[1], pair[0]);
}
String want = String.join("\n",
@@ -331,8 +347,8 @@ public class IpConnectivityMetricsTest {
final long wifi = BitUtils.packBits(new int[]{NetworkCapabilities.TRANSPORT_WIFI});
NetworkAgentInfo cellNai = makeNai(100, 50, false, true, cell);
NetworkAgentInfo wifiNai = makeNai(101, 60, true, false, wifi);
- mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs + 200, cellNai, null);
- mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs + 300, wifiNai, cellNai);
+ logDefaultNetworkEvent(timeMs + 200L, cellNai, null);
+ logDefaultNetworkEvent(timeMs + 300L, wifiNai, cellNai);
String want = String.join("\n",
"dropped_events: 0",