xref: /aosp_15_r20/external/ot-br-posix/src/proto/thread_telemetry.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 Workersyntax = "proto2";
29*4a64e381SAndroid Build Coastguard Workeroption optimize_for = LITE_RUNTIME;
30*4a64e381SAndroid Build Coastguard Worker
31*4a64e381SAndroid Build Coastguard Workerpackage threadnetwork;
32*4a64e381SAndroid Build Coastguard Worker
33*4a64e381SAndroid Build Coastguard Worker// Thread Telemetry data definition.
34*4a64e381SAndroid Build Coastguard Worker// The field range for your data definition is determined as:
35*4a64e381SAndroid Build Coastguard Worker// ---------------------------------------------------------------------------
36*4a64e381SAndroid Build Coastguard Worker// | Field Range  | Logging From
37*4a64e381SAndroid Build Coastguard Worker// | [1 - 500)    | Primary fields logged from OTBR-agent/OpenThread.
38*4a64e381SAndroid Build Coastguard Worker// | [500-600)    | OTBR vendor fields logged from OTBR-agent/OpenThread.
39*4a64e381SAndroid Build Coastguard Worker// | Other        | Reserved for now.
40*4a64e381SAndroid Build Coastguard Worker// ---------------------------------------------------------------------------
41*4a64e381SAndroid Build Coastguard Worker// Usage:
42*4a64e381SAndroid Build Coastguard Worker// Delete field: do not directly delete field. Deprecate it instead.
43*4a64e381SAndroid Build Coastguard Workermessage TelemetryData {
44*4a64e381SAndroid Build Coastguard Worker  message Duration {
45*4a64e381SAndroid Build Coastguard Worker    // Signed seconds of the span of time. Must be from -315,576,000,000
46*4a64e381SAndroid Build Coastguard Worker    // to +315,576,000,000 inclusive. Note: these bounds are computed from:
47*4a64e381SAndroid Build Coastguard Worker    // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
48*4a64e381SAndroid Build Coastguard Worker    optional int64 seconds = 1;
49*4a64e381SAndroid Build Coastguard Worker
50*4a64e381SAndroid Build Coastguard Worker    // Signed fractions of a second at nanosecond resolution of the span
51*4a64e381SAndroid Build Coastguard Worker    // of time. Durations less than one second are represented with a 0
52*4a64e381SAndroid Build Coastguard Worker    // `seconds` field and a positive or negative `nanos` field. For durations
53*4a64e381SAndroid Build Coastguard Worker    // of one second or more, a non-zero value for the `nanos` field must be
54*4a64e381SAndroid Build Coastguard Worker    // of the same sign as the `seconds` field. Must be from -999,999,999
55*4a64e381SAndroid Build Coastguard Worker    // to +999,999,999 inclusive.
56*4a64e381SAndroid Build Coastguard Worker    optional int32 nanos = 2;
57*4a64e381SAndroid Build Coastguard Worker  }
58*4a64e381SAndroid Build Coastguard Worker
59*4a64e381SAndroid Build Coastguard Worker  message WpanStats {
60*4a64e381SAndroid Build Coastguard Worker    optional int32 phy_rx = 1;
61*4a64e381SAndroid Build Coastguard Worker    optional int32 phy_tx = 2;
62*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_unicast_rx = 3;
63*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_unicast_tx = 4;
64*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_broadcast_rx = 5;
65*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_broadcast_tx = 6;
66*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_ack_req = 7;
67*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_no_ack_req = 8;
68*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_acked = 9;
69*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_data = 10;
70*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_data_poll = 11;
71*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_beacon = 12;
72*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_beacon_req = 13;
73*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_other_pkt = 14;
74*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_retry = 15;
75*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_data = 16;
76*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_data_poll = 17;
77*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_beacon = 18;
78*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_beacon_req = 19;
79*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_other_pkt = 20;
80*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_filter_whitelist = 21;
81*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_filter_dest_addr = 22;
82*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_tx_fail_cca = 23;
83*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_fail_decrypt = 24;
84*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_fail_no_frame = 25;
85*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_fail_unknown_neighbor = 26;
86*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_fail_invalid_src_addr = 27;
87*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_fail_fcs = 28;
88*4a64e381SAndroid Build Coastguard Worker    optional int32 mac_rx_fail_other = 29;
89*4a64e381SAndroid Build Coastguard Worker    optional int32 ip_tx_success = 30;
90*4a64e381SAndroid Build Coastguard Worker    optional int32 ip_rx_success = 31;
91*4a64e381SAndroid Build Coastguard Worker    optional int32 ip_tx_failure = 32;
92*4a64e381SAndroid Build Coastguard Worker    optional int32 ip_rx_failure = 33;
93*4a64e381SAndroid Build Coastguard Worker    optional uint32 node_type = 34;
94*4a64e381SAndroid Build Coastguard Worker    optional uint32 channel = 35;
95*4a64e381SAndroid Build Coastguard Worker    optional int32 radio_tx_power = 36;
96*4a64e381SAndroid Build Coastguard Worker    optional float mac_cca_fail_rate = 37;
97*4a64e381SAndroid Build Coastguard Worker  }
98*4a64e381SAndroid Build Coastguard Worker
99*4a64e381SAndroid Build Coastguard Worker  message WpanTopoFull {
100*4a64e381SAndroid Build Coastguard Worker    optional uint32 rloc16 = 1;
101*4a64e381SAndroid Build Coastguard Worker    optional uint32 router_id = 2;
102*4a64e381SAndroid Build Coastguard Worker    optional uint32 leader_router_id = 3;
103*4a64e381SAndroid Build Coastguard Worker    // Deprecate bytes ext_address.
104*4a64e381SAndroid Build Coastguard Worker    reserved 4;
105*4a64e381SAndroid Build Coastguard Worker    optional bytes leader_address = 5;
106*4a64e381SAndroid Build Coastguard Worker    optional uint32 leader_weight = 6;
107*4a64e381SAndroid Build Coastguard Worker    optional uint32 leader_local_weight = 7;
108*4a64e381SAndroid Build Coastguard Worker    optional bytes network_data = 8;
109*4a64e381SAndroid Build Coastguard Worker    optional uint32 network_data_version = 9;
110*4a64e381SAndroid Build Coastguard Worker    optional bytes stable_network_data = 10;
111*4a64e381SAndroid Build Coastguard Worker    optional uint32 stable_network_data_version = 11;
112*4a64e381SAndroid Build Coastguard Worker    optional uint32 preferred_router_id = 12;
113*4a64e381SAndroid Build Coastguard Worker    optional uint32 partition_id = 13;
114*4a64e381SAndroid Build Coastguard Worker    optional uint32 child_table_size = 14;
115*4a64e381SAndroid Build Coastguard Worker    optional uint32 neighbor_table_size = 15;
116*4a64e381SAndroid Build Coastguard Worker    optional int32 instant_rssi = 16;
117*4a64e381SAndroid Build Coastguard Worker    optional uint64 extended_pan_id = 17;
118*4a64e381SAndroid Build Coastguard Worker    // Indicates the number peer BR in Thread mesh network (from network data)
119*4a64e381SAndroid Build Coastguard Worker    optional uint32 peer_br_count = 18;
120*4a64e381SAndroid Build Coastguard Worker  }
121*4a64e381SAndroid Build Coastguard Worker
122*4a64e381SAndroid Build Coastguard Worker  message TopoEntry {
123*4a64e381SAndroid Build Coastguard Worker    // deprecate bytes ext_address.
124*4a64e381SAndroid Build Coastguard Worker    reserved 1;
125*4a64e381SAndroid Build Coastguard Worker    optional uint32 rloc16 = 2;
126*4a64e381SAndroid Build Coastguard Worker    // link quality with data range: 0~3.
127*4a64e381SAndroid Build Coastguard Worker    optional uint32 link_quality_in = 3;
128*4a64e381SAndroid Build Coastguard Worker    // the most recent RSSI measurement (8 bit).
129*4a64e381SAndroid Build Coastguard Worker    optional int32 average_rssi = 4;
130*4a64e381SAndroid Build Coastguard Worker    optional Duration age = 5;
131*4a64e381SAndroid Build Coastguard Worker    optional bool rx_on_when_idle = 6;
132*4a64e381SAndroid Build Coastguard Worker    optional bool full_function = 7;
133*4a64e381SAndroid Build Coastguard Worker    optional bool secure_data_request = 8;
134*4a64e381SAndroid Build Coastguard Worker    optional bool full_network_data = 9;
135*4a64e381SAndroid Build Coastguard Worker    optional int32 last_rssi = 10;
136*4a64e381SAndroid Build Coastguard Worker    optional uint32 link_frame_counter = 11;
137*4a64e381SAndroid Build Coastguard Worker    optional uint32 mle_frame_counter = 12;
138*4a64e381SAndroid Build Coastguard Worker    optional bool is_child = 13;
139*4a64e381SAndroid Build Coastguard Worker    optional Duration timeout = 14;
140*4a64e381SAndroid Build Coastguard Worker    optional uint32 network_data_version = 15;
141*4a64e381SAndroid Build Coastguard Worker    optional float mac_frame_error_rate = 16;
142*4a64e381SAndroid Build Coastguard Worker    optional float ip_message_error_rate = 17;
143*4a64e381SAndroid Build Coastguard Worker    optional int32 version = 18;
144*4a64e381SAndroid Build Coastguard Worker  }
145*4a64e381SAndroid Build Coastguard Worker
146*4a64e381SAndroid Build Coastguard Worker  enum NodeType {
147*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_UNSPECIFIED = 0;
148*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_ROUTER = 1;
149*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_END = 2;
150*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_SLEEPY_END = 3;
151*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_MINIMAL_END = 4;
152*4a64e381SAndroid Build Coastguard Worker
153*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_OFFLINE = 5;
154*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_DISABLED = 6;
155*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_DETACHED = 7;
156*4a64e381SAndroid Build Coastguard Worker
157*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_NL_LURKER = 0x10;
158*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_COMMISSIONER = 0x20;
159*4a64e381SAndroid Build Coastguard Worker    NODE_TYPE_LEADER = 0x40;
160*4a64e381SAndroid Build Coastguard Worker  }
161*4a64e381SAndroid Build Coastguard Worker
162*4a64e381SAndroid Build Coastguard Worker  message PacketsAndBytes {
163*4a64e381SAndroid Build Coastguard Worker    optional int64 packet_count = 1;
164*4a64e381SAndroid Build Coastguard Worker    optional int64 byte_count = 2;
165*4a64e381SAndroid Build Coastguard Worker  }
166*4a64e381SAndroid Build Coastguard Worker
167*4a64e381SAndroid Build Coastguard Worker  message Nat64TrafficCounters {
168*4a64e381SAndroid Build Coastguard Worker    optional int64 ipv4_to_ipv6_packets = 1;
169*4a64e381SAndroid Build Coastguard Worker    optional int64 ipv4_to_ipv6_bytes = 2;
170*4a64e381SAndroid Build Coastguard Worker    optional int64 ipv6_to_ipv4_packets = 3;
171*4a64e381SAndroid Build Coastguard Worker    optional int64 ipv6_to_ipv4_bytes = 4;
172*4a64e381SAndroid Build Coastguard Worker  }
173*4a64e381SAndroid Build Coastguard Worker
174*4a64e381SAndroid Build Coastguard Worker  message Nat64ProtocolCounters {
175*4a64e381SAndroid Build Coastguard Worker    optional Nat64TrafficCounters tcp = 1;
176*4a64e381SAndroid Build Coastguard Worker    optional Nat64TrafficCounters udp = 2;
177*4a64e381SAndroid Build Coastguard Worker    optional Nat64TrafficCounters icmp = 3;
178*4a64e381SAndroid Build Coastguard Worker  }
179*4a64e381SAndroid Build Coastguard Worker
180*4a64e381SAndroid Build Coastguard Worker  message Nat64PacketCounters {
181*4a64e381SAndroid Build Coastguard Worker    optional int64 ipv4_to_ipv6_packets = 1;
182*4a64e381SAndroid Build Coastguard Worker    optional int64 ipv6_to_ipv4_packets = 2;
183*4a64e381SAndroid Build Coastguard Worker  }
184*4a64e381SAndroid Build Coastguard Worker
185*4a64e381SAndroid Build Coastguard Worker  message Nat64ErrorCounters {
186*4a64e381SAndroid Build Coastguard Worker    optional Nat64PacketCounters unknown = 1;
187*4a64e381SAndroid Build Coastguard Worker    optional Nat64PacketCounters illegal_packet = 2;
188*4a64e381SAndroid Build Coastguard Worker    optional Nat64PacketCounters unsupported_protocol = 3;
189*4a64e381SAndroid Build Coastguard Worker    optional Nat64PacketCounters no_mapping = 4;
190*4a64e381SAndroid Build Coastguard Worker  }
191*4a64e381SAndroid Build Coastguard Worker
192*4a64e381SAndroid Build Coastguard Worker  message BorderRoutingCounters {
193*4a64e381SAndroid Build Coastguard Worker    reserved 1 to 8;
194*4a64e381SAndroid Build Coastguard Worker    // The number of Router Advertisement packets received by otbr-agent on the
195*4a64e381SAndroid Build Coastguard Worker    // infra link
196*4a64e381SAndroid Build Coastguard Worker    optional int64 ra_rx = 9;
197*4a64e381SAndroid Build Coastguard Worker
198*4a64e381SAndroid Build Coastguard Worker    // The number of Router Advertisement packets successfully transmitted by
199*4a64e381SAndroid Build Coastguard Worker    // otbr-agent on the infra link.
200*4a64e381SAndroid Build Coastguard Worker    optional int64 ra_tx_success = 10;
201*4a64e381SAndroid Build Coastguard Worker
202*4a64e381SAndroid Build Coastguard Worker    // The number of Router Advertisement packets failed to transmit by
203*4a64e381SAndroid Build Coastguard Worker    // otbr-agent on the infra link.
204*4a64e381SAndroid Build Coastguard Worker    optional int64 ra_tx_failure = 11;
205*4a64e381SAndroid Build Coastguard Worker
206*4a64e381SAndroid Build Coastguard Worker    // The number of Router Solicitation packets received by otbr-agent on the
207*4a64e381SAndroid Build Coastguard Worker    // infra link
208*4a64e381SAndroid Build Coastguard Worker    optional int64 rs_rx = 12;
209*4a64e381SAndroid Build Coastguard Worker
210*4a64e381SAndroid Build Coastguard Worker    // The number of Router Solicitation packets successfully transmitted by
211*4a64e381SAndroid Build Coastguard Worker    // otbr-agent on the infra link.
212*4a64e381SAndroid Build Coastguard Worker    optional int64 rs_tx_success = 13;
213*4a64e381SAndroid Build Coastguard Worker
214*4a64e381SAndroid Build Coastguard Worker    // The number of Router Solicitation packets failed to transmit by
215*4a64e381SAndroid Build Coastguard Worker    // otbr-agent on the infra link.
216*4a64e381SAndroid Build Coastguard Worker    optional int64 rs_tx_failure = 14;
217*4a64e381SAndroid Build Coastguard Worker
218*4a64e381SAndroid Build Coastguard Worker    // The counters for inbound unicast packets
219*4a64e381SAndroid Build Coastguard Worker    optional PacketsAndBytes inbound_unicast = 15;
220*4a64e381SAndroid Build Coastguard Worker
221*4a64e381SAndroid Build Coastguard Worker    // The counters for inbound multicast packets
222*4a64e381SAndroid Build Coastguard Worker    optional PacketsAndBytes inbound_multicast = 16;
223*4a64e381SAndroid Build Coastguard Worker
224*4a64e381SAndroid Build Coastguard Worker    // The counters for outbound unicast packets
225*4a64e381SAndroid Build Coastguard Worker    optional PacketsAndBytes outbound_unicast = 17;
226*4a64e381SAndroid Build Coastguard Worker
227*4a64e381SAndroid Build Coastguard Worker    // The counters for outbound multicast packets
228*4a64e381SAndroid Build Coastguard Worker    optional PacketsAndBytes outbound_multicast = 18;
229*4a64e381SAndroid Build Coastguard Worker
230*4a64e381SAndroid Build Coastguard Worker    // The inbound and outbound NAT64 traffic through the border router
231*4a64e381SAndroid Build Coastguard Worker    optional Nat64ProtocolCounters nat64_protocol_counters = 19;
232*4a64e381SAndroid Build Coastguard Worker
233*4a64e381SAndroid Build Coastguard Worker    // Error counters for NAT64 translator on the border router
234*4a64e381SAndroid Build Coastguard Worker    optional Nat64ErrorCounters nat64_error_counters = 20;
235*4a64e381SAndroid Build Coastguard Worker
236*4a64e381SAndroid Build Coastguard Worker    // The counter for inbound Internet when DHCPv6 PD enabled
237*4a64e381SAndroid Build Coastguard Worker    optional PacketsAndBytes inbound_internet = 21;
238*4a64e381SAndroid Build Coastguard Worker
239*4a64e381SAndroid Build Coastguard Worker    // The counter for outbound Internet when DHCPv6 PD enabled
240*4a64e381SAndroid Build Coastguard Worker    optional PacketsAndBytes outbound_internet = 22;
241*4a64e381SAndroid Build Coastguard Worker  }
242*4a64e381SAndroid Build Coastguard Worker
243*4a64e381SAndroid Build Coastguard Worker  enum Dhcp6PdState {
244*4a64e381SAndroid Build Coastguard Worker    DHCP6_PD_STATE_UNSPECIFIED = 0;
245*4a64e381SAndroid Build Coastguard Worker
246*4a64e381SAndroid Build Coastguard Worker    // DHCPv6 PD is disabled on the border router.
247*4a64e381SAndroid Build Coastguard Worker    DHCP6_PD_STATE_DISABLED = 1;
248*4a64e381SAndroid Build Coastguard Worker
249*4a64e381SAndroid Build Coastguard Worker    // DHCPv6 PD is enabled but won't try to request and publish a prefix.
250*4a64e381SAndroid Build Coastguard Worker    DHCP6_PD_STATE_STOPPED = 2;
251*4a64e381SAndroid Build Coastguard Worker
252*4a64e381SAndroid Build Coastguard Worker    // DHCPv6 PD is enabled and will try to request and publish a prefix.
253*4a64e381SAndroid Build Coastguard Worker    DHCP6_PD_STATE_RUNNING = 3;
254*4a64e381SAndroid Build Coastguard Worker  }
255*4a64e381SAndroid Build Coastguard Worker
256*4a64e381SAndroid Build Coastguard Worker  message PdProcessedRaInfo {
257*4a64e381SAndroid Build Coastguard Worker    // The number of platform generated RA handled by ApplyPlatfromGeneratedRa.
258*4a64e381SAndroid Build Coastguard Worker    optional uint32 num_platform_ra_received = 1;
259*4a64e381SAndroid Build Coastguard Worker
260*4a64e381SAndroid Build Coastguard Worker    // The number of PIO processed for adding OMR prefixes.
261*4a64e381SAndroid Build Coastguard Worker    optional uint32 num_platform_pio_processed = 2;
262*4a64e381SAndroid Build Coastguard Worker
263*4a64e381SAndroid Build Coastguard Worker    // The timestamp of last processed RA message.
264*4a64e381SAndroid Build Coastguard Worker    optional uint32 last_platform_ra_msec = 3;
265*4a64e381SAndroid Build Coastguard Worker  }
266*4a64e381SAndroid Build Coastguard Worker
267*4a64e381SAndroid Build Coastguard Worker  message SrpServerRegistrationInfo {
268*4a64e381SAndroid Build Coastguard Worker    // The number of active hosts/services registered on the SRP server.
269*4a64e381SAndroid Build Coastguard Worker    optional uint32 fresh_count = 1;
270*4a64e381SAndroid Build Coastguard Worker
271*4a64e381SAndroid Build Coastguard Worker    // The number of hosts/services in 'Deleted' state on the SRP server.
272*4a64e381SAndroid Build Coastguard Worker    optional uint32 deleted_count = 2;
273*4a64e381SAndroid Build Coastguard Worker
274*4a64e381SAndroid Build Coastguard Worker    // The sum of lease time in milliseconds of all active hosts/services on the
275*4a64e381SAndroid Build Coastguard Worker    // SRP server.
276*4a64e381SAndroid Build Coastguard Worker    optional uint64 lease_time_total_ms = 3;
277*4a64e381SAndroid Build Coastguard Worker
278*4a64e381SAndroid Build Coastguard Worker    // The sum of key lease time in milliseconds of all active hosts/services on
279*4a64e381SAndroid Build Coastguard Worker    // the SRP server.
280*4a64e381SAndroid Build Coastguard Worker    optional uint64 key_lease_time_total_ms = 4;
281*4a64e381SAndroid Build Coastguard Worker
282*4a64e381SAndroid Build Coastguard Worker    // The sum of remaining lease time in milliseconds of all active
283*4a64e381SAndroid Build Coastguard Worker    // hosts/services on the SRP server.
284*4a64e381SAndroid Build Coastguard Worker    optional uint64 remaining_lease_time_total_ms = 5;
285*4a64e381SAndroid Build Coastguard Worker
286*4a64e381SAndroid Build Coastguard Worker    // The sum of remaining key lease time in milliseconds of all active
287*4a64e381SAndroid Build Coastguard Worker    // hosts/services on the SRP server.
288*4a64e381SAndroid Build Coastguard Worker    optional uint64 remaining_key_lease_time_total_ms = 6;
289*4a64e381SAndroid Build Coastguard Worker  }
290*4a64e381SAndroid Build Coastguard Worker
291*4a64e381SAndroid Build Coastguard Worker  message SrpServerResponseCounters {
292*4a64e381SAndroid Build Coastguard Worker    // The number of successful responses
293*4a64e381SAndroid Build Coastguard Worker    optional uint32 success_count = 1;
294*4a64e381SAndroid Build Coastguard Worker
295*4a64e381SAndroid Build Coastguard Worker    // The number of server failure responses
296*4a64e381SAndroid Build Coastguard Worker    optional uint32 server_failure_count = 2;
297*4a64e381SAndroid Build Coastguard Worker
298*4a64e381SAndroid Build Coastguard Worker    // The number of format error responses
299*4a64e381SAndroid Build Coastguard Worker    optional uint32 format_error_count = 3;
300*4a64e381SAndroid Build Coastguard Worker
301*4a64e381SAndroid Build Coastguard Worker    // The number of 'name exists' responses
302*4a64e381SAndroid Build Coastguard Worker    optional uint32 name_exists_count = 4;
303*4a64e381SAndroid Build Coastguard Worker
304*4a64e381SAndroid Build Coastguard Worker    // The number of refused responses
305*4a64e381SAndroid Build Coastguard Worker    optional uint32 refused_count = 5;
306*4a64e381SAndroid Build Coastguard Worker
307*4a64e381SAndroid Build Coastguard Worker    // The number of other responses
308*4a64e381SAndroid Build Coastguard Worker    optional uint32 other_count = 6;
309*4a64e381SAndroid Build Coastguard Worker  }
310*4a64e381SAndroid Build Coastguard Worker
311*4a64e381SAndroid Build Coastguard Worker  enum SrpServerState {
312*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_STATE_UNSPECIFIED = 0;
313*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_STATE_DISABLED = 1;
314*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_STATE_RUNNING = 2;
315*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_STATE_STOPPED = 3;
316*4a64e381SAndroid Build Coastguard Worker  }
317*4a64e381SAndroid Build Coastguard Worker
318*4a64e381SAndroid Build Coastguard Worker  // The address mode used by the SRP server
319*4a64e381SAndroid Build Coastguard Worker  enum SrpServerAddressMode {
320*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_ADDRESS_MODE_UNSPECIFIED = 0;
321*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_ADDRESS_MODE_UNICAST = 1;
322*4a64e381SAndroid Build Coastguard Worker    SRP_SERVER_ADDRESS_MODE_STATE_ANYCAST = 2;
323*4a64e381SAndroid Build Coastguard Worker  }
324*4a64e381SAndroid Build Coastguard Worker
325*4a64e381SAndroid Build Coastguard Worker  enum UpstreamDnsQueryState {
326*4a64e381SAndroid Build Coastguard Worker    UPSTREAMDNS_QUERY_STATE_UNSPECIFIED = 0;
327*4a64e381SAndroid Build Coastguard Worker    UPSTREAMDNS_QUERY_STATE_ENABLED = 1;
328*4a64e381SAndroid Build Coastguard Worker    UPSTREAMDNS_QUERY_STATE_DISABLED = 2;
329*4a64e381SAndroid Build Coastguard Worker  }
330*4a64e381SAndroid Build Coastguard Worker
331*4a64e381SAndroid Build Coastguard Worker  message SrpServerInfo {
332*4a64e381SAndroid Build Coastguard Worker    // The state of the SRP server
333*4a64e381SAndroid Build Coastguard Worker    optional SrpServerState state = 1;
334*4a64e381SAndroid Build Coastguard Worker
335*4a64e381SAndroid Build Coastguard Worker    // Listening port number
336*4a64e381SAndroid Build Coastguard Worker    optional uint32 port = 2;
337*4a64e381SAndroid Build Coastguard Worker    // The address mode {unicast, anycast} of the SRP server
338*4a64e381SAndroid Build Coastguard Worker    optional SrpServerAddressMode address_mode = 3;
339*4a64e381SAndroid Build Coastguard Worker
340*4a64e381SAndroid Build Coastguard Worker    // The registration information of hosts on the SRP server
341*4a64e381SAndroid Build Coastguard Worker    optional SrpServerRegistrationInfo hosts = 4;
342*4a64e381SAndroid Build Coastguard Worker
343*4a64e381SAndroid Build Coastguard Worker    // The registration information of services on the SRP server
344*4a64e381SAndroid Build Coastguard Worker    optional SrpServerRegistrationInfo services = 5;
345*4a64e381SAndroid Build Coastguard Worker
346*4a64e381SAndroid Build Coastguard Worker    // The counters of response codes sent by the SRP server
347*4a64e381SAndroid Build Coastguard Worker    optional SrpServerResponseCounters response_counters = 6;
348*4a64e381SAndroid Build Coastguard Worker  }
349*4a64e381SAndroid Build Coastguard Worker
350*4a64e381SAndroid Build Coastguard Worker  message TrelPacketCounters {
351*4a64e381SAndroid Build Coastguard Worker    // The number of packets successfully transmitted through TREL
352*4a64e381SAndroid Build Coastguard Worker    optional uint64 trel_tx_packets = 1;
353*4a64e381SAndroid Build Coastguard Worker
354*4a64e381SAndroid Build Coastguard Worker    // The number of bytes successfully transmitted through TREL
355*4a64e381SAndroid Build Coastguard Worker    optional uint64 trel_tx_bytes = 2;
356*4a64e381SAndroid Build Coastguard Worker
357*4a64e381SAndroid Build Coastguard Worker    // The number of packet transmission failures through TREL
358*4a64e381SAndroid Build Coastguard Worker    optional uint64 trel_tx_packets_failed = 3;
359*4a64e381SAndroid Build Coastguard Worker
360*4a64e381SAndroid Build Coastguard Worker    // The number of packets successfully received through TREL
361*4a64e381SAndroid Build Coastguard Worker    optional uint64 tre_rx_packets = 4;
362*4a64e381SAndroid Build Coastguard Worker
363*4a64e381SAndroid Build Coastguard Worker    // The number of bytes successfully received through TREL
364*4a64e381SAndroid Build Coastguard Worker    optional uint64 trel_rx_bytes = 5;
365*4a64e381SAndroid Build Coastguard Worker  }
366*4a64e381SAndroid Build Coastguard Worker
367*4a64e381SAndroid Build Coastguard Worker  message TrelInfo {
368*4a64e381SAndroid Build Coastguard Worker    // Whether TREL is enabled.
369*4a64e381SAndroid Build Coastguard Worker    optional bool is_trel_enabled = 1;
370*4a64e381SAndroid Build Coastguard Worker
371*4a64e381SAndroid Build Coastguard Worker    // The number of TREL peers.
372*4a64e381SAndroid Build Coastguard Worker    optional uint32 num_trel_peers = 2;
373*4a64e381SAndroid Build Coastguard Worker
374*4a64e381SAndroid Build Coastguard Worker    // TREL packet counters
375*4a64e381SAndroid Build Coastguard Worker    optional TrelPacketCounters counters = 3;
376*4a64e381SAndroid Build Coastguard Worker  }
377*4a64e381SAndroid Build Coastguard Worker
378*4a64e381SAndroid Build Coastguard Worker  message DnsServerResponseCounters {
379*4a64e381SAndroid Build Coastguard Worker    // The number of successful responses
380*4a64e381SAndroid Build Coastguard Worker    optional uint32 success_count = 1;
381*4a64e381SAndroid Build Coastguard Worker
382*4a64e381SAndroid Build Coastguard Worker    // The number of server failure responses
383*4a64e381SAndroid Build Coastguard Worker    optional uint32 server_failure_count = 2;
384*4a64e381SAndroid Build Coastguard Worker
385*4a64e381SAndroid Build Coastguard Worker    // The number of format error responses
386*4a64e381SAndroid Build Coastguard Worker    optional uint32 format_error_count = 3;
387*4a64e381SAndroid Build Coastguard Worker
388*4a64e381SAndroid Build Coastguard Worker    // The number of name error responses
389*4a64e381SAndroid Build Coastguard Worker    optional uint32 name_error_count = 4;
390*4a64e381SAndroid Build Coastguard Worker
391*4a64e381SAndroid Build Coastguard Worker    // The number of 'not implemented' responses
392*4a64e381SAndroid Build Coastguard Worker    optional uint32 not_implemented_count = 5;
393*4a64e381SAndroid Build Coastguard Worker
394*4a64e381SAndroid Build Coastguard Worker    // The number of other responses
395*4a64e381SAndroid Build Coastguard Worker    optional uint32 other_count = 6;
396*4a64e381SAndroid Build Coastguard Worker
397*4a64e381SAndroid Build Coastguard Worker    // The number of queries handled by Upstream DNS server.
398*4a64e381SAndroid Build Coastguard Worker    optional uint32 upstream_dns_queries = 7;
399*4a64e381SAndroid Build Coastguard Worker
400*4a64e381SAndroid Build Coastguard Worker    // The number of responses handled by Upstream DNS server.
401*4a64e381SAndroid Build Coastguard Worker    optional uint32 upstream_dns_responses = 8;
402*4a64e381SAndroid Build Coastguard Worker
403*4a64e381SAndroid Build Coastguard Worker    // The number of upstream DNS failures.
404*4a64e381SAndroid Build Coastguard Worker    optional uint32 upstream_dns_failures = 9;
405*4a64e381SAndroid Build Coastguard Worker  }
406*4a64e381SAndroid Build Coastguard Worker
407*4a64e381SAndroid Build Coastguard Worker  message DnsServerInfo {
408*4a64e381SAndroid Build Coastguard Worker    // The counters of response codes sent by the DNS server
409*4a64e381SAndroid Build Coastguard Worker    optional DnsServerResponseCounters response_counters = 1;
410*4a64e381SAndroid Build Coastguard Worker
411*4a64e381SAndroid Build Coastguard Worker    // The number of DNS queries resolved at the local SRP server
412*4a64e381SAndroid Build Coastguard Worker    optional uint32 resolved_by_local_srp_count = 2;
413*4a64e381SAndroid Build Coastguard Worker
414*4a64e381SAndroid Build Coastguard Worker    // The state of upstream DNS query
415*4a64e381SAndroid Build Coastguard Worker    optional UpstreamDnsQueryState upstream_dns_query_state = 3;
416*4a64e381SAndroid Build Coastguard Worker  }
417*4a64e381SAndroid Build Coastguard Worker
418*4a64e381SAndroid Build Coastguard Worker  message MdnsResponseCounters {
419*4a64e381SAndroid Build Coastguard Worker    // The number of successful responses
420*4a64e381SAndroid Build Coastguard Worker    optional uint32 success_count = 1;
421*4a64e381SAndroid Build Coastguard Worker
422*4a64e381SAndroid Build Coastguard Worker    // The number of 'not found' responses
423*4a64e381SAndroid Build Coastguard Worker    optional uint32 not_found_count = 2;
424*4a64e381SAndroid Build Coastguard Worker
425*4a64e381SAndroid Build Coastguard Worker    // The number of 'invalid arg' responses
426*4a64e381SAndroid Build Coastguard Worker    optional uint32 invalid_args_count = 3;
427*4a64e381SAndroid Build Coastguard Worker
428*4a64e381SAndroid Build Coastguard Worker    // The number of 'duplicated' responses
429*4a64e381SAndroid Build Coastguard Worker    optional uint32 duplicated_count = 4;
430*4a64e381SAndroid Build Coastguard Worker
431*4a64e381SAndroid Build Coastguard Worker    // The number of 'not implemented' responses
432*4a64e381SAndroid Build Coastguard Worker    optional uint32 not_implemented_count = 5;
433*4a64e381SAndroid Build Coastguard Worker
434*4a64e381SAndroid Build Coastguard Worker    // The number of unknown error responses
435*4a64e381SAndroid Build Coastguard Worker    optional uint32 unknown_error_count = 6;
436*4a64e381SAndroid Build Coastguard Worker
437*4a64e381SAndroid Build Coastguard Worker    // The number of aborted responses
438*4a64e381SAndroid Build Coastguard Worker    optional uint32 aborted_count = 7;
439*4a64e381SAndroid Build Coastguard Worker
440*4a64e381SAndroid Build Coastguard Worker    // The number of invalid state responses
441*4a64e381SAndroid Build Coastguard Worker    optional uint32 invalid_state_count = 8;
442*4a64e381SAndroid Build Coastguard Worker  }
443*4a64e381SAndroid Build Coastguard Worker
444*4a64e381SAndroid Build Coastguard Worker  message MdnsInfo {
445*4a64e381SAndroid Build Coastguard Worker    // The response counters of host registrations
446*4a64e381SAndroid Build Coastguard Worker    optional MdnsResponseCounters host_registration_responses = 1;
447*4a64e381SAndroid Build Coastguard Worker
448*4a64e381SAndroid Build Coastguard Worker    // The response counters of service registrations
449*4a64e381SAndroid Build Coastguard Worker    optional MdnsResponseCounters service_registration_responses = 2;
450*4a64e381SAndroid Build Coastguard Worker
451*4a64e381SAndroid Build Coastguard Worker    // The response counters of host resolutions
452*4a64e381SAndroid Build Coastguard Worker    optional MdnsResponseCounters host_resolution_responses = 3;
453*4a64e381SAndroid Build Coastguard Worker
454*4a64e381SAndroid Build Coastguard Worker    // The response counters of service resolutions
455*4a64e381SAndroid Build Coastguard Worker    optional MdnsResponseCounters service_resolution_responses = 4;
456*4a64e381SAndroid Build Coastguard Worker
457*4a64e381SAndroid Build Coastguard Worker    // The EMA (Exponential Moving Average) latencies of mDNS operations
458*4a64e381SAndroid Build Coastguard Worker
459*4a64e381SAndroid Build Coastguard Worker    // The EMA latency of host registrations in milliseconds
460*4a64e381SAndroid Build Coastguard Worker    optional uint32 host_registration_ema_latency_ms = 5;
461*4a64e381SAndroid Build Coastguard Worker
462*4a64e381SAndroid Build Coastguard Worker    // The EMA latency of service registrations in milliseconds
463*4a64e381SAndroid Build Coastguard Worker    optional uint32 service_registration_ema_latency_ms = 6;
464*4a64e381SAndroid Build Coastguard Worker
465*4a64e381SAndroid Build Coastguard Worker    // The EMA latency of host resolutions in milliseconds
466*4a64e381SAndroid Build Coastguard Worker    optional uint32 host_resolution_ema_latency_ms = 7;
467*4a64e381SAndroid Build Coastguard Worker
468*4a64e381SAndroid Build Coastguard Worker    // The EMA latency of service resolutions in milliseconds
469*4a64e381SAndroid Build Coastguard Worker    optional uint32 service_resolution_ema_latency_ms = 8;
470*4a64e381SAndroid Build Coastguard Worker  }
471*4a64e381SAndroid Build Coastguard Worker
472*4a64e381SAndroid Build Coastguard Worker  enum Nat64State {
473*4a64e381SAndroid Build Coastguard Worker    NAT64_STATE_UNSPECIFIED = 0;
474*4a64e381SAndroid Build Coastguard Worker    NAT64_STATE_DISABLED = 1;
475*4a64e381SAndroid Build Coastguard Worker    NAT64_STATE_NOT_RUNNING = 2;
476*4a64e381SAndroid Build Coastguard Worker    NAT64_STATE_IDLE = 3;
477*4a64e381SAndroid Build Coastguard Worker    NAT64_STATE_ACTIVE = 4;
478*4a64e381SAndroid Build Coastguard Worker  }
479*4a64e381SAndroid Build Coastguard Worker
480*4a64e381SAndroid Build Coastguard Worker  message BorderRoutingNat64State {
481*4a64e381SAndroid Build Coastguard Worker    optional Nat64State prefix_manager_state = 1;
482*4a64e381SAndroid Build Coastguard Worker    optional Nat64State translator_state = 2;
483*4a64e381SAndroid Build Coastguard Worker  }
484*4a64e381SAndroid Build Coastguard Worker
485*4a64e381SAndroid Build Coastguard Worker  message Nat64Mapping {
486*4a64e381SAndroid Build Coastguard Worker    optional uint64 mapping_id = 1;
487*4a64e381SAndroid Build Coastguard Worker    optional bytes hashed_ipv6_address = 2;
488*4a64e381SAndroid Build Coastguard Worker    optional Nat64ProtocolCounters counters = 3;
489*4a64e381SAndroid Build Coastguard Worker  }
490*4a64e381SAndroid Build Coastguard Worker
491*4a64e381SAndroid Build Coastguard Worker  message InfraLinkInfo {
492*4a64e381SAndroid Build Coastguard Worker    optional string name = 1;
493*4a64e381SAndroid Build Coastguard Worker    optional bool is_up = 2;
494*4a64e381SAndroid Build Coastguard Worker    optional bool is_running = 3;
495*4a64e381SAndroid Build Coastguard Worker    optional bool is_multicast = 4;
496*4a64e381SAndroid Build Coastguard Worker    optional uint32 link_local_address_count = 5;
497*4a64e381SAndroid Build Coastguard Worker    optional uint32 unique_local_address_count = 6;
498*4a64e381SAndroid Build Coastguard Worker    optional uint32 global_unicast_address_count = 7;
499*4a64e381SAndroid Build Coastguard Worker    // Indicates how many peer BRs (connected to the same Thread mesh network) are on the infra link.
500*4a64e381SAndroid Build Coastguard Worker    optional uint32 peer_br_count = 8;
501*4a64e381SAndroid Build Coastguard Worker  }
502*4a64e381SAndroid Build Coastguard Worker
503*4a64e381SAndroid Build Coastguard Worker  // Message to indicate the information of external routes in network data.
504*4a64e381SAndroid Build Coastguard Worker  message ExternalRoutes {
505*4a64e381SAndroid Build Coastguard Worker    // Indicates whether the a zero-length prefix (::/0) added from this BR
506*4a64e381SAndroid Build Coastguard Worker    optional bool has_default_route_added = 1;
507*4a64e381SAndroid Build Coastguard Worker
508*4a64e381SAndroid Build Coastguard Worker    // Indicates whether the a ULA prefix (fc00::/7) added from this BR
509*4a64e381SAndroid Build Coastguard Worker    optional bool has_ula_route_added = 2;
510*4a64e381SAndroid Build Coastguard Worker
511*4a64e381SAndroid Build Coastguard Worker    // Indicates whether the other prefixes (other than "::/0" or "fc00::/7") added
512*4a64e381SAndroid Build Coastguard Worker    // from this BR. (BR is a managed infrastructure router).
513*4a64e381SAndroid Build Coastguard Worker    optional bool has_others_route_added = 3;
514*4a64e381SAndroid Build Coastguard Worker  }
515*4a64e381SAndroid Build Coastguard Worker
516*4a64e381SAndroid Build Coastguard Worker  message BorderAgentCounters {
517*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc activations
518*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_activations = 1;
519*4a64e381SAndroid Build Coastguard Worker
520*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc deactivations due to cleared via API
521*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_deactivation_clears = 2;
522*4a64e381SAndroid Build Coastguard Worker
523*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc deactivations due to timeout
524*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_deactivation_timeouts = 3;
525*4a64e381SAndroid Build Coastguard Worker
526*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc deactivations due to max connection attempts reached
527*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_deactivation_max_attempts = 4;
528*4a64e381SAndroid Build Coastguard Worker
529*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc deactivations due to commissioner disconnected
530*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_deactivation_disconnects = 5;
531*4a64e381SAndroid Build Coastguard Worker
532*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc activation failures caused by invalid border agent state
533*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_invalid_ba_state_errors = 6;
534*4a64e381SAndroid Build Coastguard Worker
535*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc activation failures caused by invalid argument
536*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_invalid_args_errors = 7;
537*4a64e381SAndroid Build Coastguard Worker
538*4a64e381SAndroid Build Coastguard Worker    // The number of ePSKc activation failures caused by failed to start secure session
539*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_start_secure_session_errors = 8;
540*4a64e381SAndroid Build Coastguard Worker
541*4a64e381SAndroid Build Coastguard Worker    // The number of successful secure session establishment with ePSKc
542*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_secure_session_successes = 9;
543*4a64e381SAndroid Build Coastguard Worker
544*4a64e381SAndroid Build Coastguard Worker    // The number of failed secure session establishement with ePSKc
545*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_secure_session_failures = 10;
546*4a64e381SAndroid Build Coastguard Worker
547*4a64e381SAndroid Build Coastguard Worker    // The number of active commissioner petitioned over secure session establishment with ePSKc
548*4a64e381SAndroid Build Coastguard Worker    optional uint32 epskc_commissioner_petitions = 11;
549*4a64e381SAndroid Build Coastguard Worker
550*4a64e381SAndroid Build Coastguard Worker    // The number of successful secure session establishment with PSKc
551*4a64e381SAndroid Build Coastguard Worker    optional uint32 pskc_secure_session_successes = 12;
552*4a64e381SAndroid Build Coastguard Worker
553*4a64e381SAndroid Build Coastguard Worker    // The number of failed secure session establishement with PSKc
554*4a64e381SAndroid Build Coastguard Worker    optional uint32 pskc_secure_session_failures = 13;
555*4a64e381SAndroid Build Coastguard Worker
556*4a64e381SAndroid Build Coastguard Worker    // The number of active commissioner petitioned over secure session establishment with PSKc
557*4a64e381SAndroid Build Coastguard Worker    optional uint32 pskc_commissioner_petitions = 14;
558*4a64e381SAndroid Build Coastguard Worker
559*4a64e381SAndroid Build Coastguard Worker    // The number of MGMT_ACTIVE_GET.req received
560*4a64e381SAndroid Build Coastguard Worker    optional uint32 mgmt_active_get_reqs = 15;
561*4a64e381SAndroid Build Coastguard Worker
562*4a64e381SAndroid Build Coastguard Worker    // The number of MGMT_PENDING_GET.req received
563*4a64e381SAndroid Build Coastguard Worker    optional uint32 mgmt_pending_get_reqs = 16;
564*4a64e381SAndroid Build Coastguard Worker  }
565*4a64e381SAndroid Build Coastguard Worker
566*4a64e381SAndroid Build Coastguard Worker  message BorderAgentInfo {
567*4a64e381SAndroid Build Coastguard Worker    // The border agent counters
568*4a64e381SAndroid Build Coastguard Worker    optional BorderAgentCounters border_agent_counters = 1;
569*4a64e381SAndroid Build Coastguard Worker  }
570*4a64e381SAndroid Build Coastguard Worker
571*4a64e381SAndroid Build Coastguard Worker  message WpanBorderRouter {
572*4a64e381SAndroid Build Coastguard Worker    // Border routing counters
573*4a64e381SAndroid Build Coastguard Worker    optional BorderRoutingCounters border_routing_counters = 1;
574*4a64e381SAndroid Build Coastguard Worker
575*4a64e381SAndroid Build Coastguard Worker    // Information about the SRP server
576*4a64e381SAndroid Build Coastguard Worker    optional SrpServerInfo srp_server = 2;
577*4a64e381SAndroid Build Coastguard Worker
578*4a64e381SAndroid Build Coastguard Worker    // Information about the DNS server
579*4a64e381SAndroid Build Coastguard Worker    optional DnsServerInfo dns_server = 3;
580*4a64e381SAndroid Build Coastguard Worker
581*4a64e381SAndroid Build Coastguard Worker    // Information about the mDNS publisher
582*4a64e381SAndroid Build Coastguard Worker    optional MdnsInfo mdns = 4;
583*4a64e381SAndroid Build Coastguard Worker
584*4a64e381SAndroid Build Coastguard Worker    // TODO(b/285457467): remove this reserved proto field.
585*4a64e381SAndroid Build Coastguard Worker    reserved 5;
586*4a64e381SAndroid Build Coastguard Worker
587*4a64e381SAndroid Build Coastguard Worker    // Information about the state of components of NAT64
588*4a64e381SAndroid Build Coastguard Worker    optional BorderRoutingNat64State nat64_state = 6;
589*4a64e381SAndroid Build Coastguard Worker
590*4a64e381SAndroid Build Coastguard Worker    // Information about the mappings of NAT64 translator
591*4a64e381SAndroid Build Coastguard Worker    repeated Nat64Mapping nat64_mappings = 7;
592*4a64e381SAndroid Build Coastguard Worker
593*4a64e381SAndroid Build Coastguard Worker    // DHCPv6 PD state
594*4a64e381SAndroid Build Coastguard Worker    optional Dhcp6PdState dhcp6_pd_state = 8;
595*4a64e381SAndroid Build Coastguard Worker
596*4a64e381SAndroid Build Coastguard Worker    // DHCPv6 PD prefix
597*4a64e381SAndroid Build Coastguard Worker    optional bytes hashed_pd_prefix = 9;
598*4a64e381SAndroid Build Coastguard Worker
599*4a64e381SAndroid Build Coastguard Worker    // DHCPv6 PD processed RA Info
600*4a64e381SAndroid Build Coastguard Worker    optional PdProcessedRaInfo pd_processed_ra_info= 10;
601*4a64e381SAndroid Build Coastguard Worker
602*4a64e381SAndroid Build Coastguard Worker    // Information about TREL.
603*4a64e381SAndroid Build Coastguard Worker    optional TrelInfo trel_info = 11;
604*4a64e381SAndroid Build Coastguard Worker
605*4a64e381SAndroid Build Coastguard Worker    // Information about the infra link
606*4a64e381SAndroid Build Coastguard Worker    optional InfraLinkInfo infra_link_info = 12;
607*4a64e381SAndroid Build Coastguard Worker
608*4a64e381SAndroid Build Coastguard Worker    // Information about the external routes in network data.
609*4a64e381SAndroid Build Coastguard Worker    optional ExternalRoutes external_route_info = 13;
610*4a64e381SAndroid Build Coastguard Worker
611*4a64e381SAndroid Build Coastguard Worker    // Information about the Border Agent
612*4a64e381SAndroid Build Coastguard Worker    optional BorderAgentInfo border_agent_info = 14;
613*4a64e381SAndroid Build Coastguard Worker  }
614*4a64e381SAndroid Build Coastguard Worker
615*4a64e381SAndroid Build Coastguard Worker  message RcpStabilityStatistics {
616*4a64e381SAndroid Build Coastguard Worker    optional uint32 rcp_timeout_count = 1;
617*4a64e381SAndroid Build Coastguard Worker    optional uint32 rcp_reset_count = 2;
618*4a64e381SAndroid Build Coastguard Worker    optional uint32 rcp_restoration_count = 3;
619*4a64e381SAndroid Build Coastguard Worker    optional uint32 spinel_parse_error_count = 4;
620*4a64e381SAndroid Build Coastguard Worker    optional int32 rcp_firmware_update_count = 5;
621*4a64e381SAndroid Build Coastguard Worker    optional uint32 thread_stack_uptime = 6;
622*4a64e381SAndroid Build Coastguard Worker  }
623*4a64e381SAndroid Build Coastguard Worker
624*4a64e381SAndroid Build Coastguard Worker  message RcpInterfaceStatistics {
625*4a64e381SAndroid Build Coastguard Worker    optional uint32 rcp_interface_type = 1;
626*4a64e381SAndroid Build Coastguard Worker    optional uint64 transferred_frames_count = 2;
627*4a64e381SAndroid Build Coastguard Worker    optional uint64 transferred_valid_frames_count = 3;
628*4a64e381SAndroid Build Coastguard Worker    optional uint64 transferred_garbage_frames_count = 4;
629*4a64e381SAndroid Build Coastguard Worker    optional uint64 rx_frames_count = 5;
630*4a64e381SAndroid Build Coastguard Worker    optional uint64 rx_bytes_count = 6;
631*4a64e381SAndroid Build Coastguard Worker    optional uint64 tx_frames_count = 7;
632*4a64e381SAndroid Build Coastguard Worker    optional uint64 tx_bytes_count = 8;
633*4a64e381SAndroid Build Coastguard Worker  }
634*4a64e381SAndroid Build Coastguard Worker
635*4a64e381SAndroid Build Coastguard Worker  message WpanRcp {
636*4a64e381SAndroid Build Coastguard Worker    optional RcpStabilityStatistics rcp_stability_statistics = 1;
637*4a64e381SAndroid Build Coastguard Worker    optional RcpInterfaceStatistics rcp_interface_statistics = 2;
638*4a64e381SAndroid Build Coastguard Worker  }
639*4a64e381SAndroid Build Coastguard Worker
640*4a64e381SAndroid Build Coastguard Worker  message CoexMetrics {
641*4a64e381SAndroid Build Coastguard Worker    // Use uint32 instead of int64 to save space for payload, and align with the
642*4a64e381SAndroid Build Coastguard Worker    // raw data size.
643*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_tx_request = 1;
644*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_tx_grant_immediate = 2;
645*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_tx_grant_wait = 3;
646*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_tx_grant_wait_activated = 4;
647*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_tx_grant_wait_timeout = 5;
648*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_tx_grant_deactivated_during_request = 6;
649*4a64e381SAndroid Build Coastguard Worker    optional uint32 tx_average_request_to_grant_time_us = 7;
650*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_request = 8;
651*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_grant_immediate = 9;
652*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_grant_wait = 10;
653*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_grant_wait_activated = 11;
654*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_grant_wait_timeout = 12;
655*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_grant_deactivated_during_request = 13;
656*4a64e381SAndroid Build Coastguard Worker    optional uint32 count_rx_grant_none = 14;
657*4a64e381SAndroid Build Coastguard Worker    optional uint32 rx_average_request_to_grant_time_us = 15;
658*4a64e381SAndroid Build Coastguard Worker  }
659*4a64e381SAndroid Build Coastguard Worker
660*4a64e381SAndroid Build Coastguard Worker  message LinkMetricsEntry {
661*4a64e381SAndroid Build Coastguard Worker    optional int32 link_margin = 1;
662*4a64e381SAndroid Build Coastguard Worker    optional int32 rssi = 2;
663*4a64e381SAndroid Build Coastguard Worker  }
664*4a64e381SAndroid Build Coastguard Worker
665*4a64e381SAndroid Build Coastguard Worker  message LowPowerMetrics {
666*4a64e381SAndroid Build Coastguard Worker    repeated LinkMetricsEntry link_metrics_entries = 1;
667*4a64e381SAndroid Build Coastguard Worker  }
668*4a64e381SAndroid Build Coastguard Worker
669*4a64e381SAndroid Build Coastguard Worker  optional WpanStats wpan_stats = 1;
670*4a64e381SAndroid Build Coastguard Worker  optional WpanTopoFull wpan_topo_full = 2;
671*4a64e381SAndroid Build Coastguard Worker  repeated TopoEntry topo_entries = 3;
672*4a64e381SAndroid Build Coastguard Worker  optional WpanBorderRouter wpan_border_router = 4;
673*4a64e381SAndroid Build Coastguard Worker  optional WpanRcp wpan_rcp = 5;
674*4a64e381SAndroid Build Coastguard Worker  // Deprecate CoexMetrics with int64 as its fields types to save storage.
675*4a64e381SAndroid Build Coastguard Worker  reserved 6;
676*4a64e381SAndroid Build Coastguard Worker  optional CoexMetrics coex_metrics = 7;
677*4a64e381SAndroid Build Coastguard Worker  optional LowPowerMetrics low_power_metrics = 8;
678*4a64e381SAndroid Build Coastguard Worker}
679