xref: /aosp_15_r20/frameworks/base/proto/src/ipconnectivity.proto (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker// LINT: LEGACY_NAMES
2*d57664e9SAndroid Build Coastguard Workersyntax = "proto2";
3*d57664e9SAndroid Build Coastguard Worker
4*d57664e9SAndroid Build Coastguard Workerpackage clearcut.connectivity;
5*d57664e9SAndroid Build Coastguard Worker
6*d57664e9SAndroid Build Coastguard Workeroption java_package = "com.android.server.connectivity.metrics";
7*d57664e9SAndroid Build Coastguard Workeroption java_outer_classname = "IpConnectivityLogClass";
8*d57664e9SAndroid Build Coastguard Worker
9*d57664e9SAndroid Build Coastguard Worker// NetworkId represents the id given by the system to a physical network on the
10*d57664e9SAndroid Build Coastguard Worker// Android device. It is used to relates events to each other for devices with
11*d57664e9SAndroid Build Coastguard Worker// multiple networks (WiFi, 4G, ...).
12*d57664e9SAndroid Build Coastguard Worker// Deprecated since version 3, replaced by top-level network_id field in
13*d57664e9SAndroid Build Coastguard Worker// IpConnectivityEvent.
14*d57664e9SAndroid Build Coastguard Workermessage NetworkId {
15*d57664e9SAndroid Build Coastguard Worker  // Every network gets assigned a network_id on creation based on order of
16*d57664e9SAndroid Build Coastguard Worker  // creation. Thus network_id N is assigned to the network created directly
17*d57664e9SAndroid Build Coastguard Worker  // after network N-1. Thus there is no PII involved here. Zero means no
18*d57664e9SAndroid Build Coastguard Worker  // network. The value 0 is never assigned to a network.
19*d57664e9SAndroid Build Coastguard Worker  optional int32 network_id = 1;
20*d57664e9SAndroid Build Coastguard Worker};
21*d57664e9SAndroid Build Coastguard Worker
22*d57664e9SAndroid Build Coastguard Worker// LinkLayer describes a physical link layer technology used by a network.
23*d57664e9SAndroid Build Coastguard Worker// It is not intended to map one to one to the TRANSPORT_* constants defined in
24*d57664e9SAndroid Build Coastguard Worker// android.net.NetworkCapabilities. Instead it is intended to be used as
25*d57664e9SAndroid Build Coastguard Worker// a dimension field for metrics events and aggregated metrics.
26*d57664e9SAndroid Build Coastguard Worker// Next tag: 10
27*d57664e9SAndroid Build Coastguard Workerenum LinkLayer {
28*d57664e9SAndroid Build Coastguard Worker  // An unknown link layer technology.
29*d57664e9SAndroid Build Coastguard Worker  UNKNOWN   = 0;
30*d57664e9SAndroid Build Coastguard Worker
31*d57664e9SAndroid Build Coastguard Worker  BLUETOOTH = 1;
32*d57664e9SAndroid Build Coastguard Worker  CELLULAR  = 2;
33*d57664e9SAndroid Build Coastguard Worker  ETHERNET  = 3;
34*d57664e9SAndroid Build Coastguard Worker  WIFI      = 4;
35*d57664e9SAndroid Build Coastguard Worker  WIFI_P2P  = 7;
36*d57664e9SAndroid Build Coastguard Worker  WIFI_NAN  = 8; // Also known as WiFi Aware
37*d57664e9SAndroid Build Coastguard Worker  LOWPAN    = 9;
38*d57664e9SAndroid Build Coastguard Worker
39*d57664e9SAndroid Build Coastguard Worker  // Indicates that the link layer dimension is not relevant for the metrics or
40*d57664e9SAndroid Build Coastguard Worker  // event considered.
41*d57664e9SAndroid Build Coastguard Worker  NONE      = 5;
42*d57664e9SAndroid Build Coastguard Worker
43*d57664e9SAndroid Build Coastguard Worker  // Indicates that the metrics or event considered may involve several links.
44*d57664e9SAndroid Build Coastguard Worker  MULTIPLE  = 6;
45*d57664e9SAndroid Build Coastguard Worker};
46*d57664e9SAndroid Build Coastguard Worker
47*d57664e9SAndroid Build Coastguard Worker// A pair of (key, value) integers for describing histogram-like statistics.
48*d57664e9SAndroid Build Coastguard Workermessage Pair {
49*d57664e9SAndroid Build Coastguard Worker  optional int32 key = 1;
50*d57664e9SAndroid Build Coastguard Worker  optional int32 value = 2;
51*d57664e9SAndroid Build Coastguard Worker};
52*d57664e9SAndroid Build Coastguard Worker
53*d57664e9SAndroid Build Coastguard Worker// An event recorded when the system default network disconnects or the system
54*d57664e9SAndroid Build Coastguard Worker// switches to a new default network. An event is also recorded to cover gaps
55*d57664e9SAndroid Build Coastguard Worker// without a default network.
56*d57664e9SAndroid Build Coastguard Worker// Next tag: 12
57*d57664e9SAndroid Build Coastguard Workermessage DefaultNetworkEvent {
58*d57664e9SAndroid Build Coastguard Worker
59*d57664e9SAndroid Build Coastguard Worker  // Reason why this network stopped being the default.
60*d57664e9SAndroid Build Coastguard Worker  enum LostReason {
61*d57664e9SAndroid Build Coastguard Worker    UNKNOWN       = 0;
62*d57664e9SAndroid Build Coastguard Worker    OUTSCORED     = 1;
63*d57664e9SAndroid Build Coastguard Worker    INVALIDATION  = 2;
64*d57664e9SAndroid Build Coastguard Worker    DISCONNECT    = 3;
65*d57664e9SAndroid Build Coastguard Worker  };
66*d57664e9SAndroid Build Coastguard Worker
67*d57664e9SAndroid Build Coastguard Worker  // Whether the network supports IPv4, IPv6, or both.
68*d57664e9SAndroid Build Coastguard Worker  enum IPSupport {
69*d57664e9SAndroid Build Coastguard Worker    NONE = 0;
70*d57664e9SAndroid Build Coastguard Worker    IPV4 = 1;
71*d57664e9SAndroid Build Coastguard Worker    IPV6 = 2;
72*d57664e9SAndroid Build Coastguard Worker    DUAL = 3;
73*d57664e9SAndroid Build Coastguard Worker  };
74*d57664e9SAndroid Build Coastguard Worker
75*d57664e9SAndroid Build Coastguard Worker  // Duration in milliseconds when this network was the default.
76*d57664e9SAndroid Build Coastguard Worker  // Since P.
77*d57664e9SAndroid Build Coastguard Worker  optional int64 default_network_duration_ms = 5;
78*d57664e9SAndroid Build Coastguard Worker
79*d57664e9SAndroid Build Coastguard Worker  // Duration in milliseconds when this default network Internet access was
80*d57664e9SAndroid Build Coastguard Worker  // validated. This field is equal to 0 for DefaultNetworkEvents representing
81*d57664e9SAndroid Build Coastguard Worker  // lack of a default network.
82*d57664e9SAndroid Build Coastguard Worker  // Since P.
83*d57664e9SAndroid Build Coastguard Worker  optional int64 validation_duration_ms = 11;
84*d57664e9SAndroid Build Coastguard Worker
85*d57664e9SAndroid Build Coastguard Worker  // Network score of this network when it became the default network.
86*d57664e9SAndroid Build Coastguard Worker  // Or 0 if this event represents a period without a default network.
87*d57664e9SAndroid Build Coastguard Worker  // Since P.
88*d57664e9SAndroid Build Coastguard Worker  optional int64 initial_score = 7;
89*d57664e9SAndroid Build Coastguard Worker
90*d57664e9SAndroid Build Coastguard Worker  // Network score of this network when it stopped being the default network.
91*d57664e9SAndroid Build Coastguard Worker  // Or 0 if this event represents a period without a default network.
92*d57664e9SAndroid Build Coastguard Worker  // Since P.
93*d57664e9SAndroid Build Coastguard Worker  optional int64 final_score = 8;
94*d57664e9SAndroid Build Coastguard Worker
95*d57664e9SAndroid Build Coastguard Worker  // Best available information about IP support of this default network.
96*d57664e9SAndroid Build Coastguard Worker  // Or NONE if this event represents a period without a default network.
97*d57664e9SAndroid Build Coastguard Worker  // Since P.
98*d57664e9SAndroid Build Coastguard Worker  optional IPSupport ip_support = 9;
99*d57664e9SAndroid Build Coastguard Worker
100*d57664e9SAndroid Build Coastguard Worker  // LinkLayer of the previous default network. Ignores any previous period
101*d57664e9SAndroid Build Coastguard Worker  // without a default network.
102*d57664e9SAndroid Build Coastguard Worker  // Since P
103*d57664e9SAndroid Build Coastguard Worker  optional LinkLayer previous_default_network_link_layer = 10;
104*d57664e9SAndroid Build Coastguard Worker
105*d57664e9SAndroid Build Coastguard Worker  // Deprecated fields
106*d57664e9SAndroid Build Coastguard Worker
107*d57664e9SAndroid Build Coastguard Worker  // A value of 0 means this is a loss of the system default network.
108*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3. Replaced by top level network_id.
109*d57664e9SAndroid Build Coastguard Worker  optional NetworkId network_id = 1 [deprecated = true];
110*d57664e9SAndroid Build Coastguard Worker
111*d57664e9SAndroid Build Coastguard Worker  // A value of 0 means there was no previous default network.
112*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3. Replaced by previous_default_network_id.
113*d57664e9SAndroid Build Coastguard Worker  optional NetworkId previous_network_id = 2 [deprecated = true];
114*d57664e9SAndroid Build Coastguard Worker
115*d57664e9SAndroid Build Coastguard Worker  // Best available information about IP support of the previous network when
116*d57664e9SAndroid Build Coastguard Worker  // disconnecting or switching to a new default network.
117*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3. Replaced by ip_support field.
118*d57664e9SAndroid Build Coastguard Worker  optional IPSupport previous_network_ip_support = 3 [deprecated = true];
119*d57664e9SAndroid Build Coastguard Worker
120*d57664e9SAndroid Build Coastguard Worker  // The transport types of the new default network, represented by
121*d57664e9SAndroid Build Coastguard Worker  // TRANSPORT_* constants as defined in NetworkCapabilities.
122*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3. Replaced by top-level transports field.
123*d57664e9SAndroid Build Coastguard Worker  repeated int32 transport_types = 4 [deprecated = true];
124*d57664e9SAndroid Build Coastguard Worker
125*d57664e9SAndroid Build Coastguard Worker  // Duration in milliseconds without a default network. This field is non-zero
126*d57664e9SAndroid Build Coastguard Worker  // only for DefaultNetworkEvents representing lack of a default network.
127*d57664e9SAndroid Build Coastguard Worker  // Since P.
128*d57664e9SAndroid Build Coastguard Worker  optional int64 no_default_network_duration_ms = 6 [deprecated = true];
129*d57664e9SAndroid Build Coastguard Worker};
130*d57664e9SAndroid Build Coastguard Worker
131*d57664e9SAndroid Build Coastguard Worker// Logs IpReachabilityMonitor probe events and NUD_FAILED events.
132*d57664e9SAndroid Build Coastguard Worker// This message is associated to android.net.metrics.IpReachabilityEvent.
133*d57664e9SAndroid Build Coastguard Worker// Next tag: 3.
134*d57664e9SAndroid Build Coastguard Workermessage IpReachabilityEvent {
135*d57664e9SAndroid Build Coastguard Worker  // The interface name (wlan, rmnet, lo, ...) on which the probe was sent.
136*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 2, to be replaced by link_layer field.
137*d57664e9SAndroid Build Coastguard Worker  optional string if_name = 1 [deprecated = true];
138*d57664e9SAndroid Build Coastguard Worker
139*d57664e9SAndroid Build Coastguard Worker  // The event type code of the probe, represented by constants defined in
140*d57664e9SAndroid Build Coastguard Worker  // android.net.metrics.IpReachabilityEvent.
141*d57664e9SAndroid Build Coastguard Worker  // NUD_FAILED_ORGANIC and PROVISIONING_LOST_ORGANIC recorded since version 1.
142*d57664e9SAndroid Build Coastguard Worker  optional int32 event_type = 2;
143*d57664e9SAndroid Build Coastguard Worker};
144*d57664e9SAndroid Build Coastguard Worker
145*d57664e9SAndroid Build Coastguard Worker// Logs NetworkMonitor and ConnectivityService events related to the state of
146*d57664e9SAndroid Build Coastguard Worker// a network: connection, evaluation, validation, lingering, and disconnection.
147*d57664e9SAndroid Build Coastguard Worker// This message is associated to android.net.metrics.NetworkEvent.
148*d57664e9SAndroid Build Coastguard Worker// Next tag: 4.
149*d57664e9SAndroid Build Coastguard Workermessage NetworkEvent {
150*d57664e9SAndroid Build Coastguard Worker  // The id of the network on which this event happened.
151*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3.
152*d57664e9SAndroid Build Coastguard Worker  optional NetworkId network_id = 1 [deprecated = true];
153*d57664e9SAndroid Build Coastguard Worker
154*d57664e9SAndroid Build Coastguard Worker  // The type of network event, represented by NETWORK_* constants defined in
155*d57664e9SAndroid Build Coastguard Worker  // android.net.metrics.NetworkEvent.
156*d57664e9SAndroid Build Coastguard Worker  optional int32 event_type = 2;
157*d57664e9SAndroid Build Coastguard Worker
158*d57664e9SAndroid Build Coastguard Worker  // Only valid after finishing evaluating a network for Internet connectivity.
159*d57664e9SAndroid Build Coastguard Worker  // The time it took for this evaluation to complete.
160*d57664e9SAndroid Build Coastguard Worker  optional int32 latency_ms = 3;
161*d57664e9SAndroid Build Coastguard Worker}
162*d57664e9SAndroid Build Coastguard Worker
163*d57664e9SAndroid Build Coastguard Worker// Logs individual captive portal probing events that are performed when
164*d57664e9SAndroid Build Coastguard Worker// evaluating or reevaluating networks for Internet connectivity.
165*d57664e9SAndroid Build Coastguard Worker// This message is associated to android.net.metrics.ValidationProbeEvent.
166*d57664e9SAndroid Build Coastguard Worker// Next tag: 5.
167*d57664e9SAndroid Build Coastguard Workermessage ValidationProbeEvent {
168*d57664e9SAndroid Build Coastguard Worker  // The id of the network for which the probe was sent.
169*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3.
170*d57664e9SAndroid Build Coastguard Worker  optional NetworkId network_id = 1 [deprecated = true];
171*d57664e9SAndroid Build Coastguard Worker
172*d57664e9SAndroid Build Coastguard Worker  // The time it took for that probe to complete or time out.
173*d57664e9SAndroid Build Coastguard Worker  optional int32 latency_ms = 2;
174*d57664e9SAndroid Build Coastguard Worker
175*d57664e9SAndroid Build Coastguard Worker  // The type of portal probe, represented by PROBE_* constants defined in
176*d57664e9SAndroid Build Coastguard Worker  // android.net.metrics.ValidationProbeEvent.
177*d57664e9SAndroid Build Coastguard Worker  optional int32 probe_type = 3;
178*d57664e9SAndroid Build Coastguard Worker
179*d57664e9SAndroid Build Coastguard Worker  // The http code result of the probe test.
180*d57664e9SAndroid Build Coastguard Worker  optional int32 probe_result = 4;
181*d57664e9SAndroid Build Coastguard Worker}
182*d57664e9SAndroid Build Coastguard Worker
183*d57664e9SAndroid Build Coastguard Worker// Logs DNS lookup latencies.
184*d57664e9SAndroid Build Coastguard Worker// This message is associated to android.net.metrics.DnsEvent.
185*d57664e9SAndroid Build Coastguard Worker// Next tag: 11
186*d57664e9SAndroid Build Coastguard Workermessage DNSLookupBatch {
187*d57664e9SAndroid Build Coastguard Worker
188*d57664e9SAndroid Build Coastguard Worker  // The time it took for successful DNS lookups to complete.
189*d57664e9SAndroid Build Coastguard Worker  // The number of repeated values can be less than getaddrinfo_query_count
190*d57664e9SAndroid Build Coastguard Worker  // + gethostbyname_query_count in case of event rate-limiting.
191*d57664e9SAndroid Build Coastguard Worker  repeated int32 latencies_ms = 4;
192*d57664e9SAndroid Build Coastguard Worker
193*d57664e9SAndroid Build Coastguard Worker  // The total number of getaddrinfo queries.
194*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
195*d57664e9SAndroid Build Coastguard Worker  optional int64 getaddrinfo_query_count = 5;
196*d57664e9SAndroid Build Coastguard Worker
197*d57664e9SAndroid Build Coastguard Worker  // The total number of gethostbyname queries.
198*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
199*d57664e9SAndroid Build Coastguard Worker  optional int64 gethostbyname_query_count = 6;
200*d57664e9SAndroid Build Coastguard Worker
201*d57664e9SAndroid Build Coastguard Worker  // The total number of getaddrinfo errors.
202*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
203*d57664e9SAndroid Build Coastguard Worker  optional int64 getaddrinfo_error_count = 7;
204*d57664e9SAndroid Build Coastguard Worker
205*d57664e9SAndroid Build Coastguard Worker  // The total number of gethostbyname errors.
206*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
207*d57664e9SAndroid Build Coastguard Worker  optional int64 gethostbyname_error_count = 8;
208*d57664e9SAndroid Build Coastguard Worker
209*d57664e9SAndroid Build Coastguard Worker  // Counts of all errors returned by getaddrinfo.
210*d57664e9SAndroid Build Coastguard Worker  // The Pair key field is the getaddrinfo error value.
211*d57664e9SAndroid Build Coastguard Worker  // The value field is the count for that return value.
212*d57664e9SAndroid Build Coastguard Worker  // Since version 4
213*d57664e9SAndroid Build Coastguard Worker  repeated Pair getaddrinfo_errors = 9;
214*d57664e9SAndroid Build Coastguard Worker
215*d57664e9SAndroid Build Coastguard Worker  // Counts of all errors returned by gethostbyname.
216*d57664e9SAndroid Build Coastguard Worker  // The Pair key field is the gethostbyname errno value.
217*d57664e9SAndroid Build Coastguard Worker  // the Pair value field is the count for that errno code.
218*d57664e9SAndroid Build Coastguard Worker  // Since version 4
219*d57664e9SAndroid Build Coastguard Worker  repeated Pair gethostbyname_errors = 10;
220*d57664e9SAndroid Build Coastguard Worker
221*d57664e9SAndroid Build Coastguard Worker
222*d57664e9SAndroid Build Coastguard Worker  // Deprecated fields
223*d57664e9SAndroid Build Coastguard Worker
224*d57664e9SAndroid Build Coastguard Worker  // The id of the network on which the DNS lookups took place.
225*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3.
226*d57664e9SAndroid Build Coastguard Worker  optional NetworkId network_id = 1 [deprecated = true];
227*d57664e9SAndroid Build Coastguard Worker
228*d57664e9SAndroid Build Coastguard Worker  // The types of the DNS lookups, as defined in android.net.metrics.DnsEvent.
229*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3.
230*d57664e9SAndroid Build Coastguard Worker  repeated int32 event_types = 2 [deprecated = true];
231*d57664e9SAndroid Build Coastguard Worker
232*d57664e9SAndroid Build Coastguard Worker  // The return values of the DNS resolver for each DNS lookups.
233*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 3.
234*d57664e9SAndroid Build Coastguard Worker  repeated int32 return_codes = 3 [deprecated = true];
235*d57664e9SAndroid Build Coastguard Worker};
236*d57664e9SAndroid Build Coastguard Worker
237*d57664e9SAndroid Build Coastguard Worker// Represents a collections of DNS lookup latencies and counters for a
238*d57664e9SAndroid Build Coastguard Worker// particular combination of DNS query type and return code.
239*d57664e9SAndroid Build Coastguard Worker// Since version 2.
240*d57664e9SAndroid Build Coastguard Worker// Next tag: 7.
241*d57664e9SAndroid Build Coastguard Workermessage DNSLatencies {
242*d57664e9SAndroid Build Coastguard Worker  // The type of the DNS lookups, as defined in android.net.metrics.DnsEvent.
243*d57664e9SAndroid Build Coastguard Worker  // Acts as a key for a set of DNS query results.
244*d57664e9SAndroid Build Coastguard Worker  // Possible values are: 0 for getaddrinfo, 1 for gethostbyname.
245*d57664e9SAndroid Build Coastguard Worker  optional int32 type = 1;
246*d57664e9SAndroid Build Coastguard Worker
247*d57664e9SAndroid Build Coastguard Worker  // The return value of the DNS resolver for the DNS lookups.
248*d57664e9SAndroid Build Coastguard Worker  // Acts as a key for a set of DNS query results.
249*d57664e9SAndroid Build Coastguard Worker  // Possible values are: 0 for success, or errno code for failures.
250*d57664e9SAndroid Build Coastguard Worker  optional int32 return_code = 2;
251*d57664e9SAndroid Build Coastguard Worker
252*d57664e9SAndroid Build Coastguard Worker  // The number of query operations recorded.
253*d57664e9SAndroid Build Coastguard Worker  optional int32 query_count = 3;
254*d57664e9SAndroid Build Coastguard Worker
255*d57664e9SAndroid Build Coastguard Worker  // The number of query operations returning A IPv4 records.
256*d57664e9SAndroid Build Coastguard Worker  optional int32 a_count = 4;
257*d57664e9SAndroid Build Coastguard Worker
258*d57664e9SAndroid Build Coastguard Worker  // The number of query operations returning AAAA IPv6 records.
259*d57664e9SAndroid Build Coastguard Worker  optional int32 aaaa_count = 5;
260*d57664e9SAndroid Build Coastguard Worker
261*d57664e9SAndroid Build Coastguard Worker  // The time it took for each DNS lookup to complete. The number of repeated
262*d57664e9SAndroid Build Coastguard Worker  // values can be less than query_count in case of event rate-limiting.
263*d57664e9SAndroid Build Coastguard Worker  repeated int32 latencies_ms = 6;
264*d57664e9SAndroid Build Coastguard Worker};
265*d57664e9SAndroid Build Coastguard Worker
266*d57664e9SAndroid Build Coastguard Worker// Represents latency and errno statistics of the connect() system call.
267*d57664e9SAndroid Build Coastguard Worker// Since version 2.
268*d57664e9SAndroid Build Coastguard Worker// Next tag: 7
269*d57664e9SAndroid Build Coastguard Workermessage ConnectStatistics {
270*d57664e9SAndroid Build Coastguard Worker  // The number of connect() operations recorded.
271*d57664e9SAndroid Build Coastguard Worker  optional int32 connect_count = 1;
272*d57664e9SAndroid Build Coastguard Worker
273*d57664e9SAndroid Build Coastguard Worker  // The number of connect() operations done in blocking mode.
274*d57664e9SAndroid Build Coastguard Worker  // Since version 3.
275*d57664e9SAndroid Build Coastguard Worker  optional int32 connect_blocking_count = 5;
276*d57664e9SAndroid Build Coastguard Worker
277*d57664e9SAndroid Build Coastguard Worker  // The number of connect() operations with IPv6 socket address.
278*d57664e9SAndroid Build Coastguard Worker  optional int32 ipv6_addr_count = 2;
279*d57664e9SAndroid Build Coastguard Worker
280*d57664e9SAndroid Build Coastguard Worker  // The time it took for successful blocking connect() operations to complete
281*d57664e9SAndroid Build Coastguard Worker  // The number of repeated values can be less than connect_blocking_count in
282*d57664e9SAndroid Build Coastguard Worker  // case of event rate-limiting.
283*d57664e9SAndroid Build Coastguard Worker  repeated int32 latencies_ms = 3;
284*d57664e9SAndroid Build Coastguard Worker
285*d57664e9SAndroid Build Coastguard Worker  // The time it took for successful connect() operation to complete in
286*d57664e9SAndroid Build Coastguard Worker  // non-blocking mode. The number of repeated values can be less than
287*d57664e9SAndroid Build Coastguard Worker  // connect_count - connect_blocking_count in case of event rate-limiting.
288*d57664e9SAndroid Build Coastguard Worker  repeated int32 non_blocking_latencies_ms = 6;
289*d57664e9SAndroid Build Coastguard Worker
290*d57664e9SAndroid Build Coastguard Worker  // Counts of all error values returned by failed connect() operations.
291*d57664e9SAndroid Build Coastguard Worker  // The Pair key field is the errno code. The Pair value field is the count
292*d57664e9SAndroid Build Coastguard Worker  // for that errno code.
293*d57664e9SAndroid Build Coastguard Worker  repeated Pair errnos_counters = 4;
294*d57664e9SAndroid Build Coastguard Worker};
295*d57664e9SAndroid Build Coastguard Worker
296*d57664e9SAndroid Build Coastguard Worker// Represents a DHCP event on a single interface, which can be a DHCPClient
297*d57664e9SAndroid Build Coastguard Worker// state transition or a response packet parsing error.
298*d57664e9SAndroid Build Coastguard Worker// This message is associated to android.net.metrics.DhcpClientEvent and
299*d57664e9SAndroid Build Coastguard Worker// android.net.metrics.DhcpErrorEvent.
300*d57664e9SAndroid Build Coastguard Worker// Next tag: 5
301*d57664e9SAndroid Build Coastguard Workermessage DHCPEvent {
302*d57664e9SAndroid Build Coastguard Worker  // The interface name (wlan, rmnet, lo, ...) on which the event happened.
303*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 2, to be replaced by link_layer field.
304*d57664e9SAndroid Build Coastguard Worker  optional string if_name = 1 [deprecated = true];
305*d57664e9SAndroid Build Coastguard Worker
306*d57664e9SAndroid Build Coastguard Worker  oneof value {
307*d57664e9SAndroid Build Coastguard Worker    // The name of a state in the DhcpClient state machine, represented by
308*d57664e9SAndroid Build Coastguard Worker    // the inner classes of android.net.dhcp.DhcpClient.
309*d57664e9SAndroid Build Coastguard Worker    string state_transition = 2;
310*d57664e9SAndroid Build Coastguard Worker
311*d57664e9SAndroid Build Coastguard Worker    // The error code of a DHCP error, represented by constants defined in
312*d57664e9SAndroid Build Coastguard Worker    // android.net.metrics.DhcpErrorEvent.
313*d57664e9SAndroid Build Coastguard Worker    int32 error_code = 3;
314*d57664e9SAndroid Build Coastguard Worker  }
315*d57664e9SAndroid Build Coastguard Worker
316*d57664e9SAndroid Build Coastguard Worker  // Lifetime duration in milliseconds of a DhcpClient state, or transition
317*d57664e9SAndroid Build Coastguard Worker  // time in milliseconds between specific pairs of DhcpClient's states.
318*d57664e9SAndroid Build Coastguard Worker  // Only populated since version 1, when state_transition is populated.
319*d57664e9SAndroid Build Coastguard Worker  optional int32 duration_ms = 4;
320*d57664e9SAndroid Build Coastguard Worker}
321*d57664e9SAndroid Build Coastguard Worker
322*d57664e9SAndroid Build Coastguard Worker// Represents the generation of an Android Packet Filter program.
323*d57664e9SAndroid Build Coastguard Worker// Since version 1.
324*d57664e9SAndroid Build Coastguard Worker// Next tag: 8
325*d57664e9SAndroid Build Coastguard Workermessage ApfProgramEvent {
326*d57664e9SAndroid Build Coastguard Worker  // Maximum lifetime of the program in seconds.
327*d57664e9SAndroid Build Coastguard Worker  optional int64 lifetime = 1;
328*d57664e9SAndroid Build Coastguard Worker
329*d57664e9SAndroid Build Coastguard Worker  // Effective lifetime of the program in seconds from the time the
330*d57664e9SAndroid Build Coastguard Worker  // program was installed to the time it was replaced or removed.
331*d57664e9SAndroid Build Coastguard Worker  optional int64 effective_lifetime = 7;
332*d57664e9SAndroid Build Coastguard Worker
333*d57664e9SAndroid Build Coastguard Worker  // Number of RAs filtered by the APF program.
334*d57664e9SAndroid Build Coastguard Worker  optional int32 filtered_ras = 2;
335*d57664e9SAndroid Build Coastguard Worker
336*d57664e9SAndroid Build Coastguard Worker  // Total number of RAs to filter currently tracked by ApfFilter. Can be more
337*d57664e9SAndroid Build Coastguard Worker  // than filtered_ras if all available program size was exhausted.
338*d57664e9SAndroid Build Coastguard Worker  optional int32 current_ras = 3;
339*d57664e9SAndroid Build Coastguard Worker
340*d57664e9SAndroid Build Coastguard Worker  // Length of the APF program in bytes.
341*d57664e9SAndroid Build Coastguard Worker  optional int32 program_length = 4;
342*d57664e9SAndroid Build Coastguard Worker
343*d57664e9SAndroid Build Coastguard Worker  // True if the APF program is dropping multicast and broadcast traffic.
344*d57664e9SAndroid Build Coastguard Worker  optional bool drop_multicast = 5;
345*d57664e9SAndroid Build Coastguard Worker
346*d57664e9SAndroid Build Coastguard Worker  // True if the interface on which APF runs has an IPv4 address.
347*d57664e9SAndroid Build Coastguard Worker  optional bool has_ipv4_addr = 6;
348*d57664e9SAndroid Build Coastguard Worker}
349*d57664e9SAndroid Build Coastguard Worker
350*d57664e9SAndroid Build Coastguard Worker// Represents Router Advertisement listening statistics for an interface with
351*d57664e9SAndroid Build Coastguard Worker// Android Packet Filter enabled.
352*d57664e9SAndroid Build Coastguard Worker// Since version 1.
353*d57664e9SAndroid Build Coastguard Worker// Next tag: 15
354*d57664e9SAndroid Build Coastguard Workermessage ApfStatistics {
355*d57664e9SAndroid Build Coastguard Worker  // The time interval in milliseconds these stastistics cover.
356*d57664e9SAndroid Build Coastguard Worker  optional int64 duration_ms = 1;
357*d57664e9SAndroid Build Coastguard Worker
358*d57664e9SAndroid Build Coastguard Worker  // The total number of received RAs.
359*d57664e9SAndroid Build Coastguard Worker  optional int32 received_ras = 2;
360*d57664e9SAndroid Build Coastguard Worker
361*d57664e9SAndroid Build Coastguard Worker  // The total number of received RAs that matched a known RA.
362*d57664e9SAndroid Build Coastguard Worker  optional int32 matching_ras = 3;
363*d57664e9SAndroid Build Coastguard Worker
364*d57664e9SAndroid Build Coastguard Worker  // The total number of received RAs ignored due to the MAX_RAS limit.
365*d57664e9SAndroid Build Coastguard Worker  optional int32 dropped_ras = 5;
366*d57664e9SAndroid Build Coastguard Worker
367*d57664e9SAndroid Build Coastguard Worker  // The total number of received RAs with an effective lifetime of 0 seconds.
368*d57664e9SAndroid Build Coastguard Worker  // Effective lifetime for APF is the minimum of all lifetimes in a RA.
369*d57664e9SAndroid Build Coastguard Worker  optional int32 zero_lifetime_ras = 6;
370*d57664e9SAndroid Build Coastguard Worker
371*d57664e9SAndroid Build Coastguard Worker  // The total number of received RAs that could not be parsed.
372*d57664e9SAndroid Build Coastguard Worker  optional int32 parse_errors = 7;
373*d57664e9SAndroid Build Coastguard Worker
374*d57664e9SAndroid Build Coastguard Worker  // The total number of APF program updates triggered by an RA reception.
375*d57664e9SAndroid Build Coastguard Worker  optional int32 program_updates = 8;
376*d57664e9SAndroid Build Coastguard Worker
377*d57664e9SAndroid Build Coastguard Worker  // The maximum APF program size in byte advertised by hardware.
378*d57664e9SAndroid Build Coastguard Worker  optional int32 max_program_size = 9;
379*d57664e9SAndroid Build Coastguard Worker
380*d57664e9SAndroid Build Coastguard Worker  // The total number of successful APF program updates triggered by any state
381*d57664e9SAndroid Build Coastguard Worker  // change in ApfFilter. Since version 3.
382*d57664e9SAndroid Build Coastguard Worker  optional int32 program_updates_all = 10;
383*d57664e9SAndroid Build Coastguard Worker
384*d57664e9SAndroid Build Coastguard Worker  // The total number of APF program updates triggered when disabling the
385*d57664e9SAndroid Build Coastguard Worker  // multicast filter. Since version 3.
386*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
387*d57664e9SAndroid Build Coastguard Worker  optional int32 program_updates_allowing_multicast = 11;
388*d57664e9SAndroid Build Coastguard Worker
389*d57664e9SAndroid Build Coastguard Worker  // The total number of packets processed by the APF interpreter.
390*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
391*d57664e9SAndroid Build Coastguard Worker  optional int32 total_packet_processed = 12;
392*d57664e9SAndroid Build Coastguard Worker
393*d57664e9SAndroid Build Coastguard Worker  // The total number of packets dropped by the APF interpreter.
394*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
395*d57664e9SAndroid Build Coastguard Worker  optional int32 total_packet_dropped = 13;
396*d57664e9SAndroid Build Coastguard Worker
397*d57664e9SAndroid Build Coastguard Worker  // List of hardware counters collected by the APF interpreter.
398*d57664e9SAndroid Build Coastguard Worker  // The Pair key is the counter id, defined in android.net.metrics.ApfStats.
399*d57664e9SAndroid Build Coastguard Worker  // The Pair value is the counter value.
400*d57664e9SAndroid Build Coastguard Worker  // Since version 4.
401*d57664e9SAndroid Build Coastguard Worker  repeated Pair hardware_counters = 14;
402*d57664e9SAndroid Build Coastguard Worker}
403*d57664e9SAndroid Build Coastguard Worker
404*d57664e9SAndroid Build Coastguard Worker// Represents the reception of a Router Advertisement packet for an interface
405*d57664e9SAndroid Build Coastguard Worker// with Android Packet Filter enabled.
406*d57664e9SAndroid Build Coastguard Worker// Since version 1.
407*d57664e9SAndroid Build Coastguard Worker// Next tag: 7.
408*d57664e9SAndroid Build Coastguard Workermessage RaEvent {
409*d57664e9SAndroid Build Coastguard Worker  // All lifetime values are expressed in seconds. The default value for an
410*d57664e9SAndroid Build Coastguard Worker  // option lifetime that was not present in the RA option list is -1.
411*d57664e9SAndroid Build Coastguard Worker  // The lifetime of an option (e.g., the Prefix Information Option) is the
412*d57664e9SAndroid Build Coastguard Worker  // minimum lifetime of all such options in the packet.
413*d57664e9SAndroid Build Coastguard Worker
414*d57664e9SAndroid Build Coastguard Worker  // The value of the router lifetime in the RA packet.
415*d57664e9SAndroid Build Coastguard Worker  optional int64 router_lifetime = 1;
416*d57664e9SAndroid Build Coastguard Worker
417*d57664e9SAndroid Build Coastguard Worker  // Prefix valid lifetime from the prefix information option.
418*d57664e9SAndroid Build Coastguard Worker  optional int64 prefix_valid_lifetime = 2;
419*d57664e9SAndroid Build Coastguard Worker
420*d57664e9SAndroid Build Coastguard Worker  // Prefix preferred lifetime from the prefix information option.
421*d57664e9SAndroid Build Coastguard Worker  optional int64 prefix_preferred_lifetime = 3;
422*d57664e9SAndroid Build Coastguard Worker
423*d57664e9SAndroid Build Coastguard Worker  // Route info lifetime.
424*d57664e9SAndroid Build Coastguard Worker  optional int64 route_info_lifetime = 4;
425*d57664e9SAndroid Build Coastguard Worker
426*d57664e9SAndroid Build Coastguard Worker  // Recursive DNS server lifetime.
427*d57664e9SAndroid Build Coastguard Worker  optional int64 rdnss_lifetime = 5;
428*d57664e9SAndroid Build Coastguard Worker
429*d57664e9SAndroid Build Coastguard Worker  // DNS search list lifetime.
430*d57664e9SAndroid Build Coastguard Worker  optional int64 dnssl_lifetime = 6;
431*d57664e9SAndroid Build Coastguard Worker}
432*d57664e9SAndroid Build Coastguard Worker
433*d57664e9SAndroid Build Coastguard Worker// Represents an IP provisioning event in IpManager and how long the
434*d57664e9SAndroid Build Coastguard Worker// provisioning action took.
435*d57664e9SAndroid Build Coastguard Worker// This message is associated to android.net.metrics.IpManagerEvent.
436*d57664e9SAndroid Build Coastguard Worker// Next tag: 4.
437*d57664e9SAndroid Build Coastguard Workermessage IpProvisioningEvent {
438*d57664e9SAndroid Build Coastguard Worker  // The interface name (wlan, rmnet, lo, ...) on which the probe was sent.
439*d57664e9SAndroid Build Coastguard Worker  // Deprecated since version 2, to be replaced by link_layer field.
440*d57664e9SAndroid Build Coastguard Worker  optional string if_name = 1 [deprecated = true];
441*d57664e9SAndroid Build Coastguard Worker
442*d57664e9SAndroid Build Coastguard Worker  // The code of the IP provisioning event, represented by constants defined in
443*d57664e9SAndroid Build Coastguard Worker  // android.net.metrics.IpManagerEvent.
444*d57664e9SAndroid Build Coastguard Worker  optional int32 event_type = 2;
445*d57664e9SAndroid Build Coastguard Worker
446*d57664e9SAndroid Build Coastguard Worker  // The duration of the provisioning action that resulted in this event.
447*d57664e9SAndroid Build Coastguard Worker  optional int32 latency_ms = 3;
448*d57664e9SAndroid Build Coastguard Worker}
449*d57664e9SAndroid Build Coastguard Worker
450*d57664e9SAndroid Build Coastguard Worker// Represents statistics from a single android Network.
451*d57664e9SAndroid Build Coastguard Worker// Since version 4. Replace NetworkEvent.
452*d57664e9SAndroid Build Coastguard Worker// Next tag: 9.
453*d57664e9SAndroid Build Coastguard Workermessage NetworkStats {
454*d57664e9SAndroid Build Coastguard Worker
455*d57664e9SAndroid Build Coastguard Worker  // Duration of this Network lifecycle in milliseconds.
456*d57664e9SAndroid Build Coastguard Worker  optional int64 duration_ms = 1;
457*d57664e9SAndroid Build Coastguard Worker
458*d57664e9SAndroid Build Coastguard Worker  // Information about IP support of this network.
459*d57664e9SAndroid Build Coastguard Worker  optional DefaultNetworkEvent.IPSupport ip_support = 2;
460*d57664e9SAndroid Build Coastguard Worker
461*d57664e9SAndroid Build Coastguard Worker  // True if the network was validated at least once.
462*d57664e9SAndroid Build Coastguard Worker  optional bool ever_validated = 3;
463*d57664e9SAndroid Build Coastguard Worker
464*d57664e9SAndroid Build Coastguard Worker  // True if a captive portal was found at least once on this network.
465*d57664e9SAndroid Build Coastguard Worker  optional bool portal_found = 4;
466*d57664e9SAndroid Build Coastguard Worker
467*d57664e9SAndroid Build Coastguard Worker  // Total number of times no connectivity was reported for this network.
468*d57664e9SAndroid Build Coastguard Worker  optional int32 no_connectivity_reports = 5;
469*d57664e9SAndroid Build Coastguard Worker
470*d57664e9SAndroid Build Coastguard Worker  // Total number of validation attempts.
471*d57664e9SAndroid Build Coastguard Worker  optional int32 validation_attempts = 6;
472*d57664e9SAndroid Build Coastguard Worker
473*d57664e9SAndroid Build Coastguard Worker  // Results from all validation attempts.
474*d57664e9SAndroid Build Coastguard Worker  // The Pair key is the result:
475*d57664e9SAndroid Build Coastguard Worker  //    0 -> unvalidated
476*d57664e9SAndroid Build Coastguard Worker  //    1 -> validated
477*d57664e9SAndroid Build Coastguard Worker  //    2 -> captive portal
478*d57664e9SAndroid Build Coastguard Worker  // The Pair value is the duration of the validation attempts in milliseconds.
479*d57664e9SAndroid Build Coastguard Worker  repeated Pair validation_events = 7;
480*d57664e9SAndroid Build Coastguard Worker
481*d57664e9SAndroid Build Coastguard Worker  // Time series of validation states in time order.
482*d57664e9SAndroid Build Coastguard Worker  // The Pair key is the state:
483*d57664e9SAndroid Build Coastguard Worker  //    0 -> unvalidated
484*d57664e9SAndroid Build Coastguard Worker  //    1 -> validated
485*d57664e9SAndroid Build Coastguard Worker  //    2 -> captive portal,
486*d57664e9SAndroid Build Coastguard Worker  // The Pair value is the duration of that state in milliseconds.
487*d57664e9SAndroid Build Coastguard Worker  repeated Pair validation_states = 8;
488*d57664e9SAndroid Build Coastguard Worker}
489*d57664e9SAndroid Build Coastguard Worker
490*d57664e9SAndroid Build Coastguard Worker// Represents statistics from NFLOG wakeup events due to ingress packets.
491*d57664e9SAndroid Build Coastguard Worker// Since oc-mr1.
492*d57664e9SAndroid Build Coastguard Worker// Next tag: 13.
493*d57664e9SAndroid Build Coastguard Workermessage WakeupStats {
494*d57664e9SAndroid Build Coastguard Worker  // The time duration in seconds covered by these stats, for deriving
495*d57664e9SAndroid Build Coastguard Worker  // exact wakeup rates.
496*d57664e9SAndroid Build Coastguard Worker  optional int64 duration_sec = 1;
497*d57664e9SAndroid Build Coastguard Worker
498*d57664e9SAndroid Build Coastguard Worker  // The total number of ingress packets waking up the device.
499*d57664e9SAndroid Build Coastguard Worker  optional int64 total_wakeups = 2;
500*d57664e9SAndroid Build Coastguard Worker
501*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets routed to a socket belonging to
502*d57664e9SAndroid Build Coastguard Worker  // the root uid (uid 0).
503*d57664e9SAndroid Build Coastguard Worker  optional int64 root_wakeups = 3;
504*d57664e9SAndroid Build Coastguard Worker
505*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets routed to a socket belonging to
506*d57664e9SAndroid Build Coastguard Worker  // the system server (uid 1000).
507*d57664e9SAndroid Build Coastguard Worker  optional int64 system_wakeups = 4;
508*d57664e9SAndroid Build Coastguard Worker
509*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets routed to a socket belonging to
510*d57664e9SAndroid Build Coastguard Worker  // an application (uid > 9999).
511*d57664e9SAndroid Build Coastguard Worker  optional int64 application_wakeups = 5;
512*d57664e9SAndroid Build Coastguard Worker
513*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets routed to a socket belonging to another
514*d57664e9SAndroid Build Coastguard Worker  // uid than the root uid, system uid, or an application uid (any uid in
515*d57664e9SAndroid Build Coastguard Worker  // between [1001, 9999]. See android.os.Process for possible uids.
516*d57664e9SAndroid Build Coastguard Worker  optional int64 non_application_wakeups = 6;
517*d57664e9SAndroid Build Coastguard Worker
518*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets with no associated socket or uid.
519*d57664e9SAndroid Build Coastguard Worker  optional int64 no_uid_wakeups = 7;
520*d57664e9SAndroid Build Coastguard Worker
521*d57664e9SAndroid Build Coastguard Worker  // Counts of all different ethertype values from wakeup packets received.
522*d57664e9SAndroid Build Coastguard Worker  repeated Pair ethertype_counts = 8;
523*d57664e9SAndroid Build Coastguard Worker
524*d57664e9SAndroid Build Coastguard Worker  // Counts of all different IP next header values from wakeup packets received.
525*d57664e9SAndroid Build Coastguard Worker  repeated Pair ip_next_header_counts = 9;
526*d57664e9SAndroid Build Coastguard Worker
527*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets whose destination hardware address was
528*d57664e9SAndroid Build Coastguard Worker  // a unicast address.
529*d57664e9SAndroid Build Coastguard Worker  optional int64 l2_unicast_count = 10;
530*d57664e9SAndroid Build Coastguard Worker
531*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets whose destination hardware address was
532*d57664e9SAndroid Build Coastguard Worker  // a multicast address.
533*d57664e9SAndroid Build Coastguard Worker  optional int64 l2_multicast_count = 11;
534*d57664e9SAndroid Build Coastguard Worker
535*d57664e9SAndroid Build Coastguard Worker  // The total number of wakeup packets whose destination hardware address was
536*d57664e9SAndroid Build Coastguard Worker  // a broadcast address.
537*d57664e9SAndroid Build Coastguard Worker  optional int64 l2_broadcast_count = 12;
538*d57664e9SAndroid Build Coastguard Worker}
539*d57664e9SAndroid Build Coastguard Worker
540*d57664e9SAndroid Build Coastguard Worker// Represents one of the IP connectivity event defined in this file.
541*d57664e9SAndroid Build Coastguard Worker// Next tag: 20
542*d57664e9SAndroid Build Coastguard Workermessage IpConnectivityEvent {
543*d57664e9SAndroid Build Coastguard Worker  // Time in ms when the event was recorded.
544*d57664e9SAndroid Build Coastguard Worker  optional int64 time_ms = 1;
545*d57664e9SAndroid Build Coastguard Worker
546*d57664e9SAndroid Build Coastguard Worker  // Physical link layer of the network on which the event happened.
547*d57664e9SAndroid Build Coastguard Worker  // Acts as a dimension key.
548*d57664e9SAndroid Build Coastguard Worker  // Since version 2.
549*d57664e9SAndroid Build Coastguard Worker  optional LinkLayer link_layer = 15;
550*d57664e9SAndroid Build Coastguard Worker
551*d57664e9SAndroid Build Coastguard Worker  // Represents the id given by the system to a physical network on the device.
552*d57664e9SAndroid Build Coastguard Worker  // Every network gets assigned a unique id on creation from a monotonic
553*d57664e9SAndroid Build Coastguard Worker  // counter. The value 0 is never assigned to a network and means no network.
554*d57664e9SAndroid Build Coastguard Worker  // It is used to correlate different types of events to each other for devices
555*d57664e9SAndroid Build Coastguard Worker  // with multiple networks (WiFi, 4G, ...).
556*d57664e9SAndroid Build Coastguard Worker  // Since version 3.
557*d57664e9SAndroid Build Coastguard Worker  optional int32 network_id = 16;
558*d57664e9SAndroid Build Coastguard Worker
559*d57664e9SAndroid Build Coastguard Worker  // The interface name (wlan, rmnet, lo, ...) on which the event happened.
560*d57664e9SAndroid Build Coastguard Worker  // Present if the link_layer field was not inferred from the if_name on
561*d57664e9SAndroid Build Coastguard Worker  // the device, so that post-processing of the serialized proto can backfill
562*d57664e9SAndroid Build Coastguard Worker  // link_layer. Since version 3.
563*d57664e9SAndroid Build Coastguard Worker  optional string if_name = 17;
564*d57664e9SAndroid Build Coastguard Worker
565*d57664e9SAndroid Build Coastguard Worker  // The transport types of the network on which the event happened, expressed
566*d57664e9SAndroid Build Coastguard Worker  // as a bit field of TRANSPORT_* constants as defined in NetworkCapabilities.
567*d57664e9SAndroid Build Coastguard Worker  // Present if the link_layer field was not inferred from the transport types,
568*d57664e9SAndroid Build Coastguard Worker  // so that post-processing of the serialized proto can backfill link_layer
569*d57664e9SAndroid Build Coastguard Worker  // Since version 3.
570*d57664e9SAndroid Build Coastguard Worker  optional int64 transports = 18;
571*d57664e9SAndroid Build Coastguard Worker
572*d57664e9SAndroid Build Coastguard Worker  oneof event {
573*d57664e9SAndroid Build Coastguard Worker
574*d57664e9SAndroid Build Coastguard Worker    // An event about the system default network.
575*d57664e9SAndroid Build Coastguard Worker    DefaultNetworkEvent default_network_event = 2;
576*d57664e9SAndroid Build Coastguard Worker
577*d57664e9SAndroid Build Coastguard Worker    // An IP reachability probe event.
578*d57664e9SAndroid Build Coastguard Worker    IpReachabilityEvent ip_reachability_event = 3;
579*d57664e9SAndroid Build Coastguard Worker
580*d57664e9SAndroid Build Coastguard Worker    // A network lifecycle event.
581*d57664e9SAndroid Build Coastguard Worker    NetworkEvent network_event = 4 [deprecated = true];
582*d57664e9SAndroid Build Coastguard Worker
583*d57664e9SAndroid Build Coastguard Worker    // A batch of DNS lookups.
584*d57664e9SAndroid Build Coastguard Worker    // Deprecated in the nyc-mr2 release since version 2,and replaced by
585*d57664e9SAndroid Build Coastguard Worker    // dns_latencies.
586*d57664e9SAndroid Build Coastguard Worker    DNSLookupBatch dns_lookup_batch = 5 [deprecated = true];
587*d57664e9SAndroid Build Coastguard Worker
588*d57664e9SAndroid Build Coastguard Worker    // DNS lookup latency statistics.
589*d57664e9SAndroid Build Coastguard Worker    DNSLatencies dns_latencies = 13;
590*d57664e9SAndroid Build Coastguard Worker
591*d57664e9SAndroid Build Coastguard Worker    // Connect latency and errno statistics.
592*d57664e9SAndroid Build Coastguard Worker    ConnectStatistics connect_statistics = 14;
593*d57664e9SAndroid Build Coastguard Worker
594*d57664e9SAndroid Build Coastguard Worker    // A DHCP client event or DHCP receive error.
595*d57664e9SAndroid Build Coastguard Worker    DHCPEvent dhcp_event = 6;
596*d57664e9SAndroid Build Coastguard Worker
597*d57664e9SAndroid Build Coastguard Worker    // An IP provisioning event.
598*d57664e9SAndroid Build Coastguard Worker    IpProvisioningEvent ip_provisioning_event = 7;
599*d57664e9SAndroid Build Coastguard Worker
600*d57664e9SAndroid Build Coastguard Worker    // A network validation probe event.
601*d57664e9SAndroid Build Coastguard Worker    ValidationProbeEvent validation_probe_event = 8;
602*d57664e9SAndroid Build Coastguard Worker
603*d57664e9SAndroid Build Coastguard Worker    // An Android Packet Filter program event.
604*d57664e9SAndroid Build Coastguard Worker    ApfProgramEvent apf_program_event = 9;
605*d57664e9SAndroid Build Coastguard Worker
606*d57664e9SAndroid Build Coastguard Worker    // An Android Packet Filter statistics event.
607*d57664e9SAndroid Build Coastguard Worker    ApfStatistics apf_statistics = 10;
608*d57664e9SAndroid Build Coastguard Worker
609*d57664e9SAndroid Build Coastguard Worker    // An RA packet reception event.
610*d57664e9SAndroid Build Coastguard Worker    RaEvent ra_event = 11;
611*d57664e9SAndroid Build Coastguard Worker
612*d57664e9SAndroid Build Coastguard Worker    // Network statistics.
613*d57664e9SAndroid Build Coastguard Worker    NetworkStats network_stats = 19;
614*d57664e9SAndroid Build Coastguard Worker
615*d57664e9SAndroid Build Coastguard Worker    // Ingress packet wakeup statistics.
616*d57664e9SAndroid Build Coastguard Worker    WakeupStats wakeup_stats = 20;
617*d57664e9SAndroid Build Coastguard Worker  };
618*d57664e9SAndroid Build Coastguard Worker};
619*d57664e9SAndroid Build Coastguard Worker
620*d57664e9SAndroid Build Coastguard Worker// The information about IP connectivity events.
621*d57664e9SAndroid Build Coastguard Worker// Next tag: 4.
622*d57664e9SAndroid Build Coastguard Workermessage IpConnectivityLog {
623*d57664e9SAndroid Build Coastguard Worker  // An array of IP connectivity events.
624*d57664e9SAndroid Build Coastguard Worker  repeated IpConnectivityEvent events = 1;
625*d57664e9SAndroid Build Coastguard Worker
626*d57664e9SAndroid Build Coastguard Worker  // The number of events that had to be dropped due to a full buffer.
627*d57664e9SAndroid Build Coastguard Worker  optional int32 dropped_events = 2;
628*d57664e9SAndroid Build Coastguard Worker
629*d57664e9SAndroid Build Coastguard Worker  // The version number of the metrics events being collected.
630*d57664e9SAndroid Build Coastguard Worker  //  nyc:     not populated, implicitly 0.
631*d57664e9SAndroid Build Coastguard Worker  //  nyc-dr1: not populated, implicitly 1 (sailfish and marlin only).
632*d57664e9SAndroid Build Coastguard Worker  //  nyc-mr1: not populated, implicitly 1.
633*d57664e9SAndroid Build Coastguard Worker  //  nyc-mr2: 2.
634*d57664e9SAndroid Build Coastguard Worker  //  oc:      3.
635*d57664e9SAndroid Build Coastguard Worker  //  oc-dr1:  4. (sailfish, marlin, walleye, taimen)
636*d57664e9SAndroid Build Coastguard Worker  optional int32 version = 3;
637*d57664e9SAndroid Build Coastguard Worker};
638