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