Define PacketWakeup pushed events for statds
This patch pushes packet wakeup events collected by
NetdEventListenerService into the statds service.
Example logs from $ adb logcat -b stats
11-20 23:33:25.955 955 972 I [44] : [10014,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:400d:c0b::bc,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,5228,49411]
11-20 23:37:05.809 955 1473 I [44] : [10014,wlan0,2048,10:e:7e:26:3f:c1,192.168.0.142,192.168.0.39,6,443,45422]
11-20 23:42:09.233 955 1473 I [44] : [10014,wlan0,2048,10:e:7e:26:3f:c1,192.168.12.238,192.168.0.39,6,443,40160]
11-20 23:55:28.162 955 1207 I [44] : [10059,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:4004:807::200a,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,443,42492]
11-20 23:59:18.343 955 1888 I [44] : [10059,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:4004:807::200a,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,443,42491]
11-21 00:00:17.952 955 3341 I [44] : [10014,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:400d:c0b::bc,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,5228,49411]
11-21 00:13:05.552 955 1473 I [44] : [-1,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:4004:805::200a,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,443,38098]
11-21 00:13:50.606 955 1207 I [44] : [-1,wlan0,2048,10:e:7e:26:3f:c1,192.168.5.238,192.168.0.39,6,443,40802]
Bug: 28806131
Test: runtest frameworks-net
Change-Id: I5a3c76498a4b720f0d9308a65b5dd4b32377d0d1
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index ba93feb..57a92b6 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -73,6 +73,7 @@
SettingChanged setting_changed = 41;
ActivityForegroundStateChanged activity_foreground_state_changed = 42;
IsolatedUidChanged isolated_uid_changed = 43;
+ PacketWakeupOccurred packet_wakeup_occurred = 44;
// TODO: Reorder the numbering so that the most frequent occur events occur in the first 15.
}
@@ -906,3 +907,32 @@
optional uint64 freq_idx = 2;
optional uint64 time_ms = 3;
}
+
+/*
+ * Logs the reception of an incoming network packet causing the main system to wake up for
+ * processing that packet. These events are notified by the kernel via Netlink NFLOG to Netd
+ * and processed by WakeupController.cpp.
+ */
+message PacketWakeupOccurred {
+ // The uid owning the socket into which the packet was delivered, or -1 if the packet was
+ // delivered nowhere.
+ optional int32 uid = 1;
+ // The interface name on which the packet was received.
+ optional string iface = 2;
+ // The ethertype value of the packet.
+ optional int32 ethertype = 3;
+ // String representation of the destination MAC address of the packet.
+ optional string destination_hardware_address = 4;
+ // String representation of the source address of the packet if this was an IP packet.
+ optional string source_ip = 5;
+ // String representation of the destination address of the packet if this was an IP packet.
+ optional string destination_ip = 6;
+ // The value of the protocol field if this was an IPv4 packet or the value of the Next Header
+ // field if this was an IPv6 packet. The range of possible values is the same for both IP
+ // families.
+ optional int32 ip_next_header = 7;
+ // The source port if this was a TCP or UDP packet.
+ optional int32 source_port = 8;
+ // The destination port if this was a TCP or UDP packet.
+ optional int32 destination_port = 9;
+}