xref: /aosp_15_r20/external/ot-br-posix/src/proto/threadnetwork_atoms.proto (revision 4a64e381480ef79f0532b2421e44e6ee336b8e0d)
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