xref: /aosp_15_r20/external/ot-br-posix/src/dbus/server/introspect.xml (revision 4a64e381480ef79f0532b2421e44e6ee336b8e0d)
1<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
2 "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
3<node>
4  <interface name="io.openthread.BorderRouter">
5    <!-- Scan: Perform a Thread network scan.
6      @scan_result: array of scan results.
7
8      The result struture definition is:
9      <literallayout>
10        struct {
11          uint64 ext_address
12          string network_name
13          uint64 ext_panid
14          uint8[] steering_data
15          uint16 panid
16          uint16 joiner_udp_port
17          uint8 channel
18          int16 rssi
19          uint8 lqi
20          uint8 version
21          bool is_native
22          bool is_joinable
23        }
24      </literallayout>
25    -->
26    <method name="Scan">
27      <arg name="scan_result" type="a(tstayqqynyybb)" direction="out"/>
28    </method>
29
30    <!-- Energy Scan: Perform a Thread energy scan.
31      @scanDuration: The 32-bit duration time for the scan of each channel, in milliseconds.
32
33      @result: array of energy scan results.
34
35      The result struture definition is:
36      <literallayout>
37        struct {
38          uint8  channel
39          int8_t max_rssi
40        }
41      </literallayout>
42    -->
43    <method name="EnergyScan">
44      <arg name="scanduration" type="u"/>
45      <arg name="result" type="a(yy)" direction="out"/>
46    </method>
47
48    <!-- Attach: Attach the current device to the Thread network.
49      @networkkey: The 128-bit network network key, empty for random.
50      @panid: The 16-bit panid, UINT16_MAX for any.
51      @networkname: The Thread network name.
52      @extpanid: The 64-bit extended panid, UINT64_MAX for random.
53      @pskc: The 128-bit pre-shared key for commissione, empty for random.
54      @channel_mask: The bitwise channel mask, will randomly select a valid channel.
55
56      You can also call this method with no arugment to use the current active network dataset.
57    -->
58    <method name="Attach">
59      <arg name="networkkey" type="ay"/>
60      <arg name="panid" type="q"/>
61      <arg name="networkname" type="s"/>
62      <arg name="extpanid" type="t"/>
63      <arg name="pskc" type="ay"/>
64      <arg name="channel_mask" type="u"/>
65    </method>
66
67    <!-- AttachAllNodesTo: Request to attach all nodes to the specified Thread network.
68      @dataset: The Operational Dataset that contains parameter values of the Thread network
69                to attach to. It must be a full dataset.
70      @delay_ms: The delay between the method returns and the dataset takes effect, in
71                 milliseconds. If this value is 0, then the node is attached to the given network
72                 when this method returns. If this value is not 0, then the node is attached to
73                 its existing network when this method returns, and will attach to the given
74                 network after the delay.
75    -->
76    <method name="AttachAllNodesTo">
77      <arg name="dataset" type="ay"/>
78      <arg name="delay_ms" type="x" direction="out"/>
79    </method>
80
81    <!-- Detach: Detach the current device from the Thread network. -->
82    <method name="Detach">
83    </method>
84
85    <!-- PermitUnsecureJoin: Allow joining the network via unsecure traffic temporarily.
86      @port: The port of the unsecure traffic.
87      @timeout: The timeout for the permission.
88    -->
89    <method name="PermitUnsecureJoin">
90      <arg name="port" type="q"/>
91      <arg name="timeout" type="u"/>
92    </method>
93
94    <!-- JoinerStart: Start Thread joining.
95      @pskd: The pre-shared key for the device.
96      @provision_url: The url for further provision.
97      @vendor vendor_name: The current device vendor name.
98      @vendor vendor_model: The current device model.
99      @vendor vendor_sw_version: The current device software version.
100      @vendor vendor_data: The additional vendor data.
101    -->
102    <method name="JoinerStart">
103      <arg name="pskd" type="s"/>
104      <arg name="provision_url" type="s"/>
105      <arg name="vendor_name" type="s"/>
106      <arg name="vendor_model" type="s"/>
107      <arg name="vendor_sw_version" type="s"/>
108      <arg name="vendor_data" type="s"/>
109    </method>
110
111    <!-- JoinerStop: Stop Thread joining. -->
112    <method name="JoinerStop">
113    </method>
114
115    <!-- FactoryReset: Perform a factory reset, will wipe all Thread persistent data. -->
116    <method name="FactoryReset">
117    </method>
118
119    <!-- Reset: Perform a reset, will try to resume the network after reset. -->
120    <method name="Reset">
121    </method>
122
123    <!-- AddExternalRoute: Add an external border routing rule to the network.
124      @prefix: The prefix for border routing.
125
126      This will make the current device act as the border router for the prefix.
127      The prefix structure is:
128      <literallayout>
129        struct {
130          struct {
131            uint8[] prefix_bytes
132            uint8 prefix_length
133          }
134          uint16 rloc // Not used
135          uint8 preference
136          bool stable
137          bool next_hop_is_self // Not used
138        }
139      </literallayout>
140    -->
141    <method name="AddExternalRoute">
142      <arg name="prefix" type="((ayy)qybb)"/>
143    </method>
144
145    <!-- RemoveExternalRoute: Remove an external border routing rule from the network.
146      @prefix: The prefix for border routing.
147
148      The prefix structure is:
149      <literallayout>
150        struct {
151          uint8[] prefix_bytes
152          uint8 prefix_length
153        }
154      </literallayout>
155    -->
156    <method name="RemoveExternalRoute">
157      <arg name="prefix" type="(ayy)"/>
158    </method>
159
160    <!-- AddOnMeshPrefix: Add an on-mesh prefix to the network.
161      @prefix: The on-mesh prefix.
162
163      The on-mesh prefix structure is:
164      <literallayout>
165        struct {
166          struct {
167            uint8[] prefix_bytes
168            uint8 prefix_length
169          }
170          uint16 rloc16
171          byte preference
172          bool preferred
173          bool slaac
174          bool dhcp
175          bool configure
176          bool default_route
177          bool on_mesh
178          bool stable
179          bool nd_dns
180          bool dp
181        }
182      </literallayout>
183    -->
184    <method name="AddOnMeshPrefix">
185      <arg name="prefix" type="((ayy)qybbbbbbbbb)"/>
186    </method>
187
188    <!-- RemoveOnMeshPrefix: Remove an on-mesh prefix from the network.
189      @prefix: The on-mesh prefix.
190
191      The prefix structure is:
192      <literallayout>
193        struct {
194          uint8[] prefix_bytes
195          uint8 prefix_length
196        }
197      </literallayout>
198    -->
199    <method name="RemoveOnMeshPrefix">
200      <arg name="prefix" type="(ayy)"/>
201    </method>
202
203    <!-- UpdateMeshCopTxt: Update multiple entries in the TXT record.
204      @key: The key of the entry.
205      @value: The value of the entry.
206
207      The prefix structure is:
208      <literallayout>
209        struct {
210          string key
211          uint8[] value
212        }
213      </literallayout>
214    -->
215    <method name="UpdateVendorMeshCopTxtEntries">
216      <arg name="update" type="a(say)" direction="in"/>
217    </method>
218
219    <!-- GetProperties: Get one or more OpenThread properties.
220      @properties: Names of properties.
221    -->
222    <method name="GetProperties">
223      <arg name="properties" type="as" direction="in"/>
224    </method>
225
226    <!-- LeaveNetwork: Detach from the network and forget the credentials. -->
227    <method name="LeaveNetwork">
228    </method>
229
230    <method name="SetNat64Enabled">
231      <arg name="enable" type="b" direction="in"/>
232    </method>
233
234    <property name="EphemeralKeyEnabled" type="b" access="readwrite">
235      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
236    </property>
237
238    <!-- ActivateEphemeralKeyMode: Activate ePSKc mode.
239      @lifetime: in milliseconds, duration of active ePSKc mode before secure session is established.
240                 0 for OT_BORDER_AGENT_DEFAULT_EPHEMERAL_KEY_TIMEOUT (2 min).
241      @epskc: returns the ephemeral key digit string of length 9 with first 8 digits randomly generated,
242              and the last digit as verhoeff checksum.
243    -->
244    <method name="ActivateEphemeralKeyMode">
245      <arg name="lifetime" type="u" direction="in"/>
246      <arg name="epskc" type="s" direction="out"/>
247    </method>
248
249    <!-- DeactivateEphemeralKeyMode: Deactivate ePSKc mode. -->
250    <method name="DeactivateEphemeralKeyMode">
251    </method>
252
253    <!-- MeshLocalPrefix: The /64 mesh-local prefix.  -->
254    <property name="MeshLocalPrefix" type="ay" access="readwrite">
255      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
256    </property>
257
258    <!-- LinkMode: The current link mode.
259      <literallayout>
260      struct {
261        bool rx_on_when_idle    //whether the radio receiving is on when idle
262        bool device_type        //ftd or mtd
263        bool network_data       //full or stable
264      }
265      </literallayout>
266    -->
267    <property name="LinkMode" type="(bbb)" access="readwrite">
268      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
269    </property>
270
271    <!-- DeviceRole: The current device role.
272      Possible values are:
273      <literallayout>
274        0: Disabled
275        1: Detached
276        2: Child
277        3: Router
278        4: Leader
279      </literallayout>
280    -->
281    <property name="DeviceRole" type="s" access="read">
282      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
283    </property>
284
285    <!-- NetworkName: The network name. -->
286    <property name="NetworkName" type="s" access="read">
287      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
288    </property>
289
290    <!-- PanId: The pan ID. -->
291    <property name="PanId" type="q" access="read">
292      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
293    </property>
294
295    <!-- ExtPanId: The extended pan ID. -->
296    <property name="ExtPanId" type="t" access="read">
297      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
298    </property>
299
300    <!-- Channel: The current network channel, from 11 to 26 -->
301    <property name="Channel" type="q" access="read">
302      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
303    </property>
304
305    <!-- CcaFailureRate: The Clear Channel Assessment failure rate. -->
306    <property name="CcaFailureRate" type="q" access="read">
307      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
308    </property>
309
310    <!-- MacCounters: The mac layer statistic counters.
311      The counter structure definition:
312      <literallayout>
313        struct {
314          uint32 tx_total;
315          uint32 tx_unicast;
316          uint32 tx_broadcast;
317          uint32 tx_ack_requested;
318          uint32 tx_acked;
319          uint32 tx_no_ack_requested;
320          uint32 tx_data;
321          uint32 tx_data_poll;
322          uint32 tx_beacon;
323          uint32 tx_beacon_request;
324          uint32 tx_other;
325          uint32 tx_retry;
326          uint32 tx_err_cca;
327          uint32 tx_err_abort;
328          uint32 tx_busy_channel;
329          uint32 rx_total;
330          uint32 rx_unicast;
331          uint32 rx_broadcast;
332          uint32 rx_data;
333          uint32 rx_data_poll;
334          uint32 rx_beacon;
335          uint32 rx_beacon_request;
336          uint32 rx_other;
337          uint32 rx_address_filtered;
338          uint32 rx_dest_address_filtered;
339          uint32 rx_duplicated;
340          uint32 rx_err_no_frame;
341          uint32 rx_err_unknown_neighbor;
342          uint32 rx_err_invalid_src_addr;
343          uint32 rx_err_sec;
344          uint32 rx_err_fcs;
345          uint32 rx_err_other;
346        }
347      </literallayout>
348    -->
349    <property name="MacCounters" type="(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu)" access="read">
350      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
351    </property>
352
353    <!-- LinkCounters: The link statistic counters.
354      The counter structure definition:
355      <literallayout>
356        struct {
357          uint32 ip_tx_success;
358          uint32 ip_rx_success;
359          uint32 ip_tx_failure;
360          uint32 ip_rx_failure;
361        }
362      </literallayout>
363    -->
364    <property name="LinkCounters" type="(uuuu)" access="read">
365      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
366    </property>
367
368    <!-- LinkSupportedChannelMask: The bitwise link supported channel mask -->
369    <property name="LinkSupportedChannelMask" type="u" access="read">
370      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
371    </property>
372
373    <!-- LinkPreferredChannelMask: The bitwise link preferred channel mask -->
374    <property name="LinkPreferredChannelMask" type="u" access="read">
375      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
376    </property>
377
378    <!-- Rloc16: The 16-bit routing locator -->
379    <property name="Rloc16" type="q" access="read">
380      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
381    </property>
382
383    <!-- ExtendedAddress: The 64-bit extended address -->
384    <property name="ExtendedAddress" type="t" access="read">
385      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
386    </property>
387
388    <!-- RouterID: The current router ID -->
389    <property name="RouterID" type="y" access="read">
390      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
391    </property>
392
393    <!-- LeaderData: The network leader data.
394      The structure definition:
395      <literallayout>
396        struct {
397          uint32_t mPartitionId;       // Partition ID
398          uint8_t  mWeighting;         // Leader Weight
399          uint8_t  mDataVersion;       // Full Network Data Version
400          uint8_t  mStableDataVersion; // Stable Network Data Version
401          uint8_t  mLeaderRouterId;    // Leader Router ID
402        }
403      </literallayout>
404    -->
405    <property name="LeaderData" type="(uyyyy)" access="read">
406      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
407    </property>
408
409    <!-- NetworkData: The network data. -->
410    <property name="NetworkData" type="ay" access="read">
411      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
412    </property>
413
414    <!-- StableNetworkData: The stable network data. -->
415    <property name="StableNetworkData" type="ay" access="read">
416      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
417    </property>
418
419    <!-- LocalLeaderWeight: The leader weight of the current node. -->
420    <property name="LocalLeaderWeight" type="y" access="read">
421      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
422    </property>
423
424    <!-- ChannelMonitorSampleCount: The number of the collected samples from the channel monitor -->
425    <property name="ChannelMonitorSampleCount" type="u" access="read">
426      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
427    </property>
428
429    <!-- ChannelMonitorChannelQualityMap: The channel monitor statistics data.
430      The structure definition:
431      <literallayout>
432        struct {
433          uint8_t  mChannel;
434          uint16_t mOccupancy;
435        }
436      </literallayout>
437    -->
438    <property name="ChannelMonitorChannelQualityMap" type="a(yq)" access="read">
439      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
440    </property>
441
442    <!-- ChildTable: The node's child table as an array of child entry structure.
443      The child entry structure definition:
444      <literallayout>
445        struct {
446          uint64_t mExtAddress;         // IEEE 802.15.4 Extended Address
447          uint32_t mTimeout;            // Timeout
448          uint32_t mAge;                // Time last heard
449          uint16_t mRloc16;             // RLOC16
450          uint16_t mChildId;            // Child ID
451          uint8_t  mNetworkDataVersion; // Network Data Version
452          uint8_t  mLinkQualityIn;      // Link Quality In
453          int8_t   mAverageRssi;        // Average RSSI
454          int8_t   mLastRssi;           // Last observed RSSI
455          uint16_t mFrameErrorRate;     // Frame error rate (0xffff->100%). Requires error tracking feature.
456          uint16_t mMessageErrorRate;   // (IPv6) msg error rate (0xffff->100%). Requires error tracking feature.
457          bool     mRxOnWhenIdle;       // rx-on-when-idle
458          bool     mFullThreadDevice;   // Full Thread Device
459          bool     mFullNetworkData;    // Full Network Data
460          bool     mIsStateRestoring;   // Is in restoring state
461        }
462      </literallayout>
463    -->
464    <property name="ChildTable" type="a(tuuqqyyyyqqbbbb)" access="read">
465      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
466    </property>
467
468    <!-- NeighborTable: The node's neighbor table as an array of neighbor entry structure.
469      The neighbor entry structure definition:
470      <literallayout>
471        struct {
472          uint64_t mExtAddress;        // IEEE 802.15.4 Extended Address
473          uint32_t mAge;               // Time last heard
474          uint16_t mRloc16;            // RLOC16
475          uint32_t mLinkFrameCounter;  // Link Frame Counter
476          uint32_t mMleFrameCounter;   // MLE Frame Counter
477          uint8_t  mLinkQualityIn;     // Link Quality In
478          int8_t   mAverageRssi;       // Average RSSI
479          int8_t   mLastRssi;          // Last observed RSSI
480          uint16_t mFrameErrorRate;    // Frame error rate (0xffff->100%). Requires error tracking feature.
481          uint16_t mMessageErrorRate;  // (IPv6) msg error rate (0xffff->100%). Requires error tracking feature.
482          uint16_t mVersion;           // Thread version of the neighbor
483          bool     mRxOnWhenIdle;      // rx-on-when-idle
484          bool     mFullThreadDevice;  // Full Thread Device
485          bool     mFullNetworkData;   // Full Network Data
486          bool     mIsChild;           // Is the neighbor a child
487        }
488      </literallayout>
489    -->
490    <property name="NeighborTable" type="a(tuquuyyyqqqbbbb)" access="read">
491      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
492    </property>
493
494    <!-- PartitionId: The network partition ID. -->
495    <property name="PartitionId" type="u" access="read">
496      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
497    </property>
498
499    <!-- InstantRssi: The RSSI of the last received packet. -->
500    <property name="InstantRssi" type="y" access="read">
501      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
502    </property>
503
504    <!-- RadioTxPower: The radio transmit power. -->
505    <property name="RadioTxPower" type="y" access="read">
506      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
507    </property>
508
509    <!-- ExternalRoutes: The list of current external route rules.
510      External route rule structure definition:
511      <literallayout>
512        struct {
513          struct {
514            uint8[] prefix_bytes
515            uint8 prefix_length
516          }
517          uint16 rloc
518          uint8 preference
519          bool stable
520          bool next_hop_is_self
521        }
522      </literallayout>
523    -->
524    <property name="ExternalRoutes" type="((ayy)qybb)" access="read">
525      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
526    </property>
527
528    <!-- OnMeshPrefixes: The list of current on-mesh prefixes.
529      on-mesh prefix structure definition:
530      <literallayout>
531        struct {
532          struct {
533            uint8[] prefix_bytes
534            uint8 prefix_length
535          }
536          uint16 rloc
537          uint8 preference
538          bool is_preferred
539          bool is_slaac
540          bool is_dhcp
541          bool is_configure
542          bool is_default_route
543          bool is_on_mesh
544          bool is_stable
545          bool is_nd_dns
546          bool is_dp
547        }
548      </literallayout>
549    -->
550    <property name="OnMeshPrefixes" type="a((ayy)qybbbbbbbbb)" access="read">
551      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
552    </property>
553
554    <!-- ActiveDatasetTlvs: The Thread active dataset tlv in binary form. -->
555    <property name="ActiveDatasetTlvs" type="ay" access="readwrite">
556      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
557    </property>
558
559    <!-- PendingDatasetTlvs: The Thread pending dataset tlv in binary form. -->
560    <property name="PendingDatasetTlvs" type="ay" access="read">
561      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
562    </property>
563
564     <!-- FeatureFlagListData: The Thread feature flags (defined as proto/feature_flag.proto)
565      in binary form. -->
566    <property name="FeatureFlagListData" type="ay" access="readwrite">
567      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
568    </property>
569
570    <!-- RadioRegion: The radio region code in ISO 3166-1. -->
571    <property name="RadioRegion" type="s" access="readwrite">
572      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
573    </property>
574
575    <!-- SrpServerInfo: The SRP server information.
576      <literallayout>
577        struct {
578          uint8 state
579          uint16 port
580          uint8 address_mode
581          struct {  // hosts
582            uint32 fresh_count
583            uint32 deleted_count
584            uint64 lease_time_total
585            uint64 key_lease_time_total
586            uint64 remaining_lease_time_total
587            uint64 remaining_key_lease_time_total
588          }
589          struct {  // services
590            uint32 fresh_count
591            uint32 deleted_count
592            uint64 lease_time_total
593            uint64 key_lease_time_total
594            uint64 remaining_lease_time_total
595            uint64 remaining_key_lease_time_total
596          }
597          struct {  // response counters
598            uint32 success
599            uint32 server_failure
600            uint32 format_error
601            uint32 name_exists
602            uint32 refused
603            uint32 other
604          }
605        }
606      </literallayout>
607    -->
608    <property name="SrpServerInfo" type="(yqy(uutttt)(uutttt)(uuuuuu))" access="read">
609      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
610    </property>
611    <!-- DnssdCounters: The DNS-SD counters
612    <literallayout>
613        struct {
614          uint32 success
615          uint32 server_failure
616          uint32 format_error
617          uint32 name_error
618          uint32 not_implemented
619          uint32 other
620          uint32 resolved_by_srp
621        }
622      </literallayout>
623    -->
624    <property name="DnssdCounters" type="(uuuuuuu)" access="read">
625      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
626    </property>
627
628    <!-- MdnsTelemetryInfo: The MDNS information
629    <literallayout>
630        struct {
631          struct {  // host registration responses
632            uint32 success
633            uint32 not_found
634            uint32 invalid_args
635            uint32 duplicated
636            uint32 not_implemented
637            uint32 unknown_error
638            uint32 aborted
639            uint32 invalid_state
640          }
641          struct {  // service registration responses
642            uint32 success
643            uint32 not_found
644            uint32 invalid_args
645            uint32 duplicated
646            uint32 not_implemented
647            uint32 unknown_error
648            uint32 aborted
649            uint32 invalid_state
650          }
651          struct {  // host resolution responses
652            uint32 success
653            uint32 not_found
654            uint32 invalid_args
655            uint32 duplicated
656            uint32 not_implemented
657            uint32 unknown_error
658            uint32 aborted
659            uint32 invalid_state
660          }
661          struct {  // service resolution responses
662            uint32 success
663            uint32 not_found
664            uint32 invalid_args
665            uint32 duplicated
666            uint32 not_implemented
667            uint32 unknown_error
668            uint32 aborted
669            uint32 invalid_state
670          }
671          uint32 host_registration_ema_latency
672          uint32 service_registration_ema_latency
673          uint32 host_resolution_ema_latency
674          uint32 service_resolution_ema_latency
675        }
676      </literallayout>
677    -->
678    <property name="MdnsTelemetryInfo" type="(uuuuuuuu)(uuuuuuuu)(uuuuuuuu)(uuuuuuuu)uuuu" access="read">
679      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
680    </property>
681
682    <!-- OtbrVersion: The version string of the otbr package. -->
683    <property name="OtbrVersion" type="s" access="read">
684      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
685    </property>
686
687    <!-- OtHostVersion: The version string of the host build. -->
688    <property name="OtHostVersion" type="s" access="read">
689      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
690    </property>
691
692    <!-- OtRcpVersion: The version string of the RCP firmware. -->
693    <property name="OtRcpVersion" type="s" access="read">
694      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
695    </property>
696
697    <!-- ThreadVersion: The Thread protocol version. -->
698    <property name="ThreadVersion" type="q" access="read">
699      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
700    </property>
701
702    <!-- Eui64: The IEEE EUI-64 of this Thread interface. -->
703    <property name="Eui64" type="t" access="read">
704      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
705    </property>
706
707    <!-- RadioSpinelMetrics: The radio spinel metrics
708    <literallayout>
709        struct {
710          uint32_t mRcpTimeoutCount;         // The number of RCP timeouts.
711          uint32_t mRcpUnexpectedResetCount; // The number of RCP unexcepted resets.
712          uint32_t mRcpRestorationCount;     // The number of RCP restorations.
713          uint32_t mSpinelParseErrorCount;   // The number of spinel frame parse errors.
714        }
715      </literallayout>
716    -->
717    <property name="RadioSpinelMetrics" type="(uuuu)" access="read">
718      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
719    </property>
720
721    <!-- RcpInterfaceMetrics: The RCP interface metrics
722    <literallayout>
723        struct {
724          uint8_t  mRcpInterfaceType;             // The RCP interface type.
725          uint64_t mTransferredFrameCount;        // The number of transferred frames.
726          uint64_t mTransferredValidFrameCount;   // The number of transferred valid frames.
727          uint64_t mTransferredGarbageFrameCount; // The number of transferred garbage frames.
728          uint64_t mRxFrameCount;                 // The number of received frames.
729          uint64_t mRxFrameByteCount;             // The number of received bytes.
730          uint64_t mTxFrameCount;                 // The number of transmitted frames.
731          uint64_t mTxFrameByteCount;             // The number of transmitted bytes.
732        }
733      </literallayout>
734    -->
735    <property name="RcpInterfaceMetrics" type="(yttttttt)" access="read">
736      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
737    </property>
738
739    <!-- Uptime: The number of milliseconds since OpenThread instance was initialized. -->
740    <property name="Uptime" type="t" access="read">
741      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
742    </property>
743
744    <!-- RadioCoexMetrics: The radio coexistence metrics
745    <literallayout>
746        struct {
747          uint32_t mNumGrantGlitch;                     // Number of grant glitches.
748          uint32_t mNumTxRequest;                       // Number of tx requests.
749          uint32_t mNumTxGrantImmediate;                // Number of tx requests while grant was active.
750          uint32_t mNumTxGrantWait;                     // Number of tx requests while grant was inactive.
751          uint32_t mNumTxGrantWaitActivated;            // Number of tx requests while grant was inactive that were ultimately granted.
752          uint32_t mNumTxGrantWaitTimeout;              // Number of tx requests while grant was inactive that timed out.
753          uint32_t mNumTxGrantDeactivatedDuringRequest; // Number of tx that were in progress when grant was deactivated.
754          uint32_t mNumTxDelayedGrant;                  // Number of tx requests that were not granted within 50us.
755          uint32_t mAvgTxRequestToGrantTime;            // Average time in usec from tx request to grant.
756          uint32_t mNumRxRequest;                       // Number of rx requests.
757          uint32_t mNumRxGrantImmediate;                // Number of rx requests while grant was active.
758          uint32_t mNumRxGrantWait;                     // Number of rx requests while grant was inactive.
759          uint32_t mNumRxGrantWaitActivated;            // Number of rx requests while grant was inactive that were ultimately granted.
760          uint32_t mNumRxGrantWaitTimeout;              // Number of rx requests while grant was inactive that timed out.
761          uint32_t mNumRxGrantDeactivatedDuringRequest; // Number of rx that were in progress when grant was deactivated.
762          uint32_t mNumRxDelayedGrant;                  // Number of rx requests that were not granted within 50us.
763          uint32_t mAvgRxRequestToGrantTime;            // Average time in usec from rx request to grant.
764          uint32_t mNumRxGrantNone;                     // Number of rx requests that completed without receiving grant.
765          bool     mStopped;                            // Stats collection stopped due to saturation.
766        }
767      </literallayout>
768    -->
769    <property name="RadioCoexMetrics" type="(uuuuuuuuuuuuuuuuuub)" access="read">
770      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
771    </property>
772
773    <!-- Nat64State: The state of NAT64
774    <literallayout>
775        struct {
776            string mPrefixManagerState;
777            string mTranslatorState;
778        }
779    </literallayout>
780    -->
781    <property name="Nat64State" type="(ss)" access="read">
782      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
783    </property>
784
785    <!-- Nat64Mappings: The state of NAT64
786    <literallayout>
787        struct
788        {
789          uint64_t  mId;              // The unique id for a mapping session.
790          uint8_t[] mIp4;             // The IPv4 address of the mapping.
791          uint8_t[] mIp6;             // The IPv6 address of the mapping.
792          uint32_t  mRemainingTimeMs; // Remaining time before expiry in milliseconds.
793          struct
794          {
795            struct
796            {
797              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
798              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
799              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
800              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
801            } mTotal;                // Counters for sum of all protocols.
802            struct
803            {
804              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
805              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
806              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
807              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
808            } mIcmp;                 // Counters for ICMP and ICMPv6.
809            struct
810            {
811              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
812              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
813              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
814              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
815            } mUdp;                  // Counters for UDP.
816            struct
817            {
818              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
819              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
820              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
821              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
822            } mTcp;                  // Counters for TCP.
823          } mCounters;
824        }[]
825    </literallayout>
826    -->
827    <property name="Nat64Mappings" type="a(tayayu((tttt)(tttt)(tttt)(tttt)))" access="read">
828      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
829    </property>
830
831    <!-- Nat64ProtocolCounters: The state of NAT64
832    <literallayout>
833        struct
834        {
835          struct
836          {
837            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
838            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
839            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
840            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
841          } mTotal;                // Counters for sum of all protocols.
842          struct
843          {
844            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
845            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
846            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
847            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
848          } mIcmp;                 // Counters for ICMP and ICMPv6.
849          struct
850          {
851            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
852            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
853            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
854            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
855          } mUdp;                  // Counters for UDP.
856          struct
857          {
858            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
859            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
860            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
861            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
862          } mTcp;                  // Counters for TCP.
863        }
864    </literallayout>
865    -->
866    <property name="Nat64ProtocolCounters" type="((tttt)(tttt)(tttt)(tttt))" access="read">
867      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
868    </property>
869
870    <!-- Nat64ErrorCounters: The state of NAT64
871    <literallayout>
872        struct
873        {
874          struct
875          {
876            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
877            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
878          } mUnknown;              // Packet drop for unknown reasons.
879          struct
880          {
881            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
882            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
883          } mIllegalPacket;        // Packet drop due to failed to parse the datagram.
884          struct
885          {
886            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
887            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
888          } mUnsupportedProto;     // Packet drop due to unsupported IP protocol.
889          struct
890          {
891            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
892            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
893          } mNoMapping;            // Packet drop due to no mappings found or mapping pool exhausted.
894        }
895    </literallayout>
896    -->
897    <property name="Nat64ErrorCounters" type="((tt)(tt)(tt)(tt))" access="read">
898      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
899    </property>
900
901    <!-- Nat64Cidr: The CIDR used for NAT64 -->
902    <property name="Nat64Cidr" type="s" access="readwrite">
903      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
904    </property>
905
906    <!-- BorderRoutingCounters: The counters for inbound/outbound packets
907    <literallayout>
908        struct {
909          struct {  // inbound unicast
910            uint64 packets
911            uint64 bytes
912          }
913          struct {  // inbound multicast
914            uint64 packets
915            uint64 bytes
916          }
917          struct {  // outbound unicast
918            uint64 packets
919            uint64 bytes
920          }
921          struct {  // outbound multicast
922            uint64 packets
923            uint64 bytes
924          }
925          uint32  ra_rx;              // The number of received RA packets.
926          uint32  ra_tx_success;      // The number of RA packets successfully transmitted.
927          uint32  ra_tx_failure;      // The number of RA packets failed to transmit.
928          uint32  rs_rx;              // The number of received RS packets.
929          uint32  rs_tx_success;      // The number of RS packets successfully transmitted.
930          uint32  rs_tx_failure;      // The number of RS packets failed to transmit.
931        }
932    </literallayout>
933    -->
934    <property name="BorderRoutingCounters" type="((tt)(tt)(tt)(tt)uuuuuu)" access="read">
935      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
936    </property>
937
938    <!-- InfraLinkInfo: Information of infrastructure network interface.
939    <literallayout>
940        struct {
941          string name;                     // The name of the infrastructure network interface.
942          bool   is_up;                    // Whether the infrastructure network interface is up.
943          bool   is_running;               // Whether the infrastructure network interface is running.
944          bool   is_multicast;             // Whether the infrastructure network interface is multicast.
945          uint32 link_local_addresses      // The number of link-local addresses on the infra network interface.
946          uint32 unique_local_addresses    // The number of unique local addresses on the infra network interface.
947          uint32 global_unicast_addresses  // The number of global unicast addresses on the infra network interface.
948        }
949    </literallayout>
950    -->
951    <property name="InfraLinkInfo" type="(sbbbuuu)" access="read">
952      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
953    </property>
954
955    <!-- DnsUpstreamQueryState: Whether the server will / should forward DNS queries platform
956    specified upstream DNS servers. -->
957    <property name="DnsUpstreamQueryState" type="b" access="readwrite">
958      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
959    </property>
960
961    <!-- TelemetryData: The Thread telemetry data (defined as proto/thread_telemetry.proto)
962      in binary form. -->
963    <property name="TelemetryData" type="ay" access="read">
964      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
965    </property>
966
967    <!-- Capabilities: The Thread capabilities data (defined as proto/capabilities.proto)
968      in binary form. -->
969    <property name="Capabilities" type="ay" access="read">
970      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
971    </property>
972
973    <!-- The Ready signal is sent on start -->
974    <signal name="Ready">
975    </signal>
976
977  </interface>
978
979  <interface name="org.freedesktop.DBus.Properties">
980    <method name="Get">
981      <arg name="interface" direction="in" type="s"/>
982      <arg name="property" direction="in" type="s"/>
983      <arg name="value" direction="out" type="v"/>
984    </method>
985
986    <method name="GetAll">
987      <arg name="interface" direction="in" type="s"/>
988      <arg name="properties" direction="out" type="a{sv}"/>
989    </method>
990
991    <method name="Set">
992      <arg name="interface" direction="in" type="s"/>
993      <arg name="property" direction="in" type="s"/>
994      <arg name="value" direction="in" type="v"/>
995    </method>
996
997    <signal name="PropertiesChanged">
998      <arg type="s" name="interface"/>
999      <arg type="a{sv}" name="changed_properties"/>
1000      <arg type="as" name="invalidated_properties"/>
1001    </signal>
1002  </interface>
1003</node>
1004