| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2021 Project CHIP Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" |
| "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
| <node> |
| <interface name="io.openthread.BorderRouter"> |
| <!-- Scan: Perform a Thread network scan. |
| @scan_result: array of scan results. |
| |
| The result struture definition is: |
| <literallayout> |
| struct { |
| uint64 ext_address |
| string network_name |
| uint64 ext_panid |
| uint8[] steering_data |
| uint16 panid |
| uint16 joiner_udp_port |
| uint8 channel |
| uint8 rssi |
| uint8 lqi |
| uint8 version |
| bool is_native |
| bool is_joinable |
| } |
| </literallayout> |
| --> |
| <method name="Scan"> |
| <arg name="scan_result" type="a(tstayqqyyyybb)" direction="out"/> |
| </method> |
| |
| <!-- Attach: Attach the current device to the Thread network using the current active network dataset. --> |
| <method name="Attach" /> |
| |
| <!-- PermitUnsecureJoin: Allow joining the network via unsecure traffic temporarily. |
| @port: The port of the unsecure traffic. |
| @timeout: The timeout for the permission. |
| --> |
| <method name="PermitUnsecureJoin"> |
| <arg name="port" type="q"/> |
| <arg name="timeout" type="u"/> |
| </method> |
| |
| <!-- JoinerStart: Start Thread joining. |
| @pskd: The pre-shared key for the device. |
| @provision_url: The url for further provision. |
| @vendor vendor_name: The current device vendor name. |
| @vendor vendor_model: The current device model. |
| @vendor vendor_sw_version: The current device software version. |
| @vendor vendor_data: The additional vendor data. |
| --> |
| <method name="JoinerStart"> |
| <arg name="pskd" type="s"/> |
| <arg name="provision_url" type="s"/> |
| <arg name="vendor_name" type="s"/> |
| <arg name="vendor_model" type="s"/> |
| <arg name="vendor_sw_version" type="s"/> |
| <arg name="vendor_data" type="s"/> |
| </method> |
| |
| <!-- JoinerStop: Stop Thread joining. --> |
| <method name="JoinerStop"> |
| </method> |
| |
| <!-- FactoryReset: Perform a factory reset, will wipe all Thread persistent data. --> |
| <method name="FactoryReset"> |
| </method> |
| |
| <!-- Reset: Perform a reset, will try to resume the network after reset. --> |
| <method name="Reset"> |
| </method> |
| |
| <!-- AddExternalRoute: Add an external border routing rule to the network. |
| @prefix: The prefix for border routing. |
| |
| This will make the current device act as the border router for the prefix. |
| The prefix structure is: |
| <literallayout> |
| struct { |
| struct { |
| uint8[] prefix_bytes |
| uint8 prefix_length |
| } |
| uint16 rloc // Not used |
| uint8 preference |
| bool stable |
| bool next_hop_is_self // Not used |
| } |
| </literallayout> |
| --> |
| <method name="AddExternalRoute"> |
| <arg name="prefix" type="((ayy)qybb)"/> |
| </method> |
| |
| <!-- RemoveExternalRoute: Remove an external border routing rule from the network. |
| @prefix: The prefix for border routing. |
| |
| The prefix structure is: |
| <literallayout> |
| struct { |
| uint8[] prefix_bytes |
| uint8 prefix_length |
| } |
| </literallayout> |
| --> |
| <method name="RemoveExternalRoute"> |
| <arg name="prefix" type="(ayy)"/> |
| </method> |
| |
| <!-- AddOnMeshPrefix: Add an on-mesh prefix to the network. |
| @prefix: The on-mesh prefix. |
| |
| The on-mesh prefix structure is: |
| <literallayout> |
| struct { |
| struct { |
| uint8[] prefix_bytes |
| uint8 prefix_length |
| } |
| byte preference |
| struct { |
| boolean preferred |
| boolean slaac |
| boolean dhcp |
| boolean configure |
| boolean default_route |
| boolean on_mesh |
| boolean stable |
| } |
| } |
| </literallayout> |
| --> |
| <method name="AddOnMeshPrefix"> |
| <arg name="prefix" type="((ayy)y(bbbbbbb))"/> |
| </method> |
| |
| <!-- RemoveOnMeshPrefix: Remove an on-mesh prefix from the network. |
| @prefix: The on-mesh prefix. |
| |
| The prefix structure is: |
| <literallayout> |
| struct { |
| uint8[] prefix_bytes |
| uint8 prefix_length |
| } |
| </literallayout> |
| --> |
| <method name="RemoveOnMeshPrefix"> |
| <arg name="prefix" type="(ayy)"/> |
| </method> |
| |
| <!-- MeshLocalPrefix: The /64 mesh-local prefix. --> |
| <property name="MeshLocalPrefix" type="ay" access="readwrite"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- LegacyULAPrefix: The /64 legacy prefix. --> |
| <property name="LegacyULAPrefix" type="ay" access="readwrite"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- LinkMode: The current link mode. |
| <literallayout> |
| struct { |
| bool rx_on_when_idle //whether the radio receiving is on when idle |
| bool device_type //ftd or mtd |
| bool network_data //full or stable |
| } |
| </literallayout> |
| --> |
| <property name="LinkMode" type="(bbb)" access="readwrite"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- DeviceRole: The current device role. |
| Possible values are: |
| <literallayout> |
| 0: Disabled |
| 1: Detached |
| 2: Child |
| 3: Router |
| 4: Leader |
| </literallayout> |
| --> |
| <property name="DeviceRole" type="s" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/> |
| </property> |
| |
| <!-- NetworkName: The network name. --> |
| <property name="NetworkName" type="s" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- PanId: The pan ID. --> |
| <property name="PanId" type="q" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ExtPanId: The extended pan ID. --> |
| <property name="ExtPanId" type="t" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- Channel: The current network channel, from 11 to 26 --> |
| <property name="Channel" type="q" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- CcaFailureRate: The Clear Channel Assessment failure rate. --> |
| <property name="CcaFailureRate" type="q" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- MacCounters: The mac layer statistic counters. |
| The counter structure definition: |
| <literallayout> |
| struct { |
| uint32 tx_total; |
| uint32 tx_unicast; |
| uint32 tx_broadcast; |
| uint32 tx_ack_requested; |
| uint32 tx_acked; |
| uint32 tx_no_ack_requested; |
| uint32 tx_data; |
| uint32 tx_data_poll; |
| uint32 tx_beacon; |
| uint32 tx_beacon_request; |
| uint32 tx_other; |
| uint32 tx_retry; |
| uint32 tx_err_cca; |
| uint32 tx_err_abort; |
| uint32 tx_busy_channel; |
| uint32 rx_total; |
| uint32 rx_unicast; |
| uint32 rx_broadcast; |
| uint32 rx_data; |
| uint32 rx_data_poll; |
| uint32 rx_beacon; |
| uint32 rx_beacon_request; |
| uint32 rx_other; |
| uint32 rx_address_filtered; |
| uint32 rx_dest_address_filtered; |
| uint32 rx_duplicated; |
| uint32 rx_err_no_frame; |
| uint32 rx_err_unknown_neighbor; |
| uint32 rx_err_invalid_src_addr; |
| uint32 rx_err_sec; |
| uint32 rx_err_fcs; |
| uint32 rx_err_other; |
| } |
| </literallayout> |
| --> |
| <property name="MacCounters" type="(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- LinkCounters: The link statistic counters. |
| The counter structure definition: |
| <literallayout> |
| struct { |
| uint32 ip_tx_success; |
| uint32 ip_rx_success; |
| uint32 ip_tx_failure; |
| uint32 ip_rx_failure; |
| } |
| </literallayout> |
| --> |
| <property name="LinkCounters" type="(uuuu)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- LinkSupportedChannelMask: The bitwise link supported channel mask --> |
| <property name="LinkSupportedChannelMask" type="u" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- Rloc16: The 16-bit routing locator --> |
| <property name="Rloc16" type="q" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ExtendedAddress: The 64-bit extended address --> |
| <property name="ExtendedAddress" type="t" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- RouterID: The current router ID --> |
| <property name="RouterID" type="y" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- LeaderData: The network leader data. |
| The structure definition: |
| <literallayout> |
| struct { |
| uint32_t mPartitionId; // Partition ID |
| uint8_t mWeighting; // Leader Weight |
| uint8_t mDataVersion; // Full Network Data Version |
| uint8_t mStableDataVersion; // Stable Network Data Version |
| uint8_t mLeaderRouterId; // Leader Router ID |
| } |
| </literallayout> |
| --> |
| <property name="LeaderData" type="(uyyyy)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- NetworkData: The network data. --> |
| <property name="NetworkData" type="ay" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- StableNetworkData: The stable network data. --> |
| <property name="StableNetworkData" type="ay" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- LocalLeaderWeight: The leader weight of the current node. --> |
| <property name="LocalLeaderWeight" type="y" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ChannelMonitorSampleCount: The number of the collected samples from the channel monitor --> |
| <property name="ChannelMonitorSampleCount" type="u" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ChannelMonitorChannelQualityMap: The channel monitor statistics data. |
| The structure definition: |
| <literallayout> |
| struct { |
| uint8_t mChannel; |
| uint16_t mOccupancy; |
| } |
| </literallayout> |
| --> |
| <property name="ChannelMonitorChannelQualityMap" type="a(yq)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ChildTable: The node's child table as an array of child entry structure. |
| The child entry structure definition: |
| <literallayout> |
| struct { |
| uint64_t mExtAddress; // IEEE 802.15.4 Extended Address |
| uint32_t mTimeout; // Timeout |
| uint32_t mAge; // Time last heard |
| uint16_t mRloc16; // RLOC16 |
| uint16_t mChildId; // Child ID |
| uint8_t mNetworkDataVersion; // Network Data Version |
| uint8_t mLinkQualityIn; // Link Quality In |
| int8_t mAverageRssi; // Average RSSI |
| int8_t mLastRssi; // Last observed RSSI |
| uint16_t mFrameErrorRate; // Frame error rate (0xffff->100%). Requires error tracking feature. |
| uint16_t mMessageErrorRate; // (IPv6) msg error rate (0xffff->100%). Requires error tracking feature. |
| bool mRxOnWhenIdle; // rx-on-when-idle |
| bool mFullThreadDevice; // Full Thread Device |
| bool mFullNetworkData; // Full Network Data |
| bool mIsStateRestoring; // Is in restoring state |
| } |
| </literallayout> |
| --> |
| <property name="ChildTable" type="a(tuuqqyyyyqqbbbb)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- NeighborTable: The node's neighbor table as an array of neighbor entry structure. |
| The neighbor entry structure definition: |
| <literallayout> |
| struct { |
| uint64_t mExtAddress; // IEEE 802.15.4 Extended Address |
| uint32_t mAge; // Time last heard |
| uint16_t mRloc16; // RLOC16 |
| uint32_t mLinkFrameCounter; // Link Frame Counter |
| uint32_t mMleFrameCounter; // MLE Frame Counter |
| uint8_t mLinkQualityIn; // Link Quality In |
| int8_t mAverageRssi; // Average RSSI |
| int8_t mLastRssi; // Last observed RSSI |
| uint16_t mFrameErrorRate; // Frame error rate (0xffff->100%). Requires error tracking feature. |
| uint16_t mMessageErrorRate; // (IPv6) msg error rate (0xffff->100%). Requires error tracking feature. |
| bool mRxOnWhenIdle; // rx-on-when-idle |
| bool mFullThreadDevice; // Full Thread Device |
| bool mFullNetworkData; // Full Network Data |
| bool mIsChild; // Is the neighbor a child |
| } |
| </literallayout> |
| --> |
| <property name="NeighborTable" type="a(tuquuyyyqqbbbb)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- PartitionId: The network partition ID. --> |
| <property name="PartitionId" type="u" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- InstantRssi: The RSSI of the last received packet. --> |
| <property name="InstantRssi" type="y" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- RadioTxPower: The radio transmit power. --> |
| <property name="RadioTxPower" type="y" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ExternalRoutes: The list of current external route rules. |
| External route rule structure definition: |
| <literallayout> |
| struct { |
| struct { |
| uint8[] prefix_bytes |
| uint8 prefix_length |
| } |
| uint16 rloc |
| uint8 preference |
| bool stable |
| bool next_hop_is_self |
| } |
| </literallayout> |
| --> |
| <property name="ExternalRoutes" type="a((ayy)qybb)" access="read"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- ActiveDatasetTlvs: The Thread active dataset tlv in binary form. --> |
| <property name="ActiveDatasetTlvs" type="ay" access="readwrite"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| |
| <!-- RadioRegion: The radio region code in ISO 3166-1. --> |
| <property name="RadioRegion" type="s" access="readwrite"> |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/> |
| </property> |
| </interface> |
| |
| <interface name="org.freedesktop.DBus.Properties"> |
| <method name="Get"> |
| <arg name="interface" direction="in" type="s"/> |
| <arg name="property" direction="in" type="s"/> |
| <arg name="value" direction="out" type="v"/> |
| </method> |
| |
| <method name="GetAll"> |
| <arg name="interface" direction="in" type="s"/> |
| <arg name="properties" direction="out" type="a{sv}"/> |
| </method> |
| |
| <method name="Set"> |
| <arg name="interface" direction="in" type="s"/> |
| <arg name="property" direction="in" type="s"/> |
| <arg name="value" direction="in" type="v"/> |
| </method> |
| |
| <signal name="PropertiesChanged"> |
| <arg type="s" name="interface"/> |
| <arg type="a{sv}" name="changed_properties"/> |
| <arg type="as" name="invalidated_properties"/> |
| </signal> |
| </interface> |
| </node> |