Add L2~L4 information to packet wakeup logs and metrics
Example of $ adb shell dumpsys connmetrics list:
...
WakeupStats(wlan0, 21851s, total: 85, root: 0, system: 4, apps: 63, non-apps: 0, no uid: 18, l2 unicast/multicast/broadcast: 85/0/0, ethertype 0x800: 23, ethertype 0x86dd: 62, ipNxtHdr 6: 74, ipNxtHdr 17: 1, ipproto 58: 10)
...
WakeupEvent(06:55:54.094, wlan0, -1, eth=0x800, dstHw=10:e:7e:26:3f:c1, ipNxtHdr=6, srcIp=216.58.200.110, dstIp=100.112.108.29, srcPort=443, dstPort=46878)
WakeupEvent(06:57:14.379, wlan0, -1, eth=0x86dd, dstHw=10:e:7e:26:3f:c1, ipNxtHdr=58, srcIp=ff02::1, dstIp=fe80::fa00:4:fd00:1)
WakeupEvent(06:57:52.786, wlan0, 1000, eth=0x800, dstHw=10:e:7e:26:3f:c1, ipNxtHdr=6, srcIp=172.217.27.67, dstIp=100.112.108.29, srcPort=80, dstPort=49360)
WakeupEvent(06:58:02.919, wlan0, 10004, eth=0x86dd, dstHw=10:e:7e:26:3f:c1, ipNxtHdr=6, srcIp=2401:fa00:4:fd00:a585:13d1:6a23:4fb4, dstIp=2404:6800:4006:809::200a, srcPort=443, dstPort=46197)
WakeupEvent(06:58:05.586, wlan0, 10004, eth=0x86dd, dstHw=10:e:7e:26:3f:c1, ipNxtHdr=6, srcIp=2401:fa00:4:fd00:a585:13d1:6a23:4fb4, dstIp=2404:6800:4006:803::200a, srcPort=443, dstPort=46096)
Bug: 66869042
Test: runtest frameworks-net
+ manual testing by monitoring $ dumpsys connmetrics list
Change-Id: I03215c0c9fb7feda3e6ceb1b916f61f4ffb15344
This commit is contained in:
@@ -508,6 +508,13 @@ public class IpConnectivityEventBuilderTest {
|
|||||||
stats.rootWakeups = 2;
|
stats.rootWakeups = 2;
|
||||||
stats.systemWakeups = 3;
|
stats.systemWakeups = 3;
|
||||||
stats.noUidWakeups = 3;
|
stats.noUidWakeups = 3;
|
||||||
|
stats.l2UnicastCount = 5;
|
||||||
|
stats.l2MulticastCount = 1;
|
||||||
|
stats.l2BroadcastCount = 2;
|
||||||
|
stats.ethertypes.put(0x800, 3);
|
||||||
|
stats.ethertypes.put(0x86dd, 3);
|
||||||
|
stats.ipNextHeaders.put(6, 5);
|
||||||
|
|
||||||
|
|
||||||
IpConnectivityEvent got = IpConnectivityEventBuilder.toProto(stats);
|
IpConnectivityEvent got = IpConnectivityEventBuilder.toProto(stats);
|
||||||
String want = String.join("\n",
|
String want = String.join("\n",
|
||||||
@@ -521,6 +528,21 @@ public class IpConnectivityEventBuilderTest {
|
|||||||
" wakeup_stats <",
|
" wakeup_stats <",
|
||||||
" application_wakeups: 5",
|
" application_wakeups: 5",
|
||||||
" duration_sec: 0",
|
" duration_sec: 0",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 2048",
|
||||||
|
" value: 3",
|
||||||
|
" >",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 34525",
|
||||||
|
" value: 3",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 6",
|
||||||
|
" value: 5",
|
||||||
|
" >",
|
||||||
|
" l2_broadcast_count: 2",
|
||||||
|
" l2_multicast_count: 1",
|
||||||
|
" l2_unicast_count: 5",
|
||||||
" no_uid_wakeups: 3",
|
" no_uid_wakeups: 3",
|
||||||
" non_application_wakeups: 1",
|
" non_application_wakeups: 1",
|
||||||
" root_wakeups: 2",
|
" root_wakeups: 2",
|
||||||
|
|||||||
@@ -78,6 +78,9 @@ public class IpConnectivityMetricsTest {
|
|||||||
private static final String EXAMPLE_IPV4 = "192.0.2.1";
|
private static final String EXAMPLE_IPV4 = "192.0.2.1";
|
||||||
private static final String EXAMPLE_IPV6 = "2001:db8:1200::2:1";
|
private static final String EXAMPLE_IPV6 = "2001:db8:1200::2:1";
|
||||||
|
|
||||||
|
private static final byte[] MAC_ADDR =
|
||||||
|
{(byte)0x84, (byte)0xc9, (byte)0xb2, (byte)0x6a, (byte)0xed, (byte)0x4b};
|
||||||
|
|
||||||
@Mock Context mCtx;
|
@Mock Context mCtx;
|
||||||
@Mock IIpConnectivityMetrics mMockService;
|
@Mock IIpConnectivityMetrics mMockService;
|
||||||
@Mock ConnectivityManager mCm;
|
@Mock ConnectivityManager mCm;
|
||||||
@@ -351,13 +354,21 @@ public class IpConnectivityMetricsTest {
|
|||||||
dnsEvent(101, EVENT_GETHOSTBYNAME, 0, 34);
|
dnsEvent(101, EVENT_GETHOSTBYNAME, 0, 34);
|
||||||
|
|
||||||
// iface, uid
|
// iface, uid
|
||||||
wakeupEvent("wlan0", 1000);
|
final byte[] mac = {0x48, 0x7c, 0x2b, 0x6a, 0x3e, 0x4b};
|
||||||
wakeupEvent("rmnet0", 10123);
|
final String srcIp = "192.168.2.1";
|
||||||
wakeupEvent("wlan0", 1000);
|
final String dstIp = "192.168.2.23";
|
||||||
wakeupEvent("rmnet0", 10008);
|
final int sport = 2356;
|
||||||
wakeupEvent("wlan0", -1);
|
final int dport = 13489;
|
||||||
wakeupEvent("wlan0", 10008);
|
final long now = 1001L;
|
||||||
wakeupEvent("rmnet0", 1000);
|
final int v4 = 0x800;
|
||||||
|
final int tcp = 6;
|
||||||
|
final int udp = 17;
|
||||||
|
wakeupEvent("wlan0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, 1001L);
|
||||||
|
wakeupEvent("wlan0", 10123, v4, tcp, mac, srcIp, dstIp, sport, dport, 1001L);
|
||||||
|
wakeupEvent("wlan0", 1000, v4, udp, mac, srcIp, dstIp, sport, dport, 1001L);
|
||||||
|
wakeupEvent("wlan0", 10008, v4, udp, mac, srcIp, dstIp, sport, dport, 1001L);
|
||||||
|
wakeupEvent("wlan0", -1, v4, udp, mac, srcIp, dstIp, sport, dport, 1001L);
|
||||||
|
wakeupEvent("wlan0", 10008, v4, tcp, mac, srcIp, dstIp, sport, dport, 1001L);
|
||||||
|
|
||||||
long timeMs = mService.mDefaultNetworkMetrics.creationTimeMs;
|
long timeMs = mService.mDefaultNetworkMetrics.creationTimeMs;
|
||||||
final long cell = BitUtils.packBits(new int[]{NetworkCapabilities.TRANSPORT_CELLULAR});
|
final long cell = BitUtils.packBits(new int[]{NetworkCapabilities.TRANSPORT_CELLULAR});
|
||||||
@@ -560,34 +571,33 @@ public class IpConnectivityMetricsTest {
|
|||||||
">",
|
">",
|
||||||
"events <",
|
"events <",
|
||||||
" if_name: \"\"",
|
" if_name: \"\"",
|
||||||
" link_layer: 2",
|
|
||||||
" network_id: 0",
|
|
||||||
" time_ms: 0",
|
|
||||||
" transports: 0",
|
|
||||||
" wakeup_stats <",
|
|
||||||
" application_wakeups: 2",
|
|
||||||
" duration_sec: 0",
|
|
||||||
" no_uid_wakeups: 0",
|
|
||||||
" non_application_wakeups: 0",
|
|
||||||
" root_wakeups: 0",
|
|
||||||
" system_wakeups: 1",
|
|
||||||
" total_wakeups: 3",
|
|
||||||
" >",
|
|
||||||
">",
|
|
||||||
"events <",
|
|
||||||
" if_name: \"\"",
|
|
||||||
" link_layer: 4",
|
" link_layer: 4",
|
||||||
" network_id: 0",
|
" network_id: 0",
|
||||||
" time_ms: 0",
|
" time_ms: 0",
|
||||||
" transports: 0",
|
" transports: 0",
|
||||||
" wakeup_stats <",
|
" wakeup_stats <",
|
||||||
" application_wakeups: 1",
|
" application_wakeups: 3",
|
||||||
" duration_sec: 0",
|
" duration_sec: 0",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 2048",
|
||||||
|
" value: 6",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 6",
|
||||||
|
" value: 3",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 17",
|
||||||
|
" value: 3",
|
||||||
|
" >",
|
||||||
|
" l2_broadcast_count: 0",
|
||||||
|
" l2_multicast_count: 0",
|
||||||
|
" l2_unicast_count: 6",
|
||||||
" no_uid_wakeups: 1",
|
" no_uid_wakeups: 1",
|
||||||
" non_application_wakeups: 0",
|
" non_application_wakeups: 0",
|
||||||
" root_wakeups: 0",
|
" root_wakeups: 0",
|
||||||
" system_wakeups: 2",
|
" system_wakeups: 2",
|
||||||
" total_wakeups: 4",
|
" total_wakeups: 6",
|
||||||
" >",
|
" >",
|
||||||
">",
|
">",
|
||||||
"version: 2\n");
|
"version: 2\n");
|
||||||
@@ -610,9 +620,10 @@ public class IpConnectivityMetricsTest {
|
|||||||
mNetdListener.onDnsEvent(netId, type, result, latency, "", null, 0, 0);
|
mNetdListener.onDnsEvent(netId, type, result, latency, "", null, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wakeupEvent(String iface, int uid) throws Exception {
|
void wakeupEvent(String iface, int uid, int ether, int ip, byte[] mac, String srcIp,
|
||||||
|
String dstIp, int sport, int dport, long now) throws Exception {
|
||||||
String prefix = NetdEventListenerService.WAKEUP_EVENT_IFACE_PREFIX + iface;
|
String prefix = NetdEventListenerService.WAKEUP_EVENT_IFACE_PREFIX + iface;
|
||||||
mNetdListener.onWakeupEvent(prefix, uid, uid, 0);
|
mNetdListener.onWakeupEvent(prefix, uid, ether, ip, mac, srcIp, dstIp, sport, dport, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkAgentInfo makeNai(int netId, int score, boolean ipv4, boolean ipv6, long transports) {
|
NetworkAgentInfo makeNai(int netId, int score, boolean ipv4, boolean ipv6, long transports) {
|
||||||
|
|||||||
@@ -61,7 +61,10 @@ public class NetdEventListenerServiceTest {
|
|||||||
private static final String EXAMPLE_IPV4 = "192.0.2.1";
|
private static final String EXAMPLE_IPV4 = "192.0.2.1";
|
||||||
private static final String EXAMPLE_IPV6 = "2001:db8:1200::2:1";
|
private static final String EXAMPLE_IPV6 = "2001:db8:1200::2:1";
|
||||||
|
|
||||||
NetdEventListenerService mNetdEventListenerService;
|
private static final byte[] MAC_ADDR =
|
||||||
|
{(byte)0x84, (byte)0xc9, (byte)0xb2, (byte)0x6a, (byte)0xed, (byte)0x4b};
|
||||||
|
|
||||||
|
NetdEventListenerService mService;
|
||||||
ConnectivityManager mCm;
|
ConnectivityManager mCm;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -75,28 +78,49 @@ public class NetdEventListenerServiceTest {
|
|||||||
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);
|
||||||
|
|
||||||
mNetdEventListenerService = new NetdEventListenerService(mCm);
|
mService = new NetdEventListenerService(mCm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWakeupEventLogging() throws Exception {
|
public void testWakeupEventLogging() throws Exception {
|
||||||
final int BUFFER_LENGTH = NetdEventListenerService.WAKEUP_EVENT_BUFFER_LENGTH;
|
final int BUFFER_LENGTH = NetdEventListenerService.WAKEUP_EVENT_BUFFER_LENGTH;
|
||||||
|
final long now = System.currentTimeMillis();
|
||||||
|
final String iface = "wlan0";
|
||||||
|
final byte[] mac = MAC_ADDR;
|
||||||
|
final String srcIp = "192.168.2.1";
|
||||||
|
final String dstIp = "192.168.2.23";
|
||||||
|
final String srcIp6 = "2001:db8:4:fd00:a585:13d1:6a23:4fb4";
|
||||||
|
final String dstIp6 = "2001:db8:4006:807::200a";
|
||||||
|
final int sport = 2356;
|
||||||
|
final int dport = 13489;
|
||||||
|
|
||||||
|
final int v4 = 0x800;
|
||||||
|
final int v6 = 0x86dd;
|
||||||
|
final int tcp = 6;
|
||||||
|
final int udp = 17;
|
||||||
|
final int icmp6 = 58;
|
||||||
|
|
||||||
// Baseline without any event
|
// Baseline without any event
|
||||||
String[] baseline = listNetdEvent();
|
String[] baseline = listNetdEvent();
|
||||||
|
|
||||||
long now = System.currentTimeMillis();
|
|
||||||
String prefix = "iface:wlan0";
|
|
||||||
int[] uids = {10001, 10002, 10004, 1000, 10052, 10023, 10002, 10123, 10004};
|
int[] uids = {10001, 10002, 10004, 1000, 10052, 10023, 10002, 10123, 10004};
|
||||||
for (int uid : uids) {
|
wakeupEvent(iface, uids[0], v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, now);
|
wakeupEvent(iface, uids[1], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
}
|
wakeupEvent(iface, uids[2], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent(iface, uids[3], v4, icmp6, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent(iface, uids[4], v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent(iface, uids[5], v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent(iface, uids[6], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent(iface, uids[7], v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent(iface, uids[8], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
|
||||||
String[] events2 = remove(listNetdEvent(), baseline);
|
String[] events2 = remove(listNetdEvent(), baseline);
|
||||||
int expectedLength2 = uids.length + 1; // +1 for the WakeupStats line
|
int expectedLength2 = uids.length + 1; // +1 for the WakeupStats line
|
||||||
assertEquals(expectedLength2, events2.length);
|
assertEquals(expectedLength2, events2.length);
|
||||||
assertContains(events2[0], "WakeupStats");
|
assertContains(events2[0], "WakeupStats");
|
||||||
assertContains(events2[0], "wlan0");
|
assertContains(events2[0], "wlan0");
|
||||||
|
assertContains(events2[0], "0x800");
|
||||||
|
assertContains(events2[0], "0x86dd");
|
||||||
for (int i = 0; i < uids.length; i++) {
|
for (int i = 0; i < uids.length; i++) {
|
||||||
String got = events2[i+1];
|
String got = events2[i+1];
|
||||||
assertContains(got, "WakeupEvent");
|
assertContains(got, "WakeupEvent");
|
||||||
@@ -107,7 +131,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
int uid = 20000;
|
int uid = 20000;
|
||||||
for (int i = 0; i < BUFFER_LENGTH * 2; i++) {
|
for (int i = 0; i < BUFFER_LENGTH * 2; i++) {
|
||||||
long ts = now + 10;
|
long ts = now + 10;
|
||||||
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, ts);
|
wakeupEvent(iface, uid, 0x800, 6, mac, srcIp, dstIp, 23, 24, ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] events3 = remove(listNetdEvent(), baseline);
|
String[] events3 = remove(listNetdEvent(), baseline);
|
||||||
@@ -123,7 +147,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uid = 45678;
|
uid = 45678;
|
||||||
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, now);
|
wakeupEvent(iface, uid, 0x800, 6, mac, srcIp, dstIp, 23, 24, now);
|
||||||
|
|
||||||
String[] events4 = remove(listNetdEvent(), baseline);
|
String[] events4 = remove(listNetdEvent(), baseline);
|
||||||
String lastEvent = events4[events4.length - 1];
|
String lastEvent = events4[events4.length - 1];
|
||||||
@@ -134,21 +158,36 @@ public class NetdEventListenerServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWakeupStatsLogging() throws Exception {
|
public void testWakeupStatsLogging() throws Exception {
|
||||||
wakeupEvent("wlan0", 1000);
|
final byte[] mac = MAC_ADDR;
|
||||||
wakeupEvent("rmnet0", 10123);
|
final String srcIp = "192.168.2.1";
|
||||||
wakeupEvent("wlan0", 1000);
|
final String dstIp = "192.168.2.23";
|
||||||
wakeupEvent("rmnet0", 10008);
|
final String srcIp6 = "2401:fa00:4:fd00:a585:13d1:6a23:4fb4";
|
||||||
wakeupEvent("wlan0", -1);
|
final String dstIp6 = "2404:6800:4006:807::200a";
|
||||||
wakeupEvent("wlan0", 10008);
|
final int sport = 2356;
|
||||||
wakeupEvent("rmnet0", 1000);
|
final int dport = 13489;
|
||||||
wakeupEvent("wlan0", 10004);
|
final long now = 1001L;
|
||||||
wakeupEvent("wlan0", 1000);
|
|
||||||
wakeupEvent("wlan0", 0);
|
final int v4 = 0x800;
|
||||||
wakeupEvent("wlan0", -1);
|
final int v6 = 0x86dd;
|
||||||
wakeupEvent("rmnet0", 10052);
|
final int tcp = 6;
|
||||||
wakeupEvent("wlan0", 0);
|
final int udp = 17;
|
||||||
wakeupEvent("rmnet0", 1000);
|
final int icmp6 = 58;
|
||||||
wakeupEvent("wlan0", 1010);
|
|
||||||
|
wakeupEvent("wlan0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("rmnet0", 10123, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 1000, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("rmnet0", 10008, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", -1, v6, icmp6, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 10008, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("rmnet0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 10004, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 1000, v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 0, v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", -1, v6, icmp6, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent("rmnet0", 10052, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 0, v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent("rmnet0", 1000, v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
|
wakeupEvent("wlan0", 1010, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
|
||||||
String got = flushStatistics();
|
String got = flushStatistics();
|
||||||
String want = String.join("\n",
|
String want = String.join("\n",
|
||||||
@@ -162,6 +201,21 @@ public class NetdEventListenerServiceTest {
|
|||||||
" wakeup_stats <",
|
" wakeup_stats <",
|
||||||
" application_wakeups: 3",
|
" application_wakeups: 3",
|
||||||
" duration_sec: 0",
|
" duration_sec: 0",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 2048",
|
||||||
|
" value: 4",
|
||||||
|
" >",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 34525",
|
||||||
|
" value: 1",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 6",
|
||||||
|
" value: 5",
|
||||||
|
" >",
|
||||||
|
" l2_broadcast_count: 0",
|
||||||
|
" l2_multicast_count: 0",
|
||||||
|
" l2_unicast_count: 5",
|
||||||
" no_uid_wakeups: 0",
|
" no_uid_wakeups: 0",
|
||||||
" non_application_wakeups: 0",
|
" non_application_wakeups: 0",
|
||||||
" root_wakeups: 0",
|
" root_wakeups: 0",
|
||||||
@@ -178,6 +232,29 @@ public class NetdEventListenerServiceTest {
|
|||||||
" wakeup_stats <",
|
" wakeup_stats <",
|
||||||
" application_wakeups: 2",
|
" application_wakeups: 2",
|
||||||
" duration_sec: 0",
|
" duration_sec: 0",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 2048",
|
||||||
|
" value: 5",
|
||||||
|
" >",
|
||||||
|
" ethertype_counts <",
|
||||||
|
" key: 34525",
|
||||||
|
" value: 5",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 6",
|
||||||
|
" value: 3",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 17",
|
||||||
|
" value: 5",
|
||||||
|
" >",
|
||||||
|
" ip_next_header_counts <",
|
||||||
|
" key: 58",
|
||||||
|
" value: 2",
|
||||||
|
" >",
|
||||||
|
" l2_broadcast_count: 0",
|
||||||
|
" l2_multicast_count: 0",
|
||||||
|
" l2_unicast_count: 10",
|
||||||
" no_uid_wakeups: 2",
|
" no_uid_wakeups: 2",
|
||||||
" non_application_wakeups: 1",
|
" non_application_wakeups: 1",
|
||||||
" root_wakeups: 2",
|
" root_wakeups: 2",
|
||||||
@@ -401,7 +478,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
Thread connectEventAction(int netId, int error, int latencyMs, String ipAddr) {
|
Thread connectEventAction(int netId, int error, int latencyMs, String ipAddr) {
|
||||||
return new Thread(() -> {
|
return new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
mNetdEventListenerService.onConnectEvent(netId, error, latencyMs, ipAddr, 80, 1);
|
mService.onConnectEvent(netId, error, latencyMs, ipAddr, 80, 1);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
fail(e.toString());
|
fail(e.toString());
|
||||||
}
|
}
|
||||||
@@ -409,12 +486,13 @@ public class NetdEventListenerServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dnsEvent(int netId, int type, int result, int latency) throws Exception {
|
void dnsEvent(int netId, int type, int result, int latency) throws Exception {
|
||||||
mNetdEventListenerService.onDnsEvent(netId, type, result, latency, "", null, 0, 0);
|
mService.onDnsEvent(netId, type, result, latency, "", null, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wakeupEvent(String iface, int uid) throws Exception {
|
void wakeupEvent(String iface, int uid, int ether, int ip, byte[] mac, String srcIp,
|
||||||
|
String dstIp, int sport, int dport, long now) throws Exception {
|
||||||
String prefix = NetdEventListenerService.WAKEUP_EVENT_IFACE_PREFIX + iface;
|
String prefix = NetdEventListenerService.WAKEUP_EVENT_IFACE_PREFIX + iface;
|
||||||
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, 0);
|
mService.onWakeupEvent(prefix, uid, ether, ip, mac, srcIp, dstIp, sport, dport, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
void asyncDump(long durationMs) throws Exception {
|
void asyncDump(long durationMs) throws Exception {
|
||||||
@@ -422,7 +500,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
final PrintWriter pw = new PrintWriter(new FileOutputStream("/dev/null"));
|
final PrintWriter pw = new PrintWriter(new FileOutputStream("/dev/null"));
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
while (System.currentTimeMillis() < stop) {
|
while (System.currentTimeMillis() < stop) {
|
||||||
mNetdEventListenerService.list(pw);
|
mService.list(pw);
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
@@ -431,7 +509,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
String flushStatistics() throws Exception {
|
String flushStatistics() throws Exception {
|
||||||
IpConnectivityMetrics metricsService =
|
IpConnectivityMetrics metricsService =
|
||||||
new IpConnectivityMetrics(mock(Context.class), (ctx) -> 2000);
|
new IpConnectivityMetrics(mock(Context.class), (ctx) -> 2000);
|
||||||
metricsService.mNetdListener = mNetdEventListenerService;
|
metricsService.mNetdListener = mService;
|
||||||
|
|
||||||
StringWriter buffer = new StringWriter();
|
StringWriter buffer = new StringWriter();
|
||||||
PrintWriter writer = new PrintWriter(buffer);
|
PrintWriter writer = new PrintWriter(buffer);
|
||||||
@@ -453,7 +531,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
String[] listNetdEvent() throws Exception {
|
String[] listNetdEvent() throws Exception {
|
||||||
StringWriter buffer = new StringWriter();
|
StringWriter buffer = new StringWriter();
|
||||||
PrintWriter writer = new PrintWriter(buffer);
|
PrintWriter writer = new PrintWriter(buffer);
|
||||||
mNetdEventListenerService.list(writer);
|
mService.list(writer);
|
||||||
return buffer.toString().split("\\n");
|
return buffer.toString().split("\\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user