1*4a64e381SAndroid Build Coastguard Worker/* 2*4a64e381SAndroid Build Coastguard Worker * Copyright (c) 2023, The OpenThread Authors. 3*4a64e381SAndroid Build Coastguard Worker * All rights reserved. 4*4a64e381SAndroid Build Coastguard Worker * 5*4a64e381SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*4a64e381SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions are met: 7*4a64e381SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 8*4a64e381SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 9*4a64e381SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 10*4a64e381SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 11*4a64e381SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 12*4a64e381SAndroid Build Coastguard Worker * 3. Neither the name of the copyright holder nor the 13*4a64e381SAndroid Build Coastguard Worker * names of its contributors may be used to endorse or promote products 14*4a64e381SAndroid Build Coastguard Worker * derived from this software without specific prior written permission. 15*4a64e381SAndroid Build Coastguard Worker * 16*4a64e381SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17*4a64e381SAndroid Build Coastguard Worker * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*4a64e381SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*4a64e381SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20*4a64e381SAndroid Build Coastguard Worker * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*4a64e381SAndroid Build Coastguard Worker * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*4a64e381SAndroid Build Coastguard Worker * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*4a64e381SAndroid Build Coastguard Worker * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*4a64e381SAndroid Build Coastguard Worker * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*4a64e381SAndroid Build Coastguard Worker * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*4a64e381SAndroid Build Coastguard Worker * POSSIBILITY OF SUCH DAMAGE. 27*4a64e381SAndroid Build Coastguard Worker */ 28*4a64e381SAndroid Build Coastguard Worker 29*4a64e381SAndroid Build Coastguard Workersyntax = "proto2"; 30*4a64e381SAndroid Build Coastguard Worker 31*4a64e381SAndroid Build Coastguard Workerpackage android.os.statsd.threadnetwork; 32*4a64e381SAndroid Build Coastguard Worker 33*4a64e381SAndroid Build Coastguard Workeroption java_package = "com.android.os.threadnetwork"; 34*4a64e381SAndroid Build Coastguard Workeroption java_multiple_files = true; 35*4a64e381SAndroid Build Coastguard Worker 36*4a64e381SAndroid Build Coastguard Worker// Thread Telemetry data definition. 37*4a64e381SAndroid Build Coastguard Workermessage ThreadnetworkTelemetryDataReported { 38*4a64e381SAndroid Build Coastguard Worker message WpanStats { 39*4a64e381SAndroid Build Coastguard Worker optional int32 phy_rx = 1; 40*4a64e381SAndroid Build Coastguard Worker optional int32 phy_tx = 2; 41*4a64e381SAndroid Build Coastguard Worker optional int32 mac_unicast_rx = 3; 42*4a64e381SAndroid Build Coastguard Worker optional int32 mac_unicast_tx = 4; 43*4a64e381SAndroid Build Coastguard Worker optional int32 mac_broadcast_rx = 5; 44*4a64e381SAndroid Build Coastguard Worker optional int32 mac_broadcast_tx = 6; 45*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_ack_req = 7; 46*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_no_ack_req = 8; 47*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_acked = 9; 48*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_data = 10; 49*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_data_poll = 11; 50*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_beacon = 12; 51*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_beacon_req = 13; 52*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_other_pkt = 14; 53*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_retry = 15; 54*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_data = 16; 55*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_data_poll = 17; 56*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_beacon = 18; 57*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_beacon_req = 19; 58*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_other_pkt = 20; 59*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_filter_whitelist = 21; 60*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_filter_dest_addr = 22; 61*4a64e381SAndroid Build Coastguard Worker optional int32 mac_tx_fail_cca = 23; 62*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_fail_decrypt = 24; 63*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_fail_no_frame = 25; 64*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_fail_unknown_neighbor = 26; 65*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_fail_invalid_src_addr = 27; 66*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_fail_fcs = 28; 67*4a64e381SAndroid Build Coastguard Worker optional int32 mac_rx_fail_other = 29; 68*4a64e381SAndroid Build Coastguard Worker optional int32 ip_tx_success = 30; 69*4a64e381SAndroid Build Coastguard Worker optional int32 ip_rx_success = 31; 70*4a64e381SAndroid Build Coastguard Worker optional int32 ip_tx_failure = 32; 71*4a64e381SAndroid Build Coastguard Worker optional int32 ip_rx_failure = 33; 72*4a64e381SAndroid Build Coastguard Worker optional uint32 node_type = 34; 73*4a64e381SAndroid Build Coastguard Worker optional uint32 channel = 35; 74*4a64e381SAndroid Build Coastguard Worker optional int32 radio_tx_power = 36; 75*4a64e381SAndroid Build Coastguard Worker optional float mac_cca_fail_rate = 37; 76*4a64e381SAndroid Build Coastguard Worker } 77*4a64e381SAndroid Build Coastguard Worker 78*4a64e381SAndroid Build Coastguard Worker message WpanTopoFull { 79*4a64e381SAndroid Build Coastguard Worker optional uint32 rloc16 = 1; 80*4a64e381SAndroid Build Coastguard Worker optional uint32 router_id = 2; 81*4a64e381SAndroid Build Coastguard Worker optional uint32 leader_router_id = 3; 82*4a64e381SAndroid Build Coastguard Worker optional uint32 leader_rloc16 = 4; // replaced optional bytes leader_address = 5; 83*4a64e381SAndroid Build Coastguard Worker optional uint32 leader_weight = 5; 84*4a64e381SAndroid Build Coastguard Worker optional uint32 leader_local_weight = 6; 85*4a64e381SAndroid Build Coastguard Worker optional uint32 preferred_router_id = 7; 86*4a64e381SAndroid Build Coastguard Worker optional uint32 partition_id = 8; 87*4a64e381SAndroid Build Coastguard Worker optional uint32 child_table_size = 9; 88*4a64e381SAndroid Build Coastguard Worker optional uint32 neighbor_table_size = 10; 89*4a64e381SAndroid Build Coastguard Worker optional int32 instant_rssi = 11; 90*4a64e381SAndroid Build Coastguard Worker optional bool has_extended_pan_id = 12; 91*4a64e381SAndroid Build Coastguard Worker optional bool is_active_br = 13; 92*4a64e381SAndroid Build Coastguard Worker optional bool is_active_srp_server = 14; 93*4a64e381SAndroid Build Coastguard Worker optional uint32 sum_on_link_prefix_changes = 15; 94*4a64e381SAndroid Build Coastguard Worker } 95*4a64e381SAndroid Build Coastguard Worker 96*4a64e381SAndroid Build Coastguard Worker enum NodeType { 97*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_UNSPECIFIED = 0; 98*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_ROUTER = 1; 99*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_END = 2; 100*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_SLEEPY_END = 3; 101*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_MINIMAL_END = 4; 102*4a64e381SAndroid Build Coastguard Worker 103*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_OFFLINE = 5; 104*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_DISABLED = 6; 105*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_DETACHED = 7; 106*4a64e381SAndroid Build Coastguard Worker 107*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_NL_LURKER = 0x10; 108*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_COMMISSIONER = 0x20; 109*4a64e381SAndroid Build Coastguard Worker NODE_TYPE_LEADER = 0x40; 110*4a64e381SAndroid Build Coastguard Worker } 111*4a64e381SAndroid Build Coastguard Worker 112*4a64e381SAndroid Build Coastguard Worker message PacketsAndBytes { 113*4a64e381SAndroid Build Coastguard Worker optional int64 packet_count = 1; 114*4a64e381SAndroid Build Coastguard Worker optional int64 byte_count = 2; 115*4a64e381SAndroid Build Coastguard Worker } 116*4a64e381SAndroid Build Coastguard Worker 117*4a64e381SAndroid Build Coastguard Worker message Nat64TrafficCounters { 118*4a64e381SAndroid Build Coastguard Worker optional int64 ipv4_to_ipv6_packets = 1; 119*4a64e381SAndroid Build Coastguard Worker optional int64 ipv4_to_ipv6_bytes = 2; 120*4a64e381SAndroid Build Coastguard Worker optional int64 ipv6_to_ipv4_packets = 3; 121*4a64e381SAndroid Build Coastguard Worker optional int64 ipv6_to_ipv4_bytes = 4; 122*4a64e381SAndroid Build Coastguard Worker } 123*4a64e381SAndroid Build Coastguard Worker 124*4a64e381SAndroid Build Coastguard Worker message Nat64ProtocolCounters { 125*4a64e381SAndroid Build Coastguard Worker optional Nat64TrafficCounters tcp = 1; 126*4a64e381SAndroid Build Coastguard Worker optional Nat64TrafficCounters udp = 2; 127*4a64e381SAndroid Build Coastguard Worker optional Nat64TrafficCounters icmp = 3; 128*4a64e381SAndroid Build Coastguard Worker } 129*4a64e381SAndroid Build Coastguard Worker 130*4a64e381SAndroid Build Coastguard Worker message Nat64PacketCounters { 131*4a64e381SAndroid Build Coastguard Worker optional int64 ipv4_to_ipv6_packets = 1; 132*4a64e381SAndroid Build Coastguard Worker optional int64 ipv6_to_ipv4_packets = 2; 133*4a64e381SAndroid Build Coastguard Worker } 134*4a64e381SAndroid Build Coastguard Worker 135*4a64e381SAndroid Build Coastguard Worker message Nat64ErrorCounters { 136*4a64e381SAndroid Build Coastguard Worker optional Nat64PacketCounters unknown = 1; 137*4a64e381SAndroid Build Coastguard Worker optional Nat64PacketCounters illegal_packet = 2; 138*4a64e381SAndroid Build Coastguard Worker optional Nat64PacketCounters unsupported_protocol = 3; 139*4a64e381SAndroid Build Coastguard Worker optional Nat64PacketCounters no_mapping = 4; 140*4a64e381SAndroid Build Coastguard Worker } 141*4a64e381SAndroid Build Coastguard Worker 142*4a64e381SAndroid Build Coastguard Worker message BorderRoutingCounters { 143*4a64e381SAndroid Build Coastguard Worker // The number of Router Advertisement packets received by otbr-agent on the 144*4a64e381SAndroid Build Coastguard Worker // infra link 145*4a64e381SAndroid Build Coastguard Worker optional int64 ra_rx = 1; 146*4a64e381SAndroid Build Coastguard Worker 147*4a64e381SAndroid Build Coastguard Worker // The number of Router Advertisement packets successfully transmitted by 148*4a64e381SAndroid Build Coastguard Worker // otbr-agent on the infra link. 149*4a64e381SAndroid Build Coastguard Worker optional int64 ra_tx_success = 2; 150*4a64e381SAndroid Build Coastguard Worker 151*4a64e381SAndroid Build Coastguard Worker // The number of Router Advertisement packets failed to transmit by 152*4a64e381SAndroid Build Coastguard Worker // otbr-agent on the infra link. 153*4a64e381SAndroid Build Coastguard Worker optional int64 ra_tx_failure = 3; 154*4a64e381SAndroid Build Coastguard Worker 155*4a64e381SAndroid Build Coastguard Worker // The number of Router Solicitation packets received by otbr-agent on the 156*4a64e381SAndroid Build Coastguard Worker // infra link 157*4a64e381SAndroid Build Coastguard Worker optional int64 rs_rx = 4; 158*4a64e381SAndroid Build Coastguard Worker 159*4a64e381SAndroid Build Coastguard Worker // The number of Router Solicitation packets successfully transmitted by 160*4a64e381SAndroid Build Coastguard Worker // otbr-agent on the infra link. 161*4a64e381SAndroid Build Coastguard Worker optional int64 rs_tx_success = 5; 162*4a64e381SAndroid Build Coastguard Worker 163*4a64e381SAndroid Build Coastguard Worker // The number of Router Solicitation packets failed to transmit by 164*4a64e381SAndroid Build Coastguard Worker // otbr-agent on the infra link. 165*4a64e381SAndroid Build Coastguard Worker optional int64 rs_tx_failure = 6; 166*4a64e381SAndroid Build Coastguard Worker 167*4a64e381SAndroid Build Coastguard Worker // The counters for inbound unicast packets 168*4a64e381SAndroid Build Coastguard Worker optional PacketsAndBytes inbound_unicast = 7; 169*4a64e381SAndroid Build Coastguard Worker 170*4a64e381SAndroid Build Coastguard Worker // The counters for inbound multicast packets 171*4a64e381SAndroid Build Coastguard Worker optional PacketsAndBytes inbound_multicast = 8; 172*4a64e381SAndroid Build Coastguard Worker 173*4a64e381SAndroid Build Coastguard Worker // The counters for outbound unicast packets 174*4a64e381SAndroid Build Coastguard Worker optional PacketsAndBytes outbound_unicast = 9; 175*4a64e381SAndroid Build Coastguard Worker 176*4a64e381SAndroid Build Coastguard Worker // The counters for outbound multicast packets 177*4a64e381SAndroid Build Coastguard Worker optional PacketsAndBytes outbound_multicast = 10; 178*4a64e381SAndroid Build Coastguard Worker 179*4a64e381SAndroid Build Coastguard Worker // The inbound and outbound NAT64 traffic through the border router 180*4a64e381SAndroid Build Coastguard Worker optional Nat64ProtocolCounters nat64_protocol_counters = 11; 181*4a64e381SAndroid Build Coastguard Worker 182*4a64e381SAndroid Build Coastguard Worker // Error counters for NAT64 translator on the border router 183*4a64e381SAndroid Build Coastguard Worker optional Nat64ErrorCounters nat64_error_counters = 12; 184*4a64e381SAndroid Build Coastguard Worker } 185*4a64e381SAndroid Build Coastguard Worker 186*4a64e381SAndroid Build Coastguard Worker message SrpServerRegistrationInfo { 187*4a64e381SAndroid Build Coastguard Worker // The number of active hosts/services registered on the SRP server. 188*4a64e381SAndroid Build Coastguard Worker optional uint32 fresh_count = 1; 189*4a64e381SAndroid Build Coastguard Worker 190*4a64e381SAndroid Build Coastguard Worker // The number of hosts/services in 'Deleted' state on the SRP server. 191*4a64e381SAndroid Build Coastguard Worker optional uint32 deleted_count = 2; 192*4a64e381SAndroid Build Coastguard Worker 193*4a64e381SAndroid Build Coastguard Worker // The sum of lease time in milliseconds of all active hosts/services on the 194*4a64e381SAndroid Build Coastguard Worker // SRP server. 195*4a64e381SAndroid Build Coastguard Worker optional uint64 lease_time_total_ms = 3; 196*4a64e381SAndroid Build Coastguard Worker 197*4a64e381SAndroid Build Coastguard Worker // The sum of key lease time in milliseconds of all active hosts/services on 198*4a64e381SAndroid Build Coastguard Worker // the SRP server. 199*4a64e381SAndroid Build Coastguard Worker optional uint64 key_lease_time_total_ms = 4; 200*4a64e381SAndroid Build Coastguard Worker 201*4a64e381SAndroid Build Coastguard Worker // The sum of remaining lease time in milliseconds of all active 202*4a64e381SAndroid Build Coastguard Worker // hosts/services on the SRP server. 203*4a64e381SAndroid Build Coastguard Worker optional uint64 remaining_lease_time_total_ms = 5; 204*4a64e381SAndroid Build Coastguard Worker 205*4a64e381SAndroid Build Coastguard Worker // The sum of remaining key lease time in milliseconds of all active 206*4a64e381SAndroid Build Coastguard Worker // hosts/services on the SRP server. 207*4a64e381SAndroid Build Coastguard Worker optional uint64 remaining_key_lease_time_total_ms = 6; 208*4a64e381SAndroid Build Coastguard Worker } 209*4a64e381SAndroid Build Coastguard Worker 210*4a64e381SAndroid Build Coastguard Worker message SrpServerResponseCounters { 211*4a64e381SAndroid Build Coastguard Worker // The number of successful responses 212*4a64e381SAndroid Build Coastguard Worker optional uint32 success_count = 1; 213*4a64e381SAndroid Build Coastguard Worker 214*4a64e381SAndroid Build Coastguard Worker // The number of server failure responses 215*4a64e381SAndroid Build Coastguard Worker optional uint32 server_failure_count = 2; 216*4a64e381SAndroid Build Coastguard Worker 217*4a64e381SAndroid Build Coastguard Worker // The number of format error responses 218*4a64e381SAndroid Build Coastguard Worker optional uint32 format_error_count = 3; 219*4a64e381SAndroid Build Coastguard Worker 220*4a64e381SAndroid Build Coastguard Worker // The number of 'name exists' responses 221*4a64e381SAndroid Build Coastguard Worker optional uint32 name_exists_count = 4; 222*4a64e381SAndroid Build Coastguard Worker 223*4a64e381SAndroid Build Coastguard Worker // The number of refused responses 224*4a64e381SAndroid Build Coastguard Worker optional uint32 refused_count = 5; 225*4a64e381SAndroid Build Coastguard Worker 226*4a64e381SAndroid Build Coastguard Worker // The number of other responses 227*4a64e381SAndroid Build Coastguard Worker optional uint32 other_count = 6; 228*4a64e381SAndroid Build Coastguard Worker } 229*4a64e381SAndroid Build Coastguard Worker 230*4a64e381SAndroid Build Coastguard Worker enum SrpServerState { 231*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_STATE_UNSPECIFIED = 0; 232*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_STATE_DISABLED = 1; 233*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_STATE_RUNNING = 2; 234*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_STATE_STOPPED = 3; 235*4a64e381SAndroid Build Coastguard Worker } 236*4a64e381SAndroid Build Coastguard Worker 237*4a64e381SAndroid Build Coastguard Worker // The address mode used by the SRP server 238*4a64e381SAndroid Build Coastguard Worker enum SrpServerAddressMode { 239*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_ADDRESS_MODE_UNSPECIFIED = 0; 240*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_ADDRESS_MODE_UNICAST = 1; 241*4a64e381SAndroid Build Coastguard Worker SRP_SERVER_ADDRESS_MODE_STATE_ANYCAST = 2; 242*4a64e381SAndroid Build Coastguard Worker } 243*4a64e381SAndroid Build Coastguard Worker 244*4a64e381SAndroid Build Coastguard Worker enum UpstreamDnsQueryState { 245*4a64e381SAndroid Build Coastguard Worker UPSTREAMDNS_QUERY_STATE_UNSPECIFIED = 0; 246*4a64e381SAndroid Build Coastguard Worker UPSTREAMDNS_QUERY_STATE_ENABLED = 1; 247*4a64e381SAndroid Build Coastguard Worker UPSTREAMDNS_QUERY_STATE_DISABLED = 2; 248*4a64e381SAndroid Build Coastguard Worker } 249*4a64e381SAndroid Build Coastguard Worker 250*4a64e381SAndroid Build Coastguard Worker message SrpServerInfo { 251*4a64e381SAndroid Build Coastguard Worker // The state of the SRP server 252*4a64e381SAndroid Build Coastguard Worker optional SrpServerState state = 1; 253*4a64e381SAndroid Build Coastguard Worker 254*4a64e381SAndroid Build Coastguard Worker // Listening port number 255*4a64e381SAndroid Build Coastguard Worker optional uint32 port = 2; 256*4a64e381SAndroid Build Coastguard Worker // The address mode {unicast, anycast} of the SRP server 257*4a64e381SAndroid Build Coastguard Worker optional SrpServerAddressMode address_mode = 3; 258*4a64e381SAndroid Build Coastguard Worker 259*4a64e381SAndroid Build Coastguard Worker // The registration information of hosts on the SRP server 260*4a64e381SAndroid Build Coastguard Worker optional SrpServerRegistrationInfo hosts = 4; 261*4a64e381SAndroid Build Coastguard Worker 262*4a64e381SAndroid Build Coastguard Worker // The registration information of services on the SRP server 263*4a64e381SAndroid Build Coastguard Worker optional SrpServerRegistrationInfo services = 5; 264*4a64e381SAndroid Build Coastguard Worker 265*4a64e381SAndroid Build Coastguard Worker // The counters of response codes sent by the SRP server 266*4a64e381SAndroid Build Coastguard Worker optional SrpServerResponseCounters response_counters = 6; 267*4a64e381SAndroid Build Coastguard Worker } 268*4a64e381SAndroid Build Coastguard Worker 269*4a64e381SAndroid Build Coastguard Worker message DnsServerResponseCounters { 270*4a64e381SAndroid Build Coastguard Worker // The number of successful responses 271*4a64e381SAndroid Build Coastguard Worker optional uint32 success_count = 1; 272*4a64e381SAndroid Build Coastguard Worker 273*4a64e381SAndroid Build Coastguard Worker // The number of server failure responses 274*4a64e381SAndroid Build Coastguard Worker optional uint32 server_failure_count = 2; 275*4a64e381SAndroid Build Coastguard Worker 276*4a64e381SAndroid Build Coastguard Worker // The number of format error responses 277*4a64e381SAndroid Build Coastguard Worker optional uint32 format_error_count = 3; 278*4a64e381SAndroid Build Coastguard Worker 279*4a64e381SAndroid Build Coastguard Worker // The number of name error responses 280*4a64e381SAndroid Build Coastguard Worker optional uint32 name_error_count = 4; 281*4a64e381SAndroid Build Coastguard Worker 282*4a64e381SAndroid Build Coastguard Worker // The number of 'not implemented' responses 283*4a64e381SAndroid Build Coastguard Worker optional uint32 not_implemented_count = 5; 284*4a64e381SAndroid Build Coastguard Worker 285*4a64e381SAndroid Build Coastguard Worker // The number of other responses 286*4a64e381SAndroid Build Coastguard Worker optional uint32 other_count = 6; 287*4a64e381SAndroid Build Coastguard Worker 288*4a64e381SAndroid Build Coastguard Worker // The number of queries handled by Upstream DNS server. 289*4a64e381SAndroid Build Coastguard Worker optional uint32 upstream_dns_queries = 7; 290*4a64e381SAndroid Build Coastguard Worker 291*4a64e381SAndroid Build Coastguard Worker // The number of responses handled by Upstream DNS server. 292*4a64e381SAndroid Build Coastguard Worker optional uint32 upstream_dns_responses = 8; 293*4a64e381SAndroid Build Coastguard Worker 294*4a64e381SAndroid Build Coastguard Worker // The number of upstream DNS failures. 295*4a64e381SAndroid Build Coastguard Worker optional uint32 upstream_dns_failures = 9; 296*4a64e381SAndroid Build Coastguard Worker } 297*4a64e381SAndroid Build Coastguard Worker 298*4a64e381SAndroid Build Coastguard Worker message DnsServerInfo { 299*4a64e381SAndroid Build Coastguard Worker // The counters of response codes sent by the DNS server 300*4a64e381SAndroid Build Coastguard Worker optional DnsServerResponseCounters response_counters = 1; 301*4a64e381SAndroid Build Coastguard Worker 302*4a64e381SAndroid Build Coastguard Worker // The number of DNS queries resolved at the local SRP server 303*4a64e381SAndroid Build Coastguard Worker optional uint32 resolved_by_local_srp_count = 2; 304*4a64e381SAndroid Build Coastguard Worker 305*4a64e381SAndroid Build Coastguard Worker // The state of upstream DNS query 306*4a64e381SAndroid Build Coastguard Worker optional UpstreamDnsQueryState upstream_dns_query_state = 3; 307*4a64e381SAndroid Build Coastguard Worker } 308*4a64e381SAndroid Build Coastguard Worker 309*4a64e381SAndroid Build Coastguard Worker message MdnsResponseCounters { 310*4a64e381SAndroid Build Coastguard Worker // The number of successful responses 311*4a64e381SAndroid Build Coastguard Worker optional uint32 success_count = 1; 312*4a64e381SAndroid Build Coastguard Worker 313*4a64e381SAndroid Build Coastguard Worker // The number of 'not found' responses 314*4a64e381SAndroid Build Coastguard Worker optional uint32 not_found_count = 2; 315*4a64e381SAndroid Build Coastguard Worker 316*4a64e381SAndroid Build Coastguard Worker // The number of 'invalid arg' responses 317*4a64e381SAndroid Build Coastguard Worker optional uint32 invalid_args_count = 3; 318*4a64e381SAndroid Build Coastguard Worker 319*4a64e381SAndroid Build Coastguard Worker // The number of 'duplicated' responses 320*4a64e381SAndroid Build Coastguard Worker optional uint32 duplicated_count = 4; 321*4a64e381SAndroid Build Coastguard Worker 322*4a64e381SAndroid Build Coastguard Worker // The number of 'not implemented' responses 323*4a64e381SAndroid Build Coastguard Worker optional uint32 not_implemented_count = 5; 324*4a64e381SAndroid Build Coastguard Worker 325*4a64e381SAndroid Build Coastguard Worker // The number of unknown error responses 326*4a64e381SAndroid Build Coastguard Worker optional uint32 unknown_error_count = 6; 327*4a64e381SAndroid Build Coastguard Worker 328*4a64e381SAndroid Build Coastguard Worker // The number of aborted responses 329*4a64e381SAndroid Build Coastguard Worker optional uint32 aborted_count = 7; 330*4a64e381SAndroid Build Coastguard Worker 331*4a64e381SAndroid Build Coastguard Worker // The number of invalid state responses 332*4a64e381SAndroid Build Coastguard Worker optional uint32 invalid_state_count = 8; 333*4a64e381SAndroid Build Coastguard Worker } 334*4a64e381SAndroid Build Coastguard Worker 335*4a64e381SAndroid Build Coastguard Worker message MdnsInfo { 336*4a64e381SAndroid Build Coastguard Worker // The response counters of host registrations 337*4a64e381SAndroid Build Coastguard Worker optional MdnsResponseCounters host_registration_responses = 1; 338*4a64e381SAndroid Build Coastguard Worker 339*4a64e381SAndroid Build Coastguard Worker // The response counters of service registrations 340*4a64e381SAndroid Build Coastguard Worker optional MdnsResponseCounters service_registration_responses = 2; 341*4a64e381SAndroid Build Coastguard Worker 342*4a64e381SAndroid Build Coastguard Worker // The response counters of host resolutions 343*4a64e381SAndroid Build Coastguard Worker optional MdnsResponseCounters host_resolution_responses = 3; 344*4a64e381SAndroid Build Coastguard Worker 345*4a64e381SAndroid Build Coastguard Worker // The response counters of service resolutions 346*4a64e381SAndroid Build Coastguard Worker optional MdnsResponseCounters service_resolution_responses = 4; 347*4a64e381SAndroid Build Coastguard Worker 348*4a64e381SAndroid Build Coastguard Worker // The EMA (Exponential Moving Average) latencies of mDNS operations 349*4a64e381SAndroid Build Coastguard Worker 350*4a64e381SAndroid Build Coastguard Worker // The EMA latency of host registrations in milliseconds 351*4a64e381SAndroid Build Coastguard Worker optional uint32 host_registration_ema_latency_ms = 5; 352*4a64e381SAndroid Build Coastguard Worker 353*4a64e381SAndroid Build Coastguard Worker // The EMA latency of service registrations in milliseconds 354*4a64e381SAndroid Build Coastguard Worker optional uint32 service_registration_ema_latency_ms = 6; 355*4a64e381SAndroid Build Coastguard Worker 356*4a64e381SAndroid Build Coastguard Worker // The EMA latency of host resolutions in milliseconds 357*4a64e381SAndroid Build Coastguard Worker optional uint32 host_resolution_ema_latency_ms = 7; 358*4a64e381SAndroid Build Coastguard Worker 359*4a64e381SAndroid Build Coastguard Worker // The EMA latency of service resolutions in milliseconds 360*4a64e381SAndroid Build Coastguard Worker optional uint32 service_resolution_ema_latency_ms = 8; 361*4a64e381SAndroid Build Coastguard Worker } 362*4a64e381SAndroid Build Coastguard Worker 363*4a64e381SAndroid Build Coastguard Worker enum Nat64State { 364*4a64e381SAndroid Build Coastguard Worker NAT64_STATE_UNSPECIFIED = 0; 365*4a64e381SAndroid Build Coastguard Worker NAT64_STATE_DISABLED = 1; 366*4a64e381SAndroid Build Coastguard Worker NAT64_STATE_NOT_RUNNING = 2; 367*4a64e381SAndroid Build Coastguard Worker NAT64_STATE_IDLE = 3; 368*4a64e381SAndroid Build Coastguard Worker NAT64_STATE_ACTIVE = 4; 369*4a64e381SAndroid Build Coastguard Worker } 370*4a64e381SAndroid Build Coastguard Worker 371*4a64e381SAndroid Build Coastguard Worker message BorderRoutingNat64State { 372*4a64e381SAndroid Build Coastguard Worker optional Nat64State prefix_manager_state = 1; 373*4a64e381SAndroid Build Coastguard Worker optional Nat64State translator_state = 2; 374*4a64e381SAndroid Build Coastguard Worker } 375*4a64e381SAndroid Build Coastguard Worker 376*4a64e381SAndroid Build Coastguard Worker message TrelPacketCounters { 377*4a64e381SAndroid Build Coastguard Worker // The number of packets successfully transmitted through TREL 378*4a64e381SAndroid Build Coastguard Worker optional uint64 trel_tx_packets = 1; 379*4a64e381SAndroid Build Coastguard Worker 380*4a64e381SAndroid Build Coastguard Worker // The number of bytes successfully transmitted through TREL 381*4a64e381SAndroid Build Coastguard Worker optional uint64 trel_tx_bytes = 2; 382*4a64e381SAndroid Build Coastguard Worker 383*4a64e381SAndroid Build Coastguard Worker // The number of packet transmission failures through TREL 384*4a64e381SAndroid Build Coastguard Worker optional uint64 trel_tx_packets_failed = 3; 385*4a64e381SAndroid Build Coastguard Worker 386*4a64e381SAndroid Build Coastguard Worker // The number of packets successfully received through TREL 387*4a64e381SAndroid Build Coastguard Worker optional uint64 trel_rx_packets = 4; 388*4a64e381SAndroid Build Coastguard Worker 389*4a64e381SAndroid Build Coastguard Worker // The number of bytes successfully received through TREL 390*4a64e381SAndroid Build Coastguard Worker optional uint64 trel_rx_bytes = 5; 391*4a64e381SAndroid Build Coastguard Worker } 392*4a64e381SAndroid Build Coastguard Worker 393*4a64e381SAndroid Build Coastguard Worker message TrelInfo { 394*4a64e381SAndroid Build Coastguard Worker // Whether TREL is enabled. 395*4a64e381SAndroid Build Coastguard Worker optional bool is_trel_enabled = 1; 396*4a64e381SAndroid Build Coastguard Worker 397*4a64e381SAndroid Build Coastguard Worker // The number of TREL peers. 398*4a64e381SAndroid Build Coastguard Worker optional uint32 num_trel_peers = 2; 399*4a64e381SAndroid Build Coastguard Worker 400*4a64e381SAndroid Build Coastguard Worker // TREL packet counters 401*4a64e381SAndroid Build Coastguard Worker optional TrelPacketCounters counters = 3; 402*4a64e381SAndroid Build Coastguard Worker } 403*4a64e381SAndroid Build Coastguard Worker 404*4a64e381SAndroid Build Coastguard Worker message BorderAgentCounters { 405*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc activations 406*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_activations = 1; 407*4a64e381SAndroid Build Coastguard Worker 408*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc deactivations due to cleared via API 409*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_deactivation_clears = 2; 410*4a64e381SAndroid Build Coastguard Worker 411*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc deactivations due to timeout 412*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_deactivation_timeouts = 3; 413*4a64e381SAndroid Build Coastguard Worker 414*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc deactivations due to max connection attempts reached 415*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_deactivation_max_attempts = 4; 416*4a64e381SAndroid Build Coastguard Worker 417*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc deactivations due to commissioner disconnected 418*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_deactivation_disconnects = 5; 419*4a64e381SAndroid Build Coastguard Worker 420*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc activation failures caused by invalid border agent 421*4a64e381SAndroid Build Coastguard Worker // state 422*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_invalid_ba_state_errors = 6; 423*4a64e381SAndroid Build Coastguard Worker 424*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc activation failures caused by invalid argument 425*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_invalid_args_errors = 7; 426*4a64e381SAndroid Build Coastguard Worker 427*4a64e381SAndroid Build Coastguard Worker // The number of ePSKc activation failures caused by failed to start secure 428*4a64e381SAndroid Build Coastguard Worker // session 429*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_start_secure_session_errors = 8; 430*4a64e381SAndroid Build Coastguard Worker 431*4a64e381SAndroid Build Coastguard Worker // The number of successful secure session establishment with ePSKc 432*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_secure_session_successes = 9; 433*4a64e381SAndroid Build Coastguard Worker 434*4a64e381SAndroid Build Coastguard Worker // The number of failed secure session establishement with ePSKc 435*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_secure_session_failures = 10; 436*4a64e381SAndroid Build Coastguard Worker 437*4a64e381SAndroid Build Coastguard Worker // The number of active commissioner petitioned over secure session 438*4a64e381SAndroid Build Coastguard Worker // establishment with ePSKc 439*4a64e381SAndroid Build Coastguard Worker optional uint32 epskc_commissioner_petitions = 11; 440*4a64e381SAndroid Build Coastguard Worker 441*4a64e381SAndroid Build Coastguard Worker // The number of successful secure session establishment with PSKc 442*4a64e381SAndroid Build Coastguard Worker optional uint32 pskc_secure_session_successes = 12; 443*4a64e381SAndroid Build Coastguard Worker 444*4a64e381SAndroid Build Coastguard Worker // The number of failed secure session establishement with PSKc 445*4a64e381SAndroid Build Coastguard Worker optional uint32 pskc_secure_session_failures = 13; 446*4a64e381SAndroid Build Coastguard Worker 447*4a64e381SAndroid Build Coastguard Worker // The number of active commissioner petitioned over secure session 448*4a64e381SAndroid Build Coastguard Worker // establishment with PSKc 449*4a64e381SAndroid Build Coastguard Worker optional uint32 pskc_commissioner_petitions = 14; 450*4a64e381SAndroid Build Coastguard Worker 451*4a64e381SAndroid Build Coastguard Worker // The number of MGMT_ACTIVE_GET.req received 452*4a64e381SAndroid Build Coastguard Worker optional uint32 mgmt_active_get_reqs = 15; 453*4a64e381SAndroid Build Coastguard Worker 454*4a64e381SAndroid Build Coastguard Worker // The number of MGMT_PENDING_GET.req received 455*4a64e381SAndroid Build Coastguard Worker optional uint32 mgmt_pending_get_reqs = 16; 456*4a64e381SAndroid Build Coastguard Worker } 457*4a64e381SAndroid Build Coastguard Worker 458*4a64e381SAndroid Build Coastguard Worker message BorderAgentInfo { 459*4a64e381SAndroid Build Coastguard Worker // The border agent counters 460*4a64e381SAndroid Build Coastguard Worker optional BorderAgentCounters border_agent_counters = 1; 461*4a64e381SAndroid Build Coastguard Worker } 462*4a64e381SAndroid Build Coastguard Worker 463*4a64e381SAndroid Build Coastguard Worker message WpanBorderRouter { 464*4a64e381SAndroid Build Coastguard Worker // Border routing counters 465*4a64e381SAndroid Build Coastguard Worker optional BorderRoutingCounters border_routing_counters = 1; 466*4a64e381SAndroid Build Coastguard Worker 467*4a64e381SAndroid Build Coastguard Worker // Information about the SRP server 468*4a64e381SAndroid Build Coastguard Worker optional SrpServerInfo srp_server = 2; 469*4a64e381SAndroid Build Coastguard Worker 470*4a64e381SAndroid Build Coastguard Worker // Information about the DNS server 471*4a64e381SAndroid Build Coastguard Worker optional DnsServerInfo dns_server = 3; 472*4a64e381SAndroid Build Coastguard Worker 473*4a64e381SAndroid Build Coastguard Worker // Information about the mDNS publisher 474*4a64e381SAndroid Build Coastguard Worker optional MdnsInfo mdns = 4; 475*4a64e381SAndroid Build Coastguard Worker 476*4a64e381SAndroid Build Coastguard Worker // Information about the state of components of NAT64 477*4a64e381SAndroid Build Coastguard Worker optional BorderRoutingNat64State nat64_state = 5; 478*4a64e381SAndroid Build Coastguard Worker 479*4a64e381SAndroid Build Coastguard Worker // Information about TREL. 480*4a64e381SAndroid Build Coastguard Worker optional TrelInfo trel_info = 6; 481*4a64e381SAndroid Build Coastguard Worker 482*4a64e381SAndroid Build Coastguard Worker // Information about the Border Agent 483*4a64e381SAndroid Build Coastguard Worker optional BorderAgentInfo border_agent_info = 7; 484*4a64e381SAndroid Build Coastguard Worker } 485*4a64e381SAndroid Build Coastguard Worker 486*4a64e381SAndroid Build Coastguard Worker message RcpStabilityStatistics { 487*4a64e381SAndroid Build Coastguard Worker optional uint32 rcp_timeout_count = 1; 488*4a64e381SAndroid Build Coastguard Worker optional uint32 rcp_reset_count = 2; 489*4a64e381SAndroid Build Coastguard Worker optional uint32 rcp_restoration_count = 3; 490*4a64e381SAndroid Build Coastguard Worker optional uint32 spinel_parse_error_count = 4; 491*4a64e381SAndroid Build Coastguard Worker optional int32 rcp_firmware_update_count = 5; 492*4a64e381SAndroid Build Coastguard Worker optional uint32 thread_stack_uptime = 6; 493*4a64e381SAndroid Build Coastguard Worker } 494*4a64e381SAndroid Build Coastguard Worker 495*4a64e381SAndroid Build Coastguard Worker message RcpInterfaceStatistics { 496*4a64e381SAndroid Build Coastguard Worker optional uint32 rcp_interface_type = 1; 497*4a64e381SAndroid Build Coastguard Worker optional uint64 transferred_frames_count = 2; 498*4a64e381SAndroid Build Coastguard Worker optional uint64 transferred_valid_frames_count = 3; 499*4a64e381SAndroid Build Coastguard Worker optional uint64 transferred_garbage_frames_count = 4; 500*4a64e381SAndroid Build Coastguard Worker optional uint64 rx_frames_count = 5; 501*4a64e381SAndroid Build Coastguard Worker optional uint64 rx_bytes_count = 6; 502*4a64e381SAndroid Build Coastguard Worker optional uint64 tx_frames_count = 7; 503*4a64e381SAndroid Build Coastguard Worker optional uint64 tx_bytes_count = 8; 504*4a64e381SAndroid Build Coastguard Worker } 505*4a64e381SAndroid Build Coastguard Worker 506*4a64e381SAndroid Build Coastguard Worker message WpanRcp { 507*4a64e381SAndroid Build Coastguard Worker optional RcpStabilityStatistics rcp_stability_statistics = 1; 508*4a64e381SAndroid Build Coastguard Worker optional RcpInterfaceStatistics rcp_interface_statistics = 2; 509*4a64e381SAndroid Build Coastguard Worker } 510*4a64e381SAndroid Build Coastguard Worker 511*4a64e381SAndroid Build Coastguard Worker message CoexMetrics { 512*4a64e381SAndroid Build Coastguard Worker optional uint32 count_tx_request = 1; 513*4a64e381SAndroid Build Coastguard Worker optional uint32 count_tx_grant_immediate = 2; 514*4a64e381SAndroid Build Coastguard Worker optional uint32 count_tx_grant_wait = 3; 515*4a64e381SAndroid Build Coastguard Worker optional uint32 count_tx_grant_wait_activated = 4; 516*4a64e381SAndroid Build Coastguard Worker optional uint32 count_tx_grant_wait_timeout = 5; 517*4a64e381SAndroid Build Coastguard Worker optional uint32 count_tx_grant_deactivated_during_request = 6; 518*4a64e381SAndroid Build Coastguard Worker optional uint32 tx_average_request_to_grant_time_us = 7; 519*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_request = 8; 520*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_grant_immediate = 9; 521*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_grant_wait = 10; 522*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_grant_wait_activated = 11; 523*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_grant_wait_timeout = 12; 524*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_grant_deactivated_during_request = 13; 525*4a64e381SAndroid Build Coastguard Worker optional uint32 count_rx_grant_none = 14; 526*4a64e381SAndroid Build Coastguard Worker optional uint32 rx_average_request_to_grant_time_us = 15; 527*4a64e381SAndroid Build Coastguard Worker } 528*4a64e381SAndroid Build Coastguard Worker 529*4a64e381SAndroid Build Coastguard Worker optional WpanStats wpan_stats = 1; 530*4a64e381SAndroid Build Coastguard Worker optional WpanTopoFull wpan_topo_full = 2; 531*4a64e381SAndroid Build Coastguard Worker optional WpanBorderRouter wpan_border_router = 3; 532*4a64e381SAndroid Build Coastguard Worker optional WpanRcp wpan_rcp = 4; 533*4a64e381SAndroid Build Coastguard Worker optional CoexMetrics coex_metrics = 5; 534*4a64e381SAndroid Build Coastguard Worker} 535*4a64e381SAndroid Build Coastguard Worker 536*4a64e381SAndroid Build Coastguard Workermessage ThreadnetworkTopoEntryRepeated { 537*4a64e381SAndroid Build Coastguard Worker message TopoEntry { 538*4a64e381SAndroid Build Coastguard Worker // 0~15: uint16_t rloc_16 539*4a64e381SAndroid Build Coastguard Worker // 16~31: uint16_t version Thread version of the neighbor 540*4a64e381SAndroid Build Coastguard Worker optional uint32 combo_telemetry1 = 1; 541*4a64e381SAndroid Build Coastguard Worker // 0~7: uint8_t link_quality_in 542*4a64e381SAndroid Build Coastguard Worker // 8~15: int8_t average_rssi 543*4a64e381SAndroid Build Coastguard Worker // 16~23: int8_t last_rssi 544*4a64e381SAndroid Build Coastguard Worker // 24~31: uint8_t network_data_version 545*4a64e381SAndroid Build Coastguard Worker optional uint32 combo_telemetry2 = 2; 546*4a64e381SAndroid Build Coastguard Worker optional uint32 age_sec = 3; 547*4a64e381SAndroid Build Coastguard Worker // Each bit on the flag represents a bool flag 548*4a64e381SAndroid Build Coastguard Worker // 0: rx_on_when_idle 549*4a64e381SAndroid Build Coastguard Worker // 1: full_function 550*4a64e381SAndroid Build Coastguard Worker // 2: secure_data_request 551*4a64e381SAndroid Build Coastguard Worker // 3: full_network_data 552*4a64e381SAndroid Build Coastguard Worker // 4: is_child 553*4a64e381SAndroid Build Coastguard Worker optional uint32 topo_entry_flags = 4; 554*4a64e381SAndroid Build Coastguard Worker optional uint32 link_frame_counter = 5; 555*4a64e381SAndroid Build Coastguard Worker optional uint32 mle_frame_counter = 6; 556*4a64e381SAndroid Build Coastguard Worker optional uint32 timeout_sec = 7; 557*4a64e381SAndroid Build Coastguard Worker // 0~15: uint16_t frame_error_rate. Frame error rate (0xffff->100%). Requires error tracking feature. 558*4a64e381SAndroid Build Coastguard Worker // 16~31: uint16_t message_error_rate. (IPv6) msg error rate (0xffff->100%). Requires error tracking feature. 559*4a64e381SAndroid Build Coastguard Worker optional uint32 combo_telemetry3 = 8; 560*4a64e381SAndroid Build Coastguard Worker } 561*4a64e381SAndroid Build Coastguard Worker 562*4a64e381SAndroid Build Coastguard Worker message TopoEntryRepeated { 563*4a64e381SAndroid Build Coastguard Worker repeated TopoEntry topo_entries = 1; 564*4a64e381SAndroid Build Coastguard Worker } 565*4a64e381SAndroid Build Coastguard Worker 566*4a64e381SAndroid Build Coastguard Worker optional TopoEntryRepeated topo_entry_repeated = 1; 567*4a64e381SAndroid Build Coastguard Worker} 568*4a64e381SAndroid Build Coastguard Worker 569*4a64e381SAndroid Build Coastguard Workermessage ThreadnetworkDeviceInfoReported { 570*4a64e381SAndroid Build Coastguard Worker // OpenThread host build version. 571*4a64e381SAndroid Build Coastguard Worker optional string ot_host_version = 1; 572*4a64e381SAndroid Build Coastguard Worker 573*4a64e381SAndroid Build Coastguard Worker // OpenThread RCP build version. 574*4a64e381SAndroid Build Coastguard Worker optional string ot_rcp_version = 2; 575*4a64e381SAndroid Build Coastguard Worker 576*4a64e381SAndroid Build Coastguard Worker // Thread protocol version. 577*4a64e381SAndroid Build Coastguard Worker optional int32 thread_version = 3; 578*4a64e381SAndroid Build Coastguard Worker 579*4a64e381SAndroid Build Coastguard Worker // Thread Daemon version. 580*4a64e381SAndroid Build Coastguard Worker optional string thread_daemon_version = 4; 581*4a64e381SAndroid Build Coastguard Worker} 582