• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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). Valid value is [0,
241                 OT_BORDER_AGENT_MAX_EPHEMERAL_KEY_TIMEOUT (10 min)].
242      @epskc: returns the ephemeral key digit string of length 9 with first 8 digits randomly generated,
243              and the last digit as verhoeff checksum.
244    -->
245    <method name="ActivateEphemeralKeyMode">
246      <arg name="lifetime" type="u" direction="in"/>
247      <arg name="epskc" type="s" direction="out"/>
248    </method>
249
250    <!-- DeactivateEphemeralKeyMode: Deactivate ePSKc mode.
251      @retain_active_session:
252        "false" - Disconnects the Border Agent from any active secure sessions.
253                  Ephemeral key would be cleared after the session is disconnected.
254        "true" - Deactivate ephemeral key mode softly. If there is already an active commissioner
255                 connection, the session will be retained and the ephemeral key mode is still active.
256    -->
257    <method name="DeactivateEphemeralKeyMode">
258      <arg name="retain_active_session" type="b" direction="in"/>
259    </method>
260
261    <!-- MeshLocalPrefix: The /64 mesh-local prefix.  -->
262    <property name="MeshLocalPrefix" type="ay" access="readwrite">
263      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
264    </property>
265
266    <!-- LinkMode: The current link mode.
267      <literallayout>
268      struct {
269        bool rx_on_when_idle    //whether the radio receiving is on when idle
270        bool device_type        //ftd or mtd
271        bool network_data       //full or stable
272      }
273      </literallayout>
274    -->
275    <property name="LinkMode" type="(bbb)" access="readwrite">
276      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
277    </property>
278
279    <!-- DeviceRole: The current device role.
280      Possible values are:
281      <literallayout>
282        0: Disabled
283        1: Detached
284        2: Child
285        3: Router
286        4: Leader
287      </literallayout>
288    -->
289    <property name="DeviceRole" type="s" access="read">
290      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
291    </property>
292
293    <!-- NetworkName: The network name. -->
294    <property name="NetworkName" type="s" access="read">
295      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
296    </property>
297
298    <!-- PanId: The pan ID. -->
299    <property name="PanId" type="q" access="read">
300      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
301    </property>
302
303    <!-- ExtPanId: The extended pan ID. -->
304    <property name="ExtPanId" type="t" access="read">
305      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
306    </property>
307
308    <!-- Channel: The current network channel, from 11 to 26 -->
309    <property name="Channel" type="q" access="read">
310      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
311    </property>
312
313    <!-- CcaFailureRate: The Clear Channel Assessment failure rate. -->
314    <property name="CcaFailureRate" type="q" access="read">
315      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
316    </property>
317
318    <!-- MacCounters: The mac layer statistic counters.
319      The counter structure definition:
320      <literallayout>
321        struct {
322          uint32 tx_total;
323          uint32 tx_unicast;
324          uint32 tx_broadcast;
325          uint32 tx_ack_requested;
326          uint32 tx_acked;
327          uint32 tx_no_ack_requested;
328          uint32 tx_data;
329          uint32 tx_data_poll;
330          uint32 tx_beacon;
331          uint32 tx_beacon_request;
332          uint32 tx_other;
333          uint32 tx_retry;
334          uint32 tx_err_cca;
335          uint32 tx_err_abort;
336          uint32 tx_busy_channel;
337          uint32 rx_total;
338          uint32 rx_unicast;
339          uint32 rx_broadcast;
340          uint32 rx_data;
341          uint32 rx_data_poll;
342          uint32 rx_beacon;
343          uint32 rx_beacon_request;
344          uint32 rx_other;
345          uint32 rx_address_filtered;
346          uint32 rx_dest_address_filtered;
347          uint32 rx_duplicated;
348          uint32 rx_err_no_frame;
349          uint32 rx_err_unknown_neighbor;
350          uint32 rx_err_invalid_src_addr;
351          uint32 rx_err_sec;
352          uint32 rx_err_fcs;
353          uint32 rx_err_other;
354        }
355      </literallayout>
356    -->
357    <property name="MacCounters" type="(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu)" access="read">
358      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
359    </property>
360
361    <!-- LinkCounters: The link statistic counters.
362      The counter structure definition:
363      <literallayout>
364        struct {
365          uint32 ip_tx_success;
366          uint32 ip_rx_success;
367          uint32 ip_tx_failure;
368          uint32 ip_rx_failure;
369        }
370      </literallayout>
371    -->
372    <property name="LinkCounters" type="(uuuu)" access="read">
373      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
374    </property>
375
376    <!-- LinkSupportedChannelMask: The bitwise link supported channel mask -->
377    <property name="LinkSupportedChannelMask" type="u" access="read">
378      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
379    </property>
380
381    <!-- LinkPreferredChannelMask: The bitwise link preferred channel mask -->
382    <property name="LinkPreferredChannelMask" type="u" access="read">
383      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
384    </property>
385
386    <!-- Rloc16: The 16-bit routing locator -->
387    <property name="Rloc16" type="q" access="read">
388      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
389    </property>
390
391    <!-- ExtendedAddress: The 64-bit extended address -->
392    <property name="ExtendedAddress" type="t" access="read">
393      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
394    </property>
395
396    <!-- RouterID: The current router ID -->
397    <property name="RouterID" type="y" access="read">
398      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
399    </property>
400
401    <!-- LeaderData: The network leader data.
402      The structure definition:
403      <literallayout>
404        struct {
405          uint32_t mPartitionId;       // Partition ID
406          uint8_t  mWeighting;         // Leader Weight
407          uint8_t  mDataVersion;       // Full Network Data Version
408          uint8_t  mStableDataVersion; // Stable Network Data Version
409          uint8_t  mLeaderRouterId;    // Leader Router ID
410        }
411      </literallayout>
412    -->
413    <property name="LeaderData" type="(uyyyy)" access="read">
414      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
415    </property>
416
417    <!-- NetworkData: The network data. -->
418    <property name="NetworkData" type="ay" access="read">
419      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
420    </property>
421
422    <!-- StableNetworkData: The stable network data. -->
423    <property name="StableNetworkData" type="ay" access="read">
424      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
425    </property>
426
427    <!-- LocalLeaderWeight: The leader weight of the current node. -->
428    <property name="LocalLeaderWeight" type="y" access="read">
429      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
430    </property>
431
432    <!-- ChannelMonitorSampleCount: The number of the collected samples from the channel monitor -->
433    <property name="ChannelMonitorSampleCount" type="u" access="read">
434      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
435    </property>
436
437    <!-- ChannelMonitorChannelQualityMap: The channel monitor statistics data.
438      The structure definition:
439      <literallayout>
440        struct {
441          uint8_t  mChannel;
442          uint16_t mOccupancy;
443        }
444      </literallayout>
445    -->
446    <property name="ChannelMonitorChannelQualityMap" type="a(yq)" access="read">
447      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
448    </property>
449
450    <!-- ChildTable: The node's child table as an array of child entry structure.
451      The child entry structure definition:
452      <literallayout>
453        struct {
454          uint64_t mExtAddress;         // IEEE 802.15.4 Extended Address
455          uint32_t mTimeout;            // Timeout
456          uint32_t mAge;                // Time last heard
457          uint16_t mRloc16;             // RLOC16
458          uint16_t mChildId;            // Child ID
459          uint8_t  mNetworkDataVersion; // Network Data Version
460          uint8_t  mLinkQualityIn;      // Link Quality In
461          int8_t   mAverageRssi;        // Average RSSI
462          int8_t   mLastRssi;           // Last observed RSSI
463          uint16_t mFrameErrorRate;     // Frame error rate (0xffff->100%). Requires error tracking feature.
464          uint16_t mMessageErrorRate;   // (IPv6) msg error rate (0xffff->100%). Requires error tracking feature.
465          bool     mRxOnWhenIdle;       // rx-on-when-idle
466          bool     mFullThreadDevice;   // Full Thread Device
467          bool     mFullNetworkData;    // Full Network Data
468          bool     mIsStateRestoring;   // Is in restoring state
469        }
470      </literallayout>
471    -->
472    <property name="ChildTable" type="a(tuuqqyyyyqqbbbb)" access="read">
473      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
474    </property>
475
476    <!-- NeighborTable: The node's neighbor table as an array of neighbor entry structure.
477      The neighbor entry structure definition:
478      <literallayout>
479        struct {
480          uint64_t mExtAddress;        // IEEE 802.15.4 Extended Address
481          uint32_t mAge;               // Time last heard
482          uint16_t mRloc16;            // RLOC16
483          uint32_t mLinkFrameCounter;  // Link Frame Counter
484          uint32_t mMleFrameCounter;   // MLE Frame Counter
485          uint8_t  mLinkQualityIn;     // Link Quality In
486          int8_t   mAverageRssi;       // Average RSSI
487          int8_t   mLastRssi;          // Last observed RSSI
488          uint16_t mFrameErrorRate;    // Frame error rate (0xffff->100%). Requires error tracking feature.
489          uint16_t mMessageErrorRate;  // (IPv6) msg error rate (0xffff->100%). Requires error tracking feature.
490          uint16_t mVersion;           // Thread version of the neighbor
491          bool     mRxOnWhenIdle;      // rx-on-when-idle
492          bool     mFullThreadDevice;  // Full Thread Device
493          bool     mFullNetworkData;   // Full Network Data
494          bool     mIsChild;           // Is the neighbor a child
495        }
496      </literallayout>
497    -->
498    <property name="NeighborTable" type="a(tuquuyyyqqqbbbb)" access="read">
499      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
500    </property>
501
502    <!-- PartitionId: The network partition ID. -->
503    <property name="PartitionId" type="u" access="read">
504      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
505    </property>
506
507    <!-- InstantRssi: The RSSI of the last received packet. -->
508    <property name="InstantRssi" type="y" access="read">
509      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
510    </property>
511
512    <!-- RadioTxPower: The radio transmit power. -->
513    <property name="RadioTxPower" type="y" access="read">
514      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
515    </property>
516
517    <!-- ExternalRoutes: The list of current external route rules.
518      External route rule structure definition:
519      <literallayout>
520        struct {
521          struct {
522            uint8[] prefix_bytes
523            uint8 prefix_length
524          }
525          uint16 rloc
526          uint8 preference
527          bool stable
528          bool next_hop_is_self
529        }
530      </literallayout>
531    -->
532    <property name="ExternalRoutes" type="((ayy)qybb)" access="read">
533      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
534    </property>
535
536    <!-- OnMeshPrefixes: The list of current on-mesh prefixes.
537      on-mesh prefix structure definition:
538      <literallayout>
539        struct {
540          struct {
541            uint8[] prefix_bytes
542            uint8 prefix_length
543          }
544          uint16 rloc
545          uint8 preference
546          bool is_preferred
547          bool is_slaac
548          bool is_dhcp
549          bool is_configure
550          bool is_default_route
551          bool is_on_mesh
552          bool is_stable
553          bool is_nd_dns
554          bool is_dp
555        }
556      </literallayout>
557    -->
558    <property name="OnMeshPrefixes" type="a((ayy)qybbbbbbbbb)" access="read">
559      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
560    </property>
561
562    <!-- ActiveDatasetTlvs: The Thread active dataset tlv in binary form. -->
563    <property name="ActiveDatasetTlvs" type="ay" access="readwrite">
564      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
565    </property>
566
567    <!-- PendingDatasetTlvs: The Thread pending dataset tlv in binary form. -->
568    <property name="PendingDatasetTlvs" type="ay" access="read">
569      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
570    </property>
571
572     <!-- FeatureFlagListData: The Thread feature flags (defined as proto/feature_flag.proto)
573      in binary form. -->
574    <property name="FeatureFlagListData" type="ay" access="readwrite">
575      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
576    </property>
577
578    <!-- RadioRegion: The radio region code in ISO 3166-1. -->
579    <property name="RadioRegion" type="s" access="readwrite">
580      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
581    </property>
582
583    <!-- SrpServerInfo: The SRP server information.
584      <literallayout>
585        struct {
586          uint8 state
587          uint16 port
588          uint8 address_mode
589          struct {  // hosts
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 {  // services
598            uint32 fresh_count
599            uint32 deleted_count
600            uint64 lease_time_total
601            uint64 key_lease_time_total
602            uint64 remaining_lease_time_total
603            uint64 remaining_key_lease_time_total
604          }
605          struct {  // response counters
606            uint32 success
607            uint32 server_failure
608            uint32 format_error
609            uint32 name_exists
610            uint32 refused
611            uint32 other
612          }
613        }
614      </literallayout>
615    -->
616    <property name="SrpServerInfo" type="(yqy(uutttt)(uutttt)(uuuuuu))" access="read">
617      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
618    </property>
619    <!-- DnssdCounters: The DNS-SD counters
620    <literallayout>
621        struct {
622          uint32 success
623          uint32 server_failure
624          uint32 format_error
625          uint32 name_error
626          uint32 not_implemented
627          uint32 other
628          uint32 resolved_by_srp
629        }
630      </literallayout>
631    -->
632    <property name="DnssdCounters" type="(uuuuuuu)" access="read">
633      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
634    </property>
635
636    <!-- MdnsTelemetryInfo: The MDNS information
637    <literallayout>
638        struct {
639          struct {  // host registration responses
640            uint32 success
641            uint32 not_found
642            uint32 invalid_args
643            uint32 duplicated
644            uint32 not_implemented
645            uint32 unknown_error
646            uint32 aborted
647            uint32 invalid_state
648          }
649          struct {  // service registration responses
650            uint32 success
651            uint32 not_found
652            uint32 invalid_args
653            uint32 duplicated
654            uint32 not_implemented
655            uint32 unknown_error
656            uint32 aborted
657            uint32 invalid_state
658          }
659          struct {  // host resolution responses
660            uint32 success
661            uint32 not_found
662            uint32 invalid_args
663            uint32 duplicated
664            uint32 not_implemented
665            uint32 unknown_error
666            uint32 aborted
667            uint32 invalid_state
668          }
669          struct {  // service resolution responses
670            uint32 success
671            uint32 not_found
672            uint32 invalid_args
673            uint32 duplicated
674            uint32 not_implemented
675            uint32 unknown_error
676            uint32 aborted
677            uint32 invalid_state
678          }
679          uint32 host_registration_ema_latency
680          uint32 service_registration_ema_latency
681          uint32 host_resolution_ema_latency
682          uint32 service_resolution_ema_latency
683        }
684      </literallayout>
685    -->
686    <property name="MdnsTelemetryInfo" type="(uuuuuuuu)(uuuuuuuu)(uuuuuuuu)(uuuuuuuu)uuuu" access="read">
687      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
688    </property>
689
690    <!-- OtbrVersion: The version string of the otbr package. -->
691    <property name="OtbrVersion" type="s" access="read">
692      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
693    </property>
694
695    <!-- OtHostVersion: The version string of the host build. -->
696    <property name="OtHostVersion" type="s" access="read">
697      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
698    </property>
699
700    <!-- OtRcpVersion: The version string of the RCP firmware. -->
701    <property name="OtRcpVersion" type="s" access="read">
702      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
703    </property>
704
705    <!-- ThreadVersion: The Thread protocol version. -->
706    <property name="ThreadVersion" type="q" access="read">
707      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
708    </property>
709
710    <!-- Eui64: The IEEE EUI-64 of this Thread interface. -->
711    <property name="Eui64" type="t" access="read">
712      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
713    </property>
714
715    <!-- RadioSpinelMetrics: The radio spinel metrics
716    <literallayout>
717        struct {
718          uint32_t mRcpTimeoutCount;         // The number of RCP timeouts.
719          uint32_t mRcpUnexpectedResetCount; // The number of RCP unexcepted resets.
720          uint32_t mRcpRestorationCount;     // The number of RCP restorations.
721          uint32_t mSpinelParseErrorCount;   // The number of spinel frame parse errors.
722        }
723      </literallayout>
724    -->
725    <property name="RadioSpinelMetrics" type="(uuuu)" access="read">
726      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
727    </property>
728
729    <!-- RcpInterfaceMetrics: The RCP interface metrics
730    <literallayout>
731        struct {
732          uint8_t  mRcpInterfaceType;             // The RCP interface type.
733          uint64_t mTransferredFrameCount;        // The number of transferred frames.
734          uint64_t mTransferredValidFrameCount;   // The number of transferred valid frames.
735          uint64_t mTransferredGarbageFrameCount; // The number of transferred garbage frames.
736          uint64_t mRxFrameCount;                 // The number of received frames.
737          uint64_t mRxFrameByteCount;             // The number of received bytes.
738          uint64_t mTxFrameCount;                 // The number of transmitted frames.
739          uint64_t mTxFrameByteCount;             // The number of transmitted bytes.
740        }
741      </literallayout>
742    -->
743    <property name="RcpInterfaceMetrics" type="(yttttttt)" access="read">
744      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
745    </property>
746
747    <!-- Uptime: The number of milliseconds since OpenThread instance was initialized. -->
748    <property name="Uptime" type="t" access="read">
749      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
750    </property>
751
752    <!-- RadioCoexMetrics: The radio coexistence metrics
753    <literallayout>
754        struct {
755          uint32_t mNumGrantGlitch;                     // Number of grant glitches.
756          uint32_t mNumTxRequest;                       // Number of tx requests.
757          uint32_t mNumTxGrantImmediate;                // Number of tx requests while grant was active.
758          uint32_t mNumTxGrantWait;                     // Number of tx requests while grant was inactive.
759          uint32_t mNumTxGrantWaitActivated;            // Number of tx requests while grant was inactive that were ultimately granted.
760          uint32_t mNumTxGrantWaitTimeout;              // Number of tx requests while grant was inactive that timed out.
761          uint32_t mNumTxGrantDeactivatedDuringRequest; // Number of tx that were in progress when grant was deactivated.
762          uint32_t mNumTxDelayedGrant;                  // Number of tx requests that were not granted within 50us.
763          uint32_t mAvgTxRequestToGrantTime;            // Average time in usec from tx request to grant.
764          uint32_t mNumRxRequest;                       // Number of rx requests.
765          uint32_t mNumRxGrantImmediate;                // Number of rx requests while grant was active.
766          uint32_t mNumRxGrantWait;                     // Number of rx requests while grant was inactive.
767          uint32_t mNumRxGrantWaitActivated;            // Number of rx requests while grant was inactive that were ultimately granted.
768          uint32_t mNumRxGrantWaitTimeout;              // Number of rx requests while grant was inactive that timed out.
769          uint32_t mNumRxGrantDeactivatedDuringRequest; // Number of rx that were in progress when grant was deactivated.
770          uint32_t mNumRxDelayedGrant;                  // Number of rx requests that were not granted within 50us.
771          uint32_t mAvgRxRequestToGrantTime;            // Average time in usec from rx request to grant.
772          uint32_t mNumRxGrantNone;                     // Number of rx requests that completed without receiving grant.
773          bool     mStopped;                            // Stats collection stopped due to saturation.
774        }
775      </literallayout>
776    -->
777    <property name="RadioCoexMetrics" type="(uuuuuuuuuuuuuuuuuub)" access="read">
778      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
779    </property>
780
781    <!-- Nat64State: The state of NAT64
782    <literallayout>
783        struct {
784            string mPrefixManagerState;
785            string mTranslatorState;
786        }
787    </literallayout>
788    -->
789    <property name="Nat64State" type="(ss)" access="read">
790      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
791    </property>
792
793    <!-- Nat64Mappings: The state of NAT64
794    <literallayout>
795        struct
796        {
797          uint64_t  mId;              // The unique id for a mapping session.
798          uint8_t[] mIp4;             // The IPv4 address of the mapping.
799          uint8_t[] mIp6;             // The IPv6 address of the mapping.
800          uint32_t  mRemainingTimeMs; // Remaining time before expiry in milliseconds.
801          struct
802          {
803            struct
804            {
805              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
806              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
807              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
808              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
809            } mTotal;                // Counters for sum of all protocols.
810            struct
811            {
812              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
813              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
814              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
815              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
816            } mIcmp;                 // Counters for ICMP and ICMPv6.
817            struct
818            {
819              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
820              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
821              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
822              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
823            } mUdp;                  // Counters for UDP.
824            struct
825            {
826              uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
827              uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
828              uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
829              uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
830            } mTcp;                  // Counters for TCP.
831          } mCounters;
832        }[]
833    </literallayout>
834    -->
835    <property name="Nat64Mappings" type="a(tayayu((tttt)(tttt)(tttt)(tttt)))" access="read">
836      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
837    </property>
838
839    <!-- Nat64ProtocolCounters: The state of NAT64
840    <literallayout>
841        struct
842        {
843          struct
844          {
845            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
846            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
847            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
848            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
849          } mTotal;                // Counters for sum of all protocols.
850          struct
851          {
852            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
853            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
854            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
855            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
856          } mIcmp;                 // Counters for ICMP and ICMPv6.
857          struct
858          {
859            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
860            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
861            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
862            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
863          } mUdp;                  // Counters for UDP.
864          struct
865          {
866            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
867            uint64_t m4To6Bytes;   // Sum of size of packets translated from IPv4 to IPv6.
868            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
869            uint64_t m6To4Bytes;   // Sum of size of packets translated from IPv6 to IPv4.
870          } mTcp;                  // Counters for TCP.
871        }
872    </literallayout>
873    -->
874    <property name="Nat64ProtocolCounters" type="((tttt)(tttt)(tttt)(tttt))" access="read">
875      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
876    </property>
877
878    <!-- Nat64ErrorCounters: The state of NAT64
879    <literallayout>
880        struct
881        {
882          struct
883          {
884            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
885            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
886          } mUnknown;              // Packet drop for unknown reasons.
887          struct
888          {
889            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
890            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
891          } mIllegalPacket;        // Packet drop due to failed to parse the datagram.
892          struct
893          {
894            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
895            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
896          } mUnsupportedProto;     // Packet drop due to unsupported IP protocol.
897          struct
898          {
899            uint64_t m4To6Packets; // Number of packets translated from IPv4 to IPv6.
900            uint64_t m6To4Packets; // Number of packets translated from IPv6 to IPv4.
901          } mNoMapping;            // Packet drop due to no mappings found or mapping pool exhausted.
902        }
903    </literallayout>
904    -->
905    <property name="Nat64ErrorCounters" type="((tt)(tt)(tt)(tt))" access="read">
906      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
907    </property>
908
909    <!-- Nat64Cidr: The CIDR used for NAT64 -->
910    <property name="Nat64Cidr" type="s" access="readwrite">
911      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
912    </property>
913
914    <!-- BorderRoutingCounters: The counters for inbound/outbound packets
915    <literallayout>
916        struct {
917          struct {  // inbound unicast
918            uint64 packets
919            uint64 bytes
920          }
921          struct {  // inbound multicast
922            uint64 packets
923            uint64 bytes
924          }
925          struct {  // outbound unicast
926            uint64 packets
927            uint64 bytes
928          }
929          struct {  // outbound multicast
930            uint64 packets
931            uint64 bytes
932          }
933          uint32  ra_rx;              // The number of received RA packets.
934          uint32  ra_tx_success;      // The number of RA packets successfully transmitted.
935          uint32  ra_tx_failure;      // The number of RA packets failed to transmit.
936          uint32  rs_rx;              // The number of received RS packets.
937          uint32  rs_tx_success;      // The number of RS packets successfully transmitted.
938          uint32  rs_tx_failure;      // The number of RS packets failed to transmit.
939        }
940    </literallayout>
941    -->
942    <property name="BorderRoutingCounters" type="((tt)(tt)(tt)(tt)uuuuuu)" access="read">
943      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
944    </property>
945
946    <!-- InfraLinkInfo: Information of infrastructure network interface.
947    <literallayout>
948        struct {
949          string name;                     // The name of the infrastructure network interface.
950          bool   is_up;                    // Whether the infrastructure network interface is up.
951          bool   is_running;               // Whether the infrastructure network interface is running.
952          bool   is_multicast;             // Whether the infrastructure network interface is multicast.
953          uint32 link_local_addresses      // The number of link-local addresses on the infra network interface.
954          uint32 unique_local_addresses    // The number of unique local addresses on the infra network interface.
955          uint32 global_unicast_addresses  // The number of global unicast addresses on the infra network interface.
956        }
957    </literallayout>
958    -->
959    <property name="InfraLinkInfo" type="(sbbbuuu)" access="read">
960      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
961    </property>
962
963    <!-- DnsUpstreamQueryState: Whether the server will / should forward DNS queries platform
964    specified upstream DNS servers. -->
965    <property name="DnsUpstreamQueryState" type="b" access="readwrite">
966      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
967    </property>
968
969    <!-- TelemetryData: The Thread telemetry data (defined as proto/thread_telemetry.proto)
970      in binary form. -->
971    <property name="TelemetryData" type="ay" access="read">
972      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
973    </property>
974
975    <!-- Capabilities: The Thread capabilities data (defined as proto/capabilities.proto)
976      in binary form. -->
977    <property name="Capabilities" type="ay" access="read">
978      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
979    </property>
980
981    <!-- The Ready signal is sent on start -->
982    <signal name="Ready">
983    </signal>
984
985  </interface>
986
987  <interface name="org.freedesktop.DBus.Properties">
988    <method name="Get">
989      <arg name="interface" direction="in" type="s"/>
990      <arg name="property" direction="in" type="s"/>
991      <arg name="value" direction="out" type="v"/>
992    </method>
993
994    <method name="GetAll">
995      <arg name="interface" direction="in" type="s"/>
996      <arg name="properties" direction="out" type="a{sv}"/>
997    </method>
998
999    <method name="Set">
1000      <arg name="interface" direction="in" type="s"/>
1001      <arg name="property" direction="in" type="s"/>
1002      <arg name="value" direction="in" type="v"/>
1003    </method>
1004
1005    <signal name="PropertiesChanged">
1006      <arg type="s" name="interface"/>
1007      <arg type="a{sv}" name="changed_properties"/>
1008      <arg type="as" name="invalidated_properties"/>
1009    </signal>
1010  </interface>
1011</node>
1012