Merge changes I8bfabcb1,I563a6a31
* changes: Connectivity metrics: change how interface names are logged Connectivity metrics: serialize networkId, transports, ifname
This commit is contained in:
committed by
Android (Google) Code Review
commit
f134f0a072
@@ -423,8 +423,10 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public static final int TRANSPORT_WIFI_AWARE = 5;
|
public static final int TRANSPORT_WIFI_AWARE = 5;
|
||||||
|
|
||||||
private static final int MIN_TRANSPORT = TRANSPORT_CELLULAR;
|
/** @hide */
|
||||||
private static final int MAX_TRANSPORT = TRANSPORT_WIFI_AWARE;
|
public static final int MIN_TRANSPORT = TRANSPORT_CELLULAR;
|
||||||
|
/** @hide */
|
||||||
|
public static final int MAX_TRANSPORT = TRANSPORT_WIFI_AWARE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the given transport type to this {@code NetworkCapability} instance.
|
* Adds the given transport type to this {@code NetworkCapability} instance.
|
||||||
|
|||||||
@@ -26,6 +26,11 @@ import static com.android.server.connectivity.MetricsTestUtil.anIntArray;
|
|||||||
import static com.android.server.connectivity.MetricsTestUtil.b;
|
import static com.android.server.connectivity.MetricsTestUtil.b;
|
||||||
import static com.android.server.connectivity.MetricsTestUtil.describeIpEvent;
|
import static com.android.server.connectivity.MetricsTestUtil.describeIpEvent;
|
||||||
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpConnectivityLog;
|
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpConnectivityLog;
|
||||||
|
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.BLUETOOTH;
|
||||||
|
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.CELLULAR;
|
||||||
|
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.ETHERNET;
|
||||||
|
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.MULTIPLE;
|
||||||
|
import static com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.WIFI;
|
||||||
|
|
||||||
import android.net.ConnectivityMetricsEvent;
|
import android.net.ConnectivityMetricsEvent;
|
||||||
import android.net.metrics.ApfProgramEvent;
|
import android.net.metrics.ApfProgramEvent;
|
||||||
@@ -46,6 +51,135 @@ import junit.framework.TestCase;
|
|||||||
// TODO: instead of comparing textpb to textpb, parse textpb and compare proto to proto.
|
// TODO: instead of comparing textpb to textpb, parse textpb and compare proto to proto.
|
||||||
public class IpConnectivityEventBuilderTest extends TestCase {
|
public class IpConnectivityEventBuilderTest extends TestCase {
|
||||||
|
|
||||||
|
@SmallTest
|
||||||
|
public void testLinkLayerInferrence() {
|
||||||
|
ConnectivityMetricsEvent ev = describeIpEvent(
|
||||||
|
aType(IpReachabilityEvent.class),
|
||||||
|
anInt(IpReachabilityEvent.NUD_FAILED));
|
||||||
|
|
||||||
|
String want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" link_layer: 0",
|
||||||
|
" network_id: 0",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 0",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
|
||||||
|
ev.netId = 123;
|
||||||
|
ev.transports = 3; // transports have priority for inferrence of link layer
|
||||||
|
ev.ifname = "wlan0";
|
||||||
|
want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"\"",
|
||||||
|
String.format(" link_layer: %d", MULTIPLE),
|
||||||
|
" network_id: 123",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 3",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
|
||||||
|
ev.transports = 1;
|
||||||
|
ev.ifname = null;
|
||||||
|
want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"\"",
|
||||||
|
String.format(" link_layer: %d", CELLULAR),
|
||||||
|
" network_id: 123",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 1",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
|
||||||
|
ev.transports = 0;
|
||||||
|
ev.ifname = "not_inferred";
|
||||||
|
want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"not_inferred\"",
|
||||||
|
" link_layer: 0",
|
||||||
|
" network_id: 123",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 0",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
|
||||||
|
ev.ifname = "bt-pan";
|
||||||
|
want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"\"",
|
||||||
|
String.format(" link_layer: %d", BLUETOOTH),
|
||||||
|
" network_id: 123",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 0",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
|
||||||
|
ev.ifname = "rmnet_ipa0";
|
||||||
|
want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"\"",
|
||||||
|
String.format(" link_layer: %d", CELLULAR),
|
||||||
|
" network_id: 123",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 0",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
|
||||||
|
ev.ifname = "wlan0";
|
||||||
|
want = joinLines(
|
||||||
|
"dropped_events: 0",
|
||||||
|
"events <",
|
||||||
|
" if_name: \"\"",
|
||||||
|
String.format(" link_layer: %d", WIFI),
|
||||||
|
" network_id: 123",
|
||||||
|
" time_ms: 1",
|
||||||
|
" transports: 0",
|
||||||
|
" ip_reachability_event <",
|
||||||
|
" event_type: 512",
|
||||||
|
" if_name: \"\"",
|
||||||
|
" >",
|
||||||
|
">",
|
||||||
|
"version: 2");
|
||||||
|
verifySerialization(want, ev);
|
||||||
|
}
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public void testDefaultNetworkEventSerialization() {
|
public void testDefaultNetworkEventSerialization() {
|
||||||
ConnectivityMetricsEvent ev = describeIpEvent(
|
ConnectivityMetricsEvent ev = describeIpEvent(
|
||||||
@@ -86,7 +220,6 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
public void testDhcpClientEventSerialization() {
|
public void testDhcpClientEventSerialization() {
|
||||||
ConnectivityMetricsEvent ev = describeIpEvent(
|
ConnectivityMetricsEvent ev = describeIpEvent(
|
||||||
aType(DhcpClientEvent.class),
|
aType(DhcpClientEvent.class),
|
||||||
aString("wlan0"),
|
|
||||||
aString("SomeState"),
|
aString("SomeState"),
|
||||||
anInt(192));
|
anInt(192));
|
||||||
|
|
||||||
@@ -100,7 +233,7 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
" transports: 0",
|
" transports: 0",
|
||||||
" dhcp_event <",
|
" dhcp_event <",
|
||||||
" duration_ms: 192",
|
" duration_ms: 192",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" state_transition: \"SomeState\"",
|
" state_transition: \"SomeState\"",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
@@ -113,7 +246,6 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
public void testDhcpErrorEventSerialization() {
|
public void testDhcpErrorEventSerialization() {
|
||||||
ConnectivityMetricsEvent ev = describeIpEvent(
|
ConnectivityMetricsEvent ev = describeIpEvent(
|
||||||
aType(DhcpErrorEvent.class),
|
aType(DhcpErrorEvent.class),
|
||||||
aString("wlan0"),
|
|
||||||
anInt(DhcpErrorEvent.L4_NOT_UDP));
|
anInt(DhcpErrorEvent.L4_NOT_UDP));
|
||||||
|
|
||||||
String want = joinLines(
|
String want = joinLines(
|
||||||
@@ -126,7 +258,7 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
" transports: 0",
|
" transports: 0",
|
||||||
" dhcp_event <",
|
" dhcp_event <",
|
||||||
" duration_ms: 0",
|
" duration_ms: 0",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" error_code: 50397184",
|
" error_code: 50397184",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
@@ -191,7 +323,6 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
public void testIpManagerEventSerialization() {
|
public void testIpManagerEventSerialization() {
|
||||||
ConnectivityMetricsEvent ev = describeIpEvent(
|
ConnectivityMetricsEvent ev = describeIpEvent(
|
||||||
aType(IpManagerEvent.class),
|
aType(IpManagerEvent.class),
|
||||||
aString("wlan0"),
|
|
||||||
anInt(IpManagerEvent.PROVISIONING_OK),
|
anInt(IpManagerEvent.PROVISIONING_OK),
|
||||||
aLong(5678));
|
aLong(5678));
|
||||||
|
|
||||||
@@ -205,7 +336,7 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
" transports: 0",
|
" transports: 0",
|
||||||
" ip_provisioning_event <",
|
" ip_provisioning_event <",
|
||||||
" event_type: 1",
|
" event_type: 1",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" latency_ms: 5678",
|
" latency_ms: 5678",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
@@ -218,7 +349,6 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
public void testIpReachabilityEventSerialization() {
|
public void testIpReachabilityEventSerialization() {
|
||||||
ConnectivityMetricsEvent ev = describeIpEvent(
|
ConnectivityMetricsEvent ev = describeIpEvent(
|
||||||
aType(IpReachabilityEvent.class),
|
aType(IpReachabilityEvent.class),
|
||||||
aString("wlan0"),
|
|
||||||
anInt(IpReachabilityEvent.NUD_FAILED));
|
anInt(IpReachabilityEvent.NUD_FAILED));
|
||||||
|
|
||||||
String want = joinLines(
|
String want = joinLines(
|
||||||
@@ -231,7 +361,7 @@ public class IpConnectivityEventBuilderTest extends TestCase {
|
|||||||
" transports: 0",
|
" transports: 0",
|
||||||
" ip_reachability_event <",
|
" ip_reachability_event <",
|
||||||
" event_type: 512",
|
" event_type: 512",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
"version: 2");
|
"version: 2");
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import org.mockito.MockitoAnnotations;
|
|||||||
|
|
||||||
public class IpConnectivityMetricsTest extends TestCase {
|
public class IpConnectivityMetricsTest extends TestCase {
|
||||||
static final IpReachabilityEvent FAKE_EV =
|
static final IpReachabilityEvent FAKE_EV =
|
||||||
new IpReachabilityEvent("wlan0", IpReachabilityEvent.NUD_FAILED);
|
new IpReachabilityEvent(IpReachabilityEvent.NUD_FAILED);
|
||||||
|
|
||||||
@Mock Context mCtx;
|
@Mock Context mCtx;
|
||||||
@Mock IIpConnectivityMetrics mMockService;
|
@Mock IIpConnectivityMetrics mMockService;
|
||||||
@@ -154,47 +154,51 @@ public class IpConnectivityMetricsTest extends TestCase {
|
|||||||
apfStats.programUpdatesAllowingMulticast = 3;
|
apfStats.programUpdatesAllowingMulticast = 3;
|
||||||
apfStats.maxProgramSize = 2048;
|
apfStats.maxProgramSize = 2048;
|
||||||
Parcelable[] events = {
|
Parcelable[] events = {
|
||||||
new IpReachabilityEvent("wlan0", IpReachabilityEvent.NUD_FAILED),
|
new IpReachabilityEvent(IpReachabilityEvent.NUD_FAILED),
|
||||||
new DhcpClientEvent("wlan0", "SomeState", 192),
|
new DhcpClientEvent("SomeState", 192),
|
||||||
new DefaultNetworkEvent(102, new int[]{1,2,3}, 101, true, false),
|
new DefaultNetworkEvent(102, new int[]{1,2,3}, 101, true, false),
|
||||||
new IpManagerEvent("wlan0", IpManagerEvent.PROVISIONING_OK, 5678),
|
new IpManagerEvent(IpManagerEvent.PROVISIONING_OK, 5678),
|
||||||
new ValidationProbeEvent(120, 40730, ValidationProbeEvent.PROBE_HTTP, 204),
|
new ValidationProbeEvent(120, 40730, ValidationProbeEvent.PROBE_HTTP, 204),
|
||||||
apfStats,
|
apfStats,
|
||||||
new RaEvent(2000, 400, 300, -1, 1000, -1)
|
new RaEvent(2000, 400, 300, -1, 1000, -1)
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i = 0; i < events.length; i++) {
|
for (int i = 0; i < events.length; i++) {
|
||||||
logger.log(100 * (i + 1), events[i]);
|
ConnectivityMetricsEvent ev = new ConnectivityMetricsEvent();
|
||||||
|
ev.timestamp = 100 * (i + 1);
|
||||||
|
ev.ifname = "wlan0";
|
||||||
|
ev.data = events[i];
|
||||||
|
logger.log(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
String want = joinLines(
|
String want = joinLines(
|
||||||
"dropped_events: 0",
|
"dropped_events: 0",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 100",
|
" time_ms: 100",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
" ip_reachability_event <",
|
" ip_reachability_event <",
|
||||||
" event_type: 512",
|
" event_type: 512",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 200",
|
" time_ms: 200",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
" dhcp_event <",
|
" dhcp_event <",
|
||||||
" duration_ms: 192",
|
" duration_ms: 192",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" state_transition: \"SomeState\"",
|
" state_transition: \"SomeState\"",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 300",
|
" time_ms: 300",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
@@ -213,19 +217,19 @@ public class IpConnectivityMetricsTest extends TestCase {
|
|||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 400",
|
" time_ms: 400",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
" ip_provisioning_event <",
|
" ip_provisioning_event <",
|
||||||
" event_type: 1",
|
" event_type: 1",
|
||||||
" if_name: \"wlan0\"",
|
" if_name: \"\"",
|
||||||
" latency_ms: 5678",
|
" latency_ms: 5678",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 500",
|
" time_ms: 500",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
@@ -240,7 +244,7 @@ public class IpConnectivityMetricsTest extends TestCase {
|
|||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 600",
|
" time_ms: 600",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
@@ -259,7 +263,7 @@ public class IpConnectivityMetricsTest extends TestCase {
|
|||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 0",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 700",
|
" time_ms: 700",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
|
|||||||
Reference in New Issue
Block a user