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