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