Add NetworkStack metrics to system API
Test: atest FrameworksNetTests NetworkStackTests Bug: 112869080 Change-Id: Ie52c55f248c173e2a5ee603ecd004fbac9004ac1
This commit is contained in:
@@ -18,14 +18,15 @@ package com.android.server.connectivity;
|
|||||||
|
|
||||||
import static android.net.metrics.INetdEventListener.EVENT_GETADDRINFO;
|
import static android.net.metrics.INetdEventListener.EVENT_GETADDRINFO;
|
||||||
import static android.net.metrics.INetdEventListener.EVENT_GETHOSTBYNAME;
|
import static android.net.metrics.INetdEventListener.EVENT_GETHOSTBYNAME;
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.timeout;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.timeout;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
@@ -34,12 +35,11 @@ import android.net.IIpConnectivityMetrics;
|
|||||||
import android.net.IpPrefix;
|
import android.net.IpPrefix;
|
||||||
import android.net.LinkAddress;
|
import android.net.LinkAddress;
|
||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
import android.net.RouteInfo;
|
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.RouteInfo;
|
||||||
import android.net.metrics.ApfProgramEvent;
|
import android.net.metrics.ApfProgramEvent;
|
||||||
import android.net.metrics.ApfStats;
|
import android.net.metrics.ApfStats;
|
||||||
import android.net.metrics.DefaultNetworkEvent;
|
|
||||||
import android.net.metrics.DhcpClientEvent;
|
import android.net.metrics.DhcpClientEvent;
|
||||||
import android.net.metrics.IpConnectivityLog;
|
import android.net.metrics.IpConnectivityLog;
|
||||||
import android.net.metrics.IpManagerEvent;
|
import android.net.metrics.IpManagerEvent;
|
||||||
@@ -55,6 +55,13 @@ import android.util.Base64;
|
|||||||
import com.android.internal.util.BitUtils;
|
import com.android.internal.util.BitUtils;
|
||||||
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass;
|
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -62,13 +69,6 @@ import java.util.Comparator;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.mockito.ArgumentCaptor;
|
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.MockitoAnnotations;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public class IpConnectivityMetricsTest {
|
public class IpConnectivityMetricsTest {
|
||||||
@@ -154,7 +154,7 @@ public class IpConnectivityMetricsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testRateLimiting() {
|
public void testRateLimiting() {
|
||||||
final IpConnectivityLog logger = new IpConnectivityLog(mService.impl);
|
final IpConnectivityLog logger = new IpConnectivityLog(mService.impl);
|
||||||
final ApfProgramEvent ev = new ApfProgramEvent();
|
final ApfProgramEvent ev = new ApfProgramEvent.Builder().build();
|
||||||
final long fakeTimestamp = 1;
|
final long fakeTimestamp = 1;
|
||||||
|
|
||||||
int attempt = 100; // More than burst quota, but less than buffer size.
|
int attempt = 100; // More than burst quota, but less than buffer size.
|
||||||
@@ -304,26 +304,31 @@ public class IpConnectivityMetricsTest {
|
|||||||
when(mCm.getNetworkCapabilities(new Network(100))).thenReturn(ncWifi);
|
when(mCm.getNetworkCapabilities(new Network(100))).thenReturn(ncWifi);
|
||||||
when(mCm.getNetworkCapabilities(new Network(101))).thenReturn(ncCell);
|
when(mCm.getNetworkCapabilities(new Network(101))).thenReturn(ncCell);
|
||||||
|
|
||||||
ApfStats apfStats = new ApfStats();
|
ApfStats apfStats = new ApfStats.Builder()
|
||||||
apfStats.durationMs = 45000;
|
.setDurationMs(45000)
|
||||||
apfStats.receivedRas = 10;
|
.setReceivedRas(10)
|
||||||
apfStats.matchingRas = 2;
|
.setMatchingRas(2)
|
||||||
apfStats.droppedRas = 2;
|
.setDroppedRas(2)
|
||||||
apfStats.parseErrors = 2;
|
.setParseErrors(2)
|
||||||
apfStats.zeroLifetimeRas = 1;
|
.setZeroLifetimeRas(1)
|
||||||
apfStats.programUpdates = 4;
|
.setProgramUpdates(4)
|
||||||
apfStats.programUpdatesAll = 7;
|
.setProgramUpdatesAll(7)
|
||||||
apfStats.programUpdatesAllowingMulticast = 3;
|
.setProgramUpdatesAllowingMulticast(3)
|
||||||
apfStats.maxProgramSize = 2048;
|
.setMaxProgramSize(2048)
|
||||||
|
.build();
|
||||||
|
|
||||||
ValidationProbeEvent validationEv = new ValidationProbeEvent();
|
final ValidationProbeEvent validationEv = new ValidationProbeEvent.Builder()
|
||||||
validationEv.durationMs = 40730;
|
.setDurationMs(40730)
|
||||||
validationEv.probeType = ValidationProbeEvent.PROBE_HTTP;
|
.setProbeType(ValidationProbeEvent.PROBE_HTTP, true)
|
||||||
validationEv.returnCode = 204;
|
.setReturnCode(204)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
final DhcpClientEvent event = new DhcpClientEvent.Builder()
|
||||||
|
.setMsg("SomeState")
|
||||||
|
.setDurationMs(192)
|
||||||
|
.build();
|
||||||
Parcelable[] events = {
|
Parcelable[] events = {
|
||||||
new IpReachabilityEvent(IpReachabilityEvent.NUD_FAILED),
|
new IpReachabilityEvent(IpReachabilityEvent.NUD_FAILED), event,
|
||||||
new DhcpClientEvent("SomeState", 192),
|
|
||||||
new IpManagerEvent(IpManagerEvent.PROVISIONING_OK, 5678),
|
new IpManagerEvent(IpManagerEvent.PROVISIONING_OK, 5678),
|
||||||
validationEv,
|
validationEv,
|
||||||
apfStats,
|
apfStats,
|
||||||
@@ -424,7 +429,7 @@ public class IpConnectivityMetricsTest {
|
|||||||
" validation_probe_event <",
|
" validation_probe_event <",
|
||||||
" latency_ms: 40730",
|
" latency_ms: 40730",
|
||||||
" probe_result: 204",
|
" probe_result: 204",
|
||||||
" probe_type: 1",
|
" probe_type: 257",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
|
|||||||
Reference in New Issue
Block a user