blob: 199853c026f399d39bfb2599ca413963dc17fe19 [file] [log] [blame]
<!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
uint16 channel
uint16 rssi
uint8 lqi
uint8 version
bool is_native
bool is_joinable
}
</literallayout>
-->
<method name="Scan">
<arg name="scan_result" type="a(tstayqqqqyybb)" direction="out"/>
</method>
<!-- Attach: Attach the current device to the Thread network.
@networkkey: The 128-bit network network key, empty for random.
@panid: The 16-bit panid, UINT16_MAX for any.
@networkname: The Thread network name.
@extpanid: The 64-bit extended panid, UINT64_MAX for random.
@pskc: The 128-bit pre-shared key for commissione, empty for random.
@channel_mask: The bitwise channel mask, will randomly select a valid channel.
You can also call this method with no arugment to use the current active network dataset.
-->
<method name="Attach">
<arg name="networkkey" type="ay"/>
<arg name="panid" type="q"/>
<arg name="networkname" type="s"/>
<arg name="extpanid" type="t"/>
<arg name="pskc" type="ay"/>
<arg name="channel_mask" type="u"/>
</method>
<!-- AttachAllNodesTo: Request to attach all nodes to the specified Thread network.
@dataset: The Operational Dataset that contains parameter values of the Thread network
to attach to. It must be a full dataset.
-->
<method name="AttachAllNodesTo">
<arg name="dataset" type="ay"/>
</method>
<!-- Detach: Detach the current device from the Thread network. -->
<method name="Detach">
</method>
<!-- 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>
<!-- UpdateMeshCopTxt: Update multiple entries in the TXT record.
@key: The key of the entry.
@value: The value of the entry.
The prefix structure is:
<literallayout>
struct {
string key
uint8[] value
}
</literallayout>
-->
<method name="UpdateVendorMeshCopTxtEntries">
<arg name="update" type="a(say)" direction="in"/>
</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="((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.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>