mirror of
https://github.com/espressif/openthread.git
synced 2026-10-08 08:47:38 +00:00
[dataset] add otDatasetUpdateTlvs API (#8871)
This commit is contained in:
@@ -606,6 +606,21 @@ otError otDatasetParseTlvs(const otOperationalDatasetTlvs *aDatasetTlvs, otOpera
|
||||
*/
|
||||
otError otDatasetConvertToTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs);
|
||||
|
||||
/**
|
||||
* Updates a given Operational Dataset.
|
||||
*
|
||||
* @p aDataset contains the fields to be updated and their new value.
|
||||
*
|
||||
* @param[in] aDataset Specifies the set of types and values to update.
|
||||
* @param[in,out] aDatasetTlvs A pointer to dataset TLVs to update.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully updated @p aDatasetTlvs.
|
||||
* @retval OT_ERROR_INVALID_ARGS @p aDataset contains invalid values.
|
||||
* @retval OT_ERROR_NO_BUFS Not enough space space in @p aDatasetTlvs to apply the update.
|
||||
*
|
||||
*/
|
||||
otError otDatasetUpdateTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*
|
||||
|
||||
@@ -53,7 +53,7 @@ extern "C" {
|
||||
* @note This number versions both OpenThread platform and user APIs.
|
||||
*
|
||||
*/
|
||||
#define OPENTHREAD_API_VERSION (299)
|
||||
#define OPENTHREAD_API_VERSION (300)
|
||||
|
||||
/**
|
||||
* @addtogroup api-instance
|
||||
|
||||
@@ -182,3 +182,18 @@ otError otDatasetConvertToTlvs(const otOperationalDataset *aDataset, otOperation
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
otError otDatasetUpdateTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs)
|
||||
{
|
||||
Error error = kErrorNone;
|
||||
MeshCoP::Dataset dataset;
|
||||
|
||||
AssertPointerIsNotNull(aDatasetTlvs);
|
||||
|
||||
dataset.SetFrom(*aDatasetTlvs);
|
||||
SuccessOrExit(error = dataset.SetFrom(AsCoreType(aDataset)));
|
||||
dataset.ConvertTo(*aDatasetTlvs);
|
||||
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user