Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 23 additions & 20 deletions site/en/guides/thread-primer/ipv6-addressing.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,22 @@ location in the network topology.

### How a Routing Locator is generated

All devices are assigned a Router ID and a Child ID. Each Router maintains a
table of all their Children, the combination of which uniquely identifies a
device within the topology. For example, consider the highlighted nodes in the
following topology, where the number in a Router (pentagon) is the Router ID,
and the number in an End Device (circle) is the Child ID:
All devices are assigned a Router ID and a Child ID. Each Parent
maintains a table of all its Children, the combination of which
uniquely identifies a device within the topology. For example,
consider the highlighted nodes in the following topology, where the
number in a Mesh Extender (pentagon) is the Router ID, and the number
in an End Device (circle) is the Child ID:

<figure>
<a href="../images/ot-primer-rloc-topology_2x.png"><img src="../images/ot-primer-rloc-topology.png" srcset="../images/ot-primer-rloc-topology.png 1x, ../images/ot-primer-rloc-topology_2x.png 2x" border="0" width="600" alt="OT RLOC Topology" /></a>
</figure>

Each Child's Router ID corresponds to their Parent (Router). Because a Router is
not a Child, the Child ID for a Router is always 0. Together, these values are
unique for each device in the Thread network, and are used to create the RLOC16,
which represents the last 16 bits of the RLOC.
Each Child's Router ID corresponds to its Parent (Mesh
Extender). Because a Mesh Extender is not a Child, the Child ID for a
Mesh Extender is always 0. Together, these values are unique for each
Comment thread
jwhui marked this conversation as resolved.
device in the Thread network, and are used to create the RLOC16, which
represents the last 16 bits of the RLOC.

For example, here's how the RLOC16 is calculated for the upper-left node (Router
ID = 1 and Child ID = 1):
Expand Down Expand Up @@ -81,9 +83,10 @@ This same logic can be used to determine the RLOC for all highlighted nodes in t
However, because the RLOC is based on the location of the node in the topology,
the RLOC of a node can change as the topology changes.

For example, perhaps node `0x400` is removed from the Thread network. Nodes
`0x401` and `0x402` establish new links to different Routers, and as a result
they are each assigned a new RLOC16 and RLOC:
For example, perhaps node `0x400` is removed from the Thread
network. Nodes `0x401` and `0x402` establish new links to different
Mesh Extenders, and as a result they are each assigned a new RLOC16
and RLOC:
Comment thread
jwhui marked this conversation as resolved.

<figure>
<a href="../images/ot-primer-rloc-topology-change_2x.png"><img src="../images/ot-primer-rloc-topology-change.png" srcset="../images/ot-primer-rloc-topology-change.png 1x, ../images/ot-primer-rloc-topology-change_2x.png 2x" border="0" width="600" alt="OT Topology after Change" /></a>
Expand Down Expand Up @@ -272,7 +275,7 @@ What you've learned:
* A Thread device has multiple unicast IPv6 addresses
* An RLOC represents a device's location in the Thread network
* An ML-EID is unique to a Thread device within a partition and should be used by applications
* Thread uses multicast to forward data to groups of nodes and routers
* Thread uses multicast to forward data to groups of nodes
* Thread uses anycast when the RLOC of a destination is unknown

To learn more about Thread's IPv6 addressing, see sections 5.2 and 5.3 of the
Expand Down Expand Up @@ -319,12 +322,12 @@ To learn more about Thread's IPv6 addressing, see sections 5.2 and 5.3 of the
<div>Incorrect.</div>
</div>
<div>
<div>The device is a REED.</div>
<div>The device is an Extender-Capable Device.</div>
<div>Close, but incorrect.</div>
</div>
<div correct>
<div>The device is a Router.</div>
<div>Correct. A Router always has a Child ID of 0.</div>
<div>The device is a Mesh Extender.</div>
<div>Correct. A Mesh Extender always has a Child ID of 0.</div>
</div>
</devsite-multiple-choice>
</div>
Expand All @@ -339,10 +342,10 @@ To learn more about Thread's IPv6 addressing, see sections 5.2 and 5.3 of the
network.</div>
</div>
<div correct>
<div>A router dropped off the network.</div>
<div>Correct. When a router drops off a network, the network
<div>A Mesh Extender dropped off the network.</div>
<div>Correct. When a Mesh Extender drops off a network, the network
topology changes, which may result in the device promoting itself to a
router and obtaining a new RLOC.</div>
Mesh Extender and obtaining a new RLOC.</div>
</div>
<div>
<div>The camera entered sleep mode, which changed the network topology.
Expand Down Expand Up @@ -381,7 +384,7 @@ To learn more about Thread's IPv6 addressing, see sections 5.2 and 5.3 of the
<div>
<devsite-multiple-choice>
<div>What type of addressing and routing does Thread use to forward data to
groups of nodes and routers?</div>
groups of nodes?</div>
<div>
<div>unicast</div>
<div>Incorrect.</div>
Expand Down
86 changes: 40 additions & 46 deletions site/en/guides/thread-primer/network-discovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@ When creating a new Thread network, or searching for an existing one to join, a
Thread device performs an active scan for 802.15.4 networks within radio range:

1. The device broadcasts an 802.15.4 Beacon Request on a specific Channel.
1. In return, any Routers or Router Eligible End Devices (REEDs) in range
broadcast a Beacon that contains their Thread network PAN ID, XPAN ID, and
Network Name.
1. In return, any Extender-Capable Devices (ECDs) in range broadcast a Beacon that contains
their Thread network PAN ID, XPAN ID, and Network Name.
1. The device repeats the previous two steps for each Channel.

Once a Thread device has discovered all networks in range, it can either attach
Expand Down Expand Up @@ -62,11 +61,12 @@ device has already been commissioned.

## Create a new network

If the device elects to create a new network, it selects the least busy Channel
and a PAN ID not in use by other networks, then becomes a Router and elects
itself the Leader. This device sends MLE Advertisement messages to other
802.15.4 devices to inform them of its link state, and responds to Beacon
Requests by other Thread devices performing an active scan.
If the device elects to create a new network, it selects the least
busy Channel and a PAN ID not in use by other networks, then becomes a
Mesh Extender and elects itself the Leader. This device sends MLE
Advertisement messages to other 802.15.4 devices to inform them of its
link state, and responds to Beacon Requests by other Thread devices
performing an active scan.

## Join an existing network

Expand All @@ -75,13 +75,13 @@ ID, XPAN ID, and Network Name to match that of the target network via Thread
Commissioning, then goes through the MLE Attach process to attach as a Child
(End Device). This process is used for Child-Parent links.

Key Point: Every device, router-capable or not, initially attaches to a Thread
Key Point: Every device, ECD or not, initially attaches to a Thread
network as a Child (End Device).

1. The Child sends a multicast [Parent Request](#1_parent_request) to all
neighboring Routers and REEDs in the target network.
1. All neighboring Routers and REEDs (if the Parent Request Scan Mask includes
REEDs) send [Parent Responses](#2_parent_response) with information about
neighboring Extender-Capable Devices in the target network.
1. All neighboring Mesh Extenders (and standby ECDs, if the Parent Request Scan Mask includes
standby ECDs) send [Parent Responses](#2_parent_response) with information about
themselves.
1. The Child chooses a Parent device and sends a [Child ID
Request](#3_child_id_request) to it.
Expand All @@ -91,8 +91,7 @@ network as a Child (End Device).
### 1. Parent Request

A Parent Request is a multicast request from the attaching device that is used
to discover neighboring Routers and Router Eligible End Devices (REEDs) in the
target network.
to discover neighboring Extender-Capable Devices in the target network.

<figure>
<a href="../images/ot-primer-network-mle-attach-01.png"><img src="../images/ot-primer-network-mle-attach-01.png" width="350" border="0" alt="OT MLE Attach Parent Request" /></a>
Expand All @@ -113,15 +112,16 @@ target network.
</tr>
<tr>
<td width="25%"><b>Scan Mask</b></td>
<td>Limits the request to only Routers or to both Routers and REEDs</td>
<td>Limits the request to only Mesh Extenders or to all Extender-Capable Devices</td>
</tr>
</tbody>
</table>

### 2. Parent Response

A Parent Response is a unicast response to a Parent Request that provides
information about a Router or REED to the attaching device.
A Parent Response is a unicast response to a Parent Request that
provides information about an Extender-Capable Device to the attaching
device.

<figure>
<a href="../images/ot-primer-network-mle-attach-02.png"><img src="../images/ot-primer-network-mle-attach-02.png" width="350" border="0" alt="OT MLE Attach Parent Response" /></a>
Expand All @@ -143,31 +143,31 @@ information about a Router or REED to the attaching device.
<tr>
<td width="25%"><b>Link Frame
Counter</b></td>
<td>802.15.4 Frame Counter on the Router/REED</td>
<td>802.15.4 Frame Counter on the Extender-Capable Device</td>
</tr>
<tr>
<td width="25%"><b>MLE Frame
Counter</b></td>
<td>MLE Frame Counter on the Router/REED</td>
<td>MLE Frame Counter on the Extender-Capable Device</td>
</tr>
<tr>
<td width="25%"><b>Source
Address</b></td>
<td>RLOC16 of the Router/REED</td>
<td>RLOC16 of the Extender-Capable Device</td>
</tr>
<tr>
<td width="25%"><b>Link
Margin</b></td>
<td>Receive signal quality of the Router/REED</td>
<td>Receive signal quality of the Extender-Capable Device</td>
</tr>
<tr>
<td width="25%"><b>Connectivity</b></td>
<td>Describes the Router/REED’s level of connectivity</td>
<td>Describes the Extender-Capable Device's level of connectivity</td>
</tr>
<tr>
<td width="25%"><b>Leader
Data</b></td>
<td>Information about the Router/REED’s Leader</td>
<td>Information about the Extender-Capable Device's Leader</td>
</tr>
<tr>
<td width="25%"><b>Challenge</b></td>
Expand All @@ -179,11 +179,11 @@ information about a Router or REED to the attaching device.

### 3. Child ID Request

A Child ID Request is a unicast request from the attaching device (Child) that
is sent to the Router or REED (Parent) for the purpose of establishing a
Child-Parent link. If the request is sent to a REED, it [upgrades itself to a
Router](router-selection.md) before
accepting the request.
A Child ID Request is a unicast request from the attaching device
(Child) that is sent to the Extender-Capable Device (Parent) for the
purpose of establishing a Child-Parent link. If the request is sent to
a standby Extender-Capable Device, it [upgrades itself to a Mesh
Extender](router-selection.md) before accepting the request.

<figure>
<a href="../images/ot-primer-network-mle-attach-03.png"><img src="../images/ot-primer-network-mle-attach-03.png" width="350" border="0" alt="OT MLE Attach Child ID Request" /></a>
Expand Down Expand Up @@ -242,38 +242,33 @@ Child to confirm that a Child-Parent link has been established.
<th colspan=2>Child ID Response Message Contents</th>
</tr>
<tr>
<td width="25%"><b>Source
Address</b></td>
<td width="25%"><b>Source Address</b></td>
<td>Parent's RLOC16</td>
</tr>
<tr>
<td width="25%"><b>Address16</b></td>
<td>Child's RLOC16</td>
</tr>
<tr>
<td width="25%"><b>Leader
Data</b></td>
<td width="25%"><b>Leader Data</b></td>
<td>Information about the Parent’s Leader (RLOC, Partition ID, Partition
weight)</td>
</tr>
<tr>
<td width="25%"><b>Network
Data</b></td>
<td width="25%"><b>Network Data</b></td>
<td>Information about the Thread network (on-mesh prefixes, address
autoconfiguration, more-specific routes)</td>
</tr>
<tr>
<td width="25%"><b>Route
(REED only)</b></td>
<td width="25%"><b>Route (standby ECDs only)</b></td>
<td>Route propagation</td>
</tr>
<tr>
<td width="25%"><b>Timeout</b></td>
<td>Inactivity duration before the Parent removes the Child</td>
</tr>
<tr>
<td width="25%"><b>Address
Registration (MEDs and SEDs only)</b></td>
<td width="25%"><b>Address Registration (MEDs and SEDs only)</b></td>
<td>Confirm registered addresses</td>
</tr>
</tbody>
Expand Down Expand Up @@ -323,19 +318,18 @@ What you've learned:
<devsite-multiple-choice>
<div>What is a Parent Request used for?</div>
<div correct>
<div>To discover neighboring Routers and Router Eligible End Devices
(REEDs) in the target network.</div>
<div>To discover neighboring Extender-Capable Devices in the target network.</div>
<div>Correct. A Parent Request is issued by a device seeking to attach to
a network.</div>
</div>
<div>
<div>To announce that a Router is becoming a parent.</div>
<div>Incorrect. A Router does not initiate a Parent-Child relationship
with another network device. Instead, a network device selects a Router
to become its Child.</div>
<div>To announce that an Extender-Capable Device is becoming a parent.</div>
<div>Incorrect. A Mesh Extender does not initiate a Parent-Child relationship
with another network device. Instead, a network device selects an Extender-Capable Device
to become its Parent.</div>
</div>
<div>
<div>To request that a Router Eligible End Device be promoted to a Router.
<div>To request that an Extender-Capable Device be promoted to a Mesh Extender.
</div>
<div>Incorrect.</div>
</div>
Expand Down Expand Up @@ -378,7 +372,7 @@ What you've learned:
<div>Incorrect.</div>
</div>
<div>
<div>REED (Router-Eligible End Device) </div>
<div>Mesh Extender</div>
Comment thread
jwhui marked this conversation as resolved.
<div>Incorrect.</div>
</div>
Comment thread
jwhui marked this conversation as resolved.
Comment thread
jwhui marked this conversation as resolved.
Comment thread
jwhui marked this conversation as resolved.
</devsite-multiple-choice>
Expand Down
Loading