Mesh Extender Selection

View source on GitHub

Connected Dominating Set

OT Connected Dominating Set
Example of a Connected Dominating Set

Mesh Extenders must form a Connected Dominating Set (CDS), which means:

  1. There is a Mesh Extender-only path between any two Mesh Extenders.
  2. Any one Mesh Extender in a Thread network can reach any other Mesh Extender by staying entirely within the set of Mesh Extenders.
  3. Every End Device in a Thread network is directly connected to a Mesh Extender.

A distributed algorithm maintains the CDS, which ensures a minimum level of redundancy. Every device initially attaches to the network as an End Device (Child). As the state of the Thread network changes, the algorithm adds or removes Mesh Extenders to maintain the CDS.

Thread adds Mesh Extenders to:

  • Increase coverage if the network is below the Mesh Extender threshold of 16
  • Increase path diversity
  • Maintain a minimum level of redundancy
  • Extend connectivity and support more Children

Thread removes Mesh Extenders (switching them to standby Extender-Capable Devices (ECDs)) to:

  • Keep the Routing state below the maximum of 32 Mesh Extenders
  • Allow new Mesh Extenders in other parts of the network when needed

Upgrade to a Mesh Extender

After attaching to a Thread network, a Child device that is an Extender-Capable Device may elect to become a Mesh Extender. Before initiating the MLE Link Request process, the Child sends an Address Solicit message to the Leader, asking for a Router ID. If the Leader accepts, it responds with a Router ID and the Child upgrades itself to a Mesh Extender.

The MLE Link Request process is then used to establish bi-directional Mesh Extender links with neighboring Mesh Extenders.

  1. The new Mesh Extender sends a multicast Link Request to neighboring Mesh Extenders.
  2. Mesh Extenders respond with Link Accept and Request messages.
  3. The new Mesh Extender responds to each Mesh Extender with a unicast Link Accept to establish the Mesh Extender link.

A Link Request is a request from the Mesh Extender to all other Mesh Extenders in the Thread network. When first becoming a Mesh Extender, the device sends a multicast Link Request to ff02::2. Later, after discovering the other Mesh Extenders via MLE Advertisements, the devices send unicast Link Requests.

OT MLE Link Request
Link Request Message Contents
Version Thread protocol version
Challenge Tests the timeliness of the Link Response to prevent replay attacks
Source Address RLOC16 of the sender
Leader Data Information about the Mesh Extender's Leader, as stored on the sender (RLOC, Partition ID, Partition weight)

A Link Accept and Request is a combination of the Link Accept and Link Request messages. Thread uses this optimization in the MLE Link Request process to reduce the number of messages from four to three.

OT MLE Link Accept and Request

A Link Accept is a unicast response to a Link Request from a neighboring Mesh Extender that provides information about itself and accepts the link to the neighboring Mesh Extender.

OT MLE Link Accept
Link Accept Message Contents
Version Thread protocol version
Response Tests the timeliness of the Link Response to prevent replay attacks
Link Frame Counter 802.15.4 Frame Counter on the sender
MLE Frame Counter MLE Frame Counter on the sender
Source Address RLOC16 of the sender
Leader Data Information about the Mesh Extender's Leader, as stored on the sender (RLOC, Partition ID, Partition weight)

Downgrade to a standby Extender-Capable Device

When a Mesh Extender downgrades to a standby Extender-Capable Device, its Mesh Extender links are disconnected, and the device initiates the MLE Attach process to establish a Child-Parent link.

See Join an existing network for more information on the MLE Attach process.

In some scenarios, it may be necessary to establish a one-way receive link.

After a Mesh Extender reset, neighboring Mesh Extenders may still have a valid receive link with the reset Mesh Extender. In this case, the reset Mesh Extender sends a Link Request message to re-establish the existing Mesh Extender link.

An End Device may also wish to establish a receive link with neighboring non-Parent Mesh Extenders to improve multicast reliability. We'll learn more about this when we get to Multicast Routing.

Recap

What you've learned:

  • Mesh Extenders in a Thread network must form a Connected Dominating Set (CDS)
  • Extender-Capable Devices (ECDs) can be upgraded to Mesh Extenders or downgraded to standby ECDs to maintain the CDS
  • The MLE Link Request process is used to establish Mesh Extender links

Check your understanding

Which of these rules are not enforced by a Connected Dominating Set (CDS)?
There is a Mesh Extender-only path between any two Mesh Extenders.
Incorrect.
Any one Mesh Extender in a Thread network can reach any other Mesh Extender by staying entirely within the set of Mesh Extenders.
Incorrect.
Every End Device in a Thread network is directly connected to a Mesh Extender.
Incorrect.
Only one Mesh Extender in a Thread network may be a Border Router.
Correct. A Thread network may have multiple Border Routers.
Why might a Mesh Extender be removed (i.e. downgraded to a standby Extender-Capable Device) from a Thread network?
To keep the Routing state below the maximum of 32 Mesh Extenders.
Correct. Thread networks strive to maintain an optimal number of Mesh Extenders. The most Mesh Extenders that any Thread network should have is 32.
To free up channels.
Incorrect. The number of Mesh Extenders has no relation to channel usage or capacity.
To allow the election of new Mesh Extenders in other parts of the network when needed.
Correct. Reducing the number of Mesh Extenders in one part of a Thread network increases its ability to ramp up routing capacity elsewhere.
What must happen before an Extender-Capable Device that is attempting to become a Mesh Extender can establish direct links with the other Mesh Extenders?
The Extender-Capable Device must send an Address Solicit message to the network Leader.
Correct.
The Leader must grant a Router ID to the Extender-Capable Device.
Correct. Without a Router ID, the Extender-Capable Device remains an End Device (Child).
The Extender-Capable Device must send an MLE Link Request.
Wrong. The MLE Link Request is how the device establishes links to other Mesh Extenders once it has become a Mesh Extender.
Which of the following statements accurately describes what happens when a Mesh Extender downgrades?
The device automatically remains on the network but as a Child (standby Extender-Capable Device).
Wrong. There are more steps involved when a Mesh Extender downgrades.
The device must initiate the MLE Attach process to establish a new connection to the network.
Correct. A device that downgrades from a Mesh Extender to a standby Extender-Capable Device is disconnected and must renegotiate its connection to the network.
What process is used to establish Mesh Extender links?
The MLE Link Request process.
Correct.
The Link Accept and Request process.
Incorrect. There's no such thing as a Link Accept and Request process. Link Accept and Request messages are sent by Mesh Extenders in response to Link Request messages as part of the MLE Link Request process.
The MLE Attach process.
Incorrect. The MLE Attach process is the process by which a device joins an existing Thread network.