[dataset] allow setting partially complete active dataset (#3773)

When a partial dataset is stored, the device will attempt to attach to a
Thread network using the limited parameters available. If the device
successfully attaches, the device will then obtain the complete Active
Dataset from its Parent. If the device is router-capable, it will not
become a Router/Leader until it has successfully retrieved a complete Active
Dataset.

Saving a partial dataset supports out-of-band commissioning scenarios.
This commit is contained in:
Jonathan Hui
2019-04-23 22:10:40 -07:00
committed by GitHub
parent c5537e1b01
commit 4e45b45796
8 changed files with 92 additions and 43 deletions
+13
View File
@@ -306,6 +306,19 @@ OTAPI otError OTCALL otDatasetGetActive(otInstance *aInstance, otOperationalData
/**
* This function sets the Active Operational Dataset.
*
* If the dataset does not include an Active Timestamp, the dataset is only partially complete.
*
* If Thread is enabled on a device that has a partially complete Active Dataset, the device will attempt to attach to
* an existing Thread network using any existing information in the dataset. The minimum set of information needed to
* attach is the PAN ID and Thread Master Key.
*
* If channel is not included in the dataset, the device will send MLE Announce messages across different channels to
* find neighbors on other channels.
*
* If the device successfully attaches to a Thread network, the device will then retrieve the full Active Dataset from
* its Parent. Note that a router-capable device will not transition to the Router or Leader roles until it has a
* complete Active Dataset.
*
* @param[in] aInstance A pointer to an OpenThread instance.
* @param[in] aDataset A pointer to the Active Operational Dataset.
*