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