[dataset] add otDatasetUpdateTlvs API (#8871)

This commit is contained in:
Jonathan Hui
2023-03-16 09:36:41 -07:00
parent 41f051d69b
commit fffd5bac8c
3 changed files with 31 additions and 1 deletions
+15
View File
@@ -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);
/**
* @}
*
+1 -1
View File
@@ -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
+15
View File
@@ -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;
}