| /* |
| * Copyright (C) 2019 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| syntax = "proto2"; |
| package android.stats.connectivity; |
| import "frameworks/base/core/proto/android/net/networkcapabilities.proto"; |
| |
| enum EventType { |
| EVENT_UNKNOWN = 0; |
| EVENT_GETADDRINFO = 1; |
| EVENT_GETHOSTBYNAME = 2; |
| EVENT_GETHOSTBYADDR = 3; |
| EVENT_RES_NSEND = 4; |
| } |
| |
| enum PrivateDnsModes { |
| OFF = 0; |
| OPPORTUNISTIC = 1; |
| STRICT = 2; |
| } |
| // The return value of the DNS resolver for each DNS lookups. |
| // bionic/libc/include/netdb.h |
| // system/netd/resolv/include/netd_resolv/resolv.h |
| enum ReturnCode { |
| RC_EAI_NO_ERROR = 0; |
| RC_EAI_ADDRFAMILY = 1; |
| RC_EAI_AGAIN = 2; |
| RC_EAI_BADFLAGS = 3; |
| RC_EAI_FAIL = 4; |
| RC_EAI_FAMILY = 5; |
| RC_EAI_MEMORY = 6; |
| RC_EAI_NODATA = 7; |
| RC_EAI_NONAME = 8; |
| RC_EAI_SERVICE = 9; |
| RC_EAI_SOCKTYPE = 10; |
| RC_EAI_SYSTEM = 11; |
| RC_EAI_BADHINTS = 12; |
| RC_EAI_PROTOCOL = 13; |
| RC_EAI_OVERFLOW = 14; |
| RC_RESOLV_TIMEOUT = 255; |
| RC_EAI_MAX = 256; |
| } |
| |
| |
| enum NsRcode { |
| ns_r_noerror = 0; // No error occurred. |
| ns_r_formerr = 1; // Format error. |
| ns_r_servfail = 2; // Server failure. |
| ns_r_nxdomain = 3; // Name error. |
| ns_r_notimpl = 4; // Unimplemented. |
| ns_r_refused = 5; // Operation refused. |
| // these are for BIND_UPDATE |
| ns_r_yxdomain = 6; // Name exists |
| ns_r_yxrrset = 7; // RRset exists |
| ns_r_nxrrset = 8; // RRset does not exist |
| ns_r_notauth = 9; // Not authoritative for zone |
| ns_r_notzone = 10; // Zone of record different from zone section |
| ns_r_max = 11; |
| // The following are EDNS extended rcodes |
| ns_r_badvers = 16; |
| // The following are TSIG errors |
| //ns_r_badsig = 16, |
| ns_r_badkey = 17; |
| ns_r_badtime = 18; |
| } |
| |
| // Currently defined type values for resources and queries. |
| enum NsType { |
| ns_t_invalid = 0; // Cookie. |
| ns_t_a = 1; // Host address. |
| ns_t_ns = 2; // Authoritative server. |
| ns_t_md = 3; // Mail destination. |
| ns_t_mf = 4; // Mail forwarder. |
| ns_t_cname = 5; // Canonical name. |
| ns_t_soa = 6; // Start of authority zone. |
| ns_t_mb = 7; // Mailbox domain name. |
| ns_t_mg = 8; // Mail group member. |
| ns_t_mr = 9; // Mail rename name. |
| ns_t_null = 10; // Null resource record. |
| ns_t_wks = 11; // Well known service. |
| ns_t_ptr = 12; // Domain name pointer. |
| ns_t_hinfo = 13; // Host information. |
| ns_t_minfo = 14; // Mailbox information. |
| ns_t_mx = 15; // Mail routing information. |
| ns_t_txt = 16; // Text strings. |
| ns_t_rp = 17; // Responsible person. |
| ns_t_afsdb = 18; // AFS cell database. |
| ns_t_x25 = 19; // X_25 calling address. |
| ns_t_isdn = 20; // ISDN calling address. |
| ns_t_rt = 21; // Router. |
| ns_t_nsap = 22; // NSAP address. |
| ns_t_nsap_ptr = 23; // Reverse NSAP lookup (deprecated). |
| ns_t_sig = 24; // Security signature. |
| ns_t_key = 25; // Security key. |
| ns_t_px = 26; // X.400 mail mapping. |
| ns_t_gpos = 27; // Geographical position (withdrawn). |
| ns_t_aaaa = 28; // IPv6 Address. |
| ns_t_loc = 29; // Location Information. |
| ns_t_nxt = 30; // Next domain (security). |
| ns_t_eid = 31; // Endpoint identifier. |
| ns_t_nimloc = 32; // Nimrod Locator. |
| ns_t_srv = 33; // Server Selection. |
| ns_t_atma = 34; // ATM Address |
| ns_t_naptr = 35; // Naming Authority PoinTeR |
| ns_t_kx = 36; // Key Exchange |
| ns_t_cert = 37; // Certification record |
| ns_t_a6 = 38; // IPv6 address (experimental) |
| ns_t_dname = 39; // Non-terminal DNAME |
| ns_t_sink = 40; // Kitchen sink (experimentatl) |
| ns_t_opt = 41; // EDNS0 option (meta-RR) |
| ns_t_apl = 42; // Address prefix list (RFC 3123) |
| ns_t_ds = 43; // Delegation Signer |
| ns_t_sshfp = 44; // SSH Fingerprint |
| ns_t_ipseckey = 45; // IPSEC Key |
| ns_t_rrsig = 46; // RRset Signature |
| ns_t_nsec = 47; // Negative security |
| ns_t_dnskey = 48; // DNS Key |
| ns_t_dhcid = 49; // Dynamic host configuratin identifier |
| ns_t_nsec3 = 50; // Negative security type 3 |
| ns_t_nsec3param = 51;// Negative security type 3 parameters |
| ns_t_hip = 55; // Host Identity Protocol |
| ns_t_spf = 99; // Sender Policy Framework |
| ns_t_tkey = 249; // Transaction key |
| ns_t_tsig = 250; // Transaction signature. |
| ns_t_ixfr = 251; // Incremental zone transfer. |
| ns_t_axfr = 252; // Transfer zone of authority. |
| ns_t_mailb = 253; // Transfer mailbox records. |
| ns_t_maila = 254; // Transfer mail agent records. |
| ns_t_any = 255; // Wildcard match. |
| ns_t_zxfr = 256; // BIND-specific, nonstandard. |
| ns_t_dlv = 32769; // DNSSEC look-aside validatation. |
| ns_t_max = 65536; |
| } |
| |
| enum IpVersion { |
| IPV4 = 0; |
| IPV6 = 1; |
| MIXED = 2; |
| } |
| |
| enum TransportType { |
| UDP = 0; |
| TCP = 1; |
| DOT = 2; |
| DOT_UDP = 3; |
| DOT_TCP = 4; |
| } |
| |
| message DnsQueryEvent { |
| optional NsRcode rrcode = 1; |
| optional NsType rrtype = 2; |
| optional bool cache_hit = 3; |
| optional IpVersion ipversion = 4; |
| optional TransportType transport = 5; |
| optional int32 packet_retransmits = 6; // Used only by the UDP transport |
| optional int32 reconnects = 7; // Used only by TCP and DOT |
| optional int32 latency_micros = 8; |
| optional int32 active_experiments = 9; |
| optional android.net.NetworkCapabilitiesProto.Transport network_type = 10; |
| } |
| |
| message DnsQueryEventRe { |
| repeated DnsQueryEvent dns_query_event = 1; |
| } |
| |
| |
| message DnsCallEvent { |
| |
| } |
| |