This section describes all of the properties and semantics required for managing a Thread(R) NCP.
Thread(R) NCPs have the following requirements:
PROP_INTERFACE_TYPE
must be 3.All serious implementations of an NCP SHOULD also support the network save feature (See (#feature-network-save)).
The Thread(R) technology defines the following capabilities:
CAP_NET_THREAD_1_0
- Indicates that the NCP implements v1.0 of the Thread(R) standard.CAP_NET_THREAD_1_1
- Indicates that the NCP implements v1.1 of the Thread(R) standard.Properties for Thread(R) are allocated out of the Tech
property section (see (#property-sections)).
6
The IPv6 address of the leader. (Note: May change to long and short address of leader)
ESLccCC
Information about parent of this node.
E
: Extended addressS
: RLOC16L
: Age (seconds since last heard from)c
: Average RSS (in dBm)c
: Last RSSI (in dBm)C
: Link Quality InC
: Link Quality OutA(t(ESLLCCcCc)
Table containing info about all the children of this node.
Data per item is:
E
: Extended addressS
: RLOC16L
: Timeout (in seconds)L
: Age (in seconds)L
: Network Data versionC
: Link Quality Inc
: Average RSS (in dBm)C
: Mode (bit-flags)c
: Last RSSI (in dBm)C
The router-id of the current leader.
C
The leader weight of the current leader.
C
The leader weight for this node.
D
The local network data.
S
D
The local stable network data.
S
A(t(6CbCbS))
Data per item is:
6
: IPv6 PrefixC
: Prefix length in bitsb
: Stable flagC
: TLV flagsb
: “Is defined locally” flag. Set if this network was locally defined. Assumed to be true for set, insert and replace. Clear if the on mesh network was defined by another node.S
: The RLOC16 of the device that registered this on-mesh prefix entry. This value is not used and ignored when adding an on-mesh prefix.A(t(6CbCbb))
Data per item is:
6
: Route PrefixC
: Prefix length in bitsb
: Stable flagC
: Route preference flagsb
: “Is defined locally” flag. Set if this route info was locally defined as part of local network data. Assumed to be true for set, insert and replace. Clear if the route is part of partition's network data.b
: “Next hop is this device” flag. Set if the next hop for the route is this device itself (i.e., route was added by this device) This value is ignored when adding an external route. For any added route the next hop is this device.S
: The RLOC16 of the device that registered this route entry. This value is not used and ignored when adding a route.A(S)
b
Set to true before changing local net data. Set to false when finished. This allows changes to be aggregated into single events.
C
This property contains the value of the mode TLV for this node. The meaning of the bits in this bitfield are defined by section 4.5.2 of the Thread(R) specification.
L
Used when operating in the Child role.
S
C
L
C
Allows you to get or set the Thread(R) NETWORK_ID_TIMEOUT
constant, as defined by the Thread(R) specification.
A(C)
(List of active thread router ids)Note that some implementations may not support CMD_GET_VALUE
router ids, but may support CMD_REMOVE_VALUE
when the node is a leader.
b
Allow the HOST to directly observe all IPv6 packets received by the NCP, including ones sent to the RLOC16 address.
Default value is false
.
b
Allow the HOST to indicate whether or not the router role is enabled. If current role is a router, setting this property to false
starts a re-attach process as an end-device.
C
C
Specifies the self imposed random delay in seconds a REED waits before registering to become an Active Router.
C
Specifies the preferred Router Id. Upon becoming a router/leader the node attempts to use this Router Id. If the preferred Router Id is not set or if it can not be used, a randomly generated router id is picked. This property can be set only when the device role is either detached or disabled.
A(t(ESLCcCbLLc))
Data per item is:
E
: Extended addressS
: RLOC16L
: AgeC
: Link Quality Inc
: Average RSS (in dBm)C
: Mode (bit-flags)b
: true
if neighbor is a child, false
otherwise.L
: Link Frame CounterL
: MLE Frame Counterc
: The last RSSI (in dBm)C
Specifies the maximum number of children currently allowed. This parameter can only be set when Thread(R) protocol operation has been stopped.
D
The leader network data.
D
The stable leader network data.
A(t(ULE))
CAP_THREAD_COMMISSIONER
Data per item is:
U
: PSKdL
: Timeout in secondsE
: IEEE EUI-64 (optional)Passess Pre-Shared Key for the Device to the NCP in the commissioning process. When the Extended address is ommited all Devices which provided a valid PSKd are allowed to join the Thread(R) Network.
b
CAP_THREAD_COMMISSIONER
Set to true to enable the native commissioner. It is mandatory before adding the joiner to the network.
b
CAP_THREAD_TMF_PROXY
Set to true to enable the TMF proxy. This property is deprecated.
dSS
CAP_THREAD_TMF_PROXY
This property is deprecated. Please see SPINEL_PROP_THREAD_UDP_PROXY_STREAM
.
Data per item is:
d
: CoAP frameS
: source/destination RLOC/ALOCS
: source/destination portOctects: | 2 | n | 2 | 2 |
---|---|---|---|---|
Fields: | Length | CoAP | locator | port |
This property allows the host to send and receive TMF messages from the NCP's RLOC address and support Thread-specific border router functions.
b
This property specifies the value used in Thread(R) MLE Discovery Request TLV during discovery scan operation. Default value is false
.
b
This property is used to enable/disable EUI64 filtering during discovery scan operation. Default value is false
.
S
This property specifies the PANID used for filtering during discovery scan operation. Default value is 0xffff
(broadcast PANID) which disables PANID filtering.
E
CAP_OOB_STEERING_DATA
This property can be used to set the steering data for MLE Discovery Response messages.
A(t(ESCCCCCCb)
Data per item is:
E
: IEEE 802.15.4 Extended AddressS
: RLOC16C
: Router IDC
: Next hop to routerC
: Path cost to routerC
: Link Quality InC
: Link Quality OutC
: Age (seconds since last heard)b
: Link established with Router ID or not.A(t(iD))
This property provides access to current Thread Active Operational Dataset. A Thread device maintains the Operational Dataset that it has stored locally and the one currently in use by the partition to which it is attached. This property corresponds to the locally stored Dataset on the device.
Operational Dataset consists of a set of supported properties (e.g., channel, master key, network name, PAN id, etc). Note that not all supported properties may be present (have a value) in a Dataset.
The Dataset value is encoded as an array of structures containing pairs of property key (as i
) followed by the property value (as D
). The property value must follow the format associated with the corresponding spinel property.
On write, any unknown/unsupported property keys must be ignored.
The following properties can be included in a Dataset list:
A(t(iD))
This property provide access to current Thread Pending Operational Dataset locally stored on the device.
The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_ACTIVE_DATASET.
In addition supported properties in SPINEL_PROP_THREAD_ACTIVE_DATASET, the following properties can also be included in the Pending Dataset:
A(t(iD))
The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_ACTIVE_DATASET.
This is write-only property. When written, it triggers a MGMT_ACTIVE_SET meshcop command to be sent to the leader with the given Dataset. The spinel frame response should be a LAST_STATUS
with the status of the transmission of MGMT_ACTIVE_SET command.
In addition to supported properties in SPINEL_PROP_THREAD_ACTIVE_DATASET, the following property can be included in the Dataset (to allow for custom raw TLVs):
A(t(iD))
This property is similar to SPINEL_PROP_THREAD_PENDING_DATASET and follows the same format and rules.
In addition to supported properties in SPINEL_PROP_THREAD_PENDING_DATASET, the following property can be included the Dataset (to allow for custom raw TLVs to be provided):
X
This property represents the Active Timestamp field in a Thread Operational Dataset.
This can only be included in one of the Dataset related properties below:
X
This property represents the Pending Timestamp field in a Thread Operational Dataset.
It can only be included in one of the Pending Dataset properties:
L
This property represents the Delay Timer field in a Thread Operational Dataset. Delay timer (in ms) specifies the time renaming until Thread devices overwrite the value in the Active Operational Dataset with the corresponding values in the Pending Operational Dataset.
It can only be included in one of the Pending Dataset properties:
SC
This property represents the Security Policy field in a Thread Operational Dataset.
The content is:
S
: Key Rotation Time (in units of hour)C
: Security Policy Flags (as specified in Thread 1.1 Section 8.10.1.15)It can only be included in one of the Dataset related properties below:
D
This property defines extra raw TLVs that can be added to an Operational DataSet.
It can only be included in one of the following Dataset properties:
A(t(ESA(6))
This property provides the list of all addresses associated with every child including any registered IPv6 addresses.
Data per item is:
E
: Extended address of the childS
: RLOC16 of the childA(6)
: List of IPv6 addresses registered by the child (if any)A(t(ESSScc))
CAP_ERROR_RATE_TRACKING
This property provides link quality related info including frame and (IPv6) message error rates for all neighbors.
With regards to message error rate, note that a larger (IPv6) message can be fragmented and sent as multiple MAC frames. The message transmission is considered a failure, if any of its fragments fail after all MAC retry attempts.
Data per item is:
E
: Extended address of the neighborS
: RLOC16 of the neighborS
: Frame error rate (0 -> 0%, 0xffff -> 100%)S
: Message error rate (0 -> 0%, 0xffff -> 100%)c
: Average RSSI (in dBm)c
: Last RSSI (in dBm)A(t(6SC))
This property provides Thread EID IPv6 address cache table.
Data per item is:
6
: Target IPv6 addressS
: RLOC16 of targetC
: Age (order of use, 0 indicates most recently used entry)dS6S
CAP_THREAD_UDP_PROXY
This property helps exchange UDP packets with host.
d
: UDP payload S
: Remote UDP port 6
: Remote IPv6 address S
: Local UDP port
A(t(iD))
The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET. This property allows the sender to not include a value associated with properties in formating of t(iD)
, i.e., it should accept either a t(iD)
or a t(i)
encoding which in both cases indicate the associated Dataset property should be requested as part of MGMT_GET command.
When written, it triggers a MGMT_ACTIVE_GET meshcop command to be sent to leader with the given Dataset. The spinel frame response should be a LAST_STATUS
with the status of the transmission of MGMT_ACTIVE_GET command.
In addition to supported properties in SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET, the following property can be optionally included in the Dataset:
A(t(iD))
The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET.
This is write-only property. When written, it triggers a MGMT_PENDING_GET meshcop command to be sent to leader with the given Dataset. The spinel frame response should be a LAST_STATUS
with the status of the transmission of MGMT_PENDING_GET command.
In addition to supported properties in SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET, the following property can be optionally included the Dataset:
6
This property specifies the IPv6 destination when sending MGMT_GET command for either Active or Pending Dataset if not provided, Leader ALOC address is used as default.
This can only be included in one of the Dataset related properties below: