[utils] adding 'DatasetUpdater' (#5807)

This commit adds a new module `DatasetUpdater` which provides
easy-to-use APIs for user to request an update to any component (a
subset of components) in Operational Dataset of the Thread network.
The change can be requested from any node in the network. The
implementation uses `MGMT_PENDING_SET` command and takes care of
preparing the Pending Dataset and updating timestamps and monitoring
for the Dataset to be updated and possibly retrying. It reports the
outcome (success or failure status) back to the user in a callback.

This commit also updates the `ChannelManager` module is to use the
`DatasetUpdater` to change the channel.
This commit is contained in:
Abtin Keshavarzian
2020-11-23 16:27:54 -08:00
committed by GitHub
parent 6af97d61b5
commit 1cac116526
30 changed files with 899 additions and 169 deletions
+2 -2
View File
@@ -145,8 +145,8 @@ void Notifier::EmitEvents(void)
#if OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
Get<Utils::ChildSupervisor>().HandleNotifierEvents(events);
#endif
#if OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
Get<Utils::ChannelManager>().HandleNotifierEvents(events);
#if OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE || OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
Get<Utils::DatasetUpdater>().HandleNotifierEvents(events);
#endif
#endif // OPENTHREAD_FTD
#if OPENTHREAD_FTD || OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE || OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE