[dataset] define Dataset::Tlvs type (#9991)

This commit defines `Dataset::Tlvs` as a core type corresponding to
public OT `otOperationalDatasetTlvs` structure.
This commit is contained in:
Abtin Keshavarzian
2024-04-04 08:48:01 -07:00
committed by GitHub
parent 38418aebe4
commit 875e71e565
7 changed files with 40 additions and 34 deletions
+6 -6
View File
@@ -251,10 +251,10 @@ void Dataset::ConvertTo(Info &aDatasetInfo) const
}
}
void Dataset::ConvertTo(otOperationalDatasetTlvs &aDataset) const
void Dataset::ConvertTo(Tlvs &aTlvs) const
{
memcpy(aDataset.mTlvs, mTlvs, mLength);
aDataset.mLength = static_cast<uint8_t>(mLength);
memcpy(aTlvs.mTlvs, mTlvs, mLength);
aTlvs.mLength = static_cast<uint8_t>(mLength);
}
void Dataset::Set(Type aType, const Dataset &aDataset)
@@ -271,10 +271,10 @@ void Dataset::Set(Type aType, const Dataset &aDataset)
mUpdateTime = aDataset.GetUpdateTime();
}
void Dataset::SetFrom(const otOperationalDatasetTlvs &aDataset)
void Dataset::SetFrom(const Tlvs &aTlvs)
{
mLength = aDataset.mLength;
memcpy(mTlvs, aDataset.mTlvs, mLength);
mLength = aTlvs.mLength;
memcpy(mTlvs, aTlvs.mTlvs, mLength);
}
Error Dataset::SetFrom(const Info &aDatasetInfo)
+10 -4
View File
@@ -75,6 +75,12 @@ public:
kPending, ///< Pending Dataset
};
/**
* Represents a Dataset as a sequence of TLVs.
*
*/
typedef otOperationalDatasetTlvs Tlvs;
/**
* Represents presence of different components in Active or Pending Operational Dataset.
*
@@ -770,10 +776,10 @@ public:
/**
* Converts the TLV representation to structure representation.
*
* @param[out] aDataset A reference to `otOperationalDatasetTlvs` to output the Dataset.
* @param[out] aTlvs A reference to output the Dataset as a sequence of TLVs.
*
*/
void ConvertTo(otOperationalDatasetTlvs &aDataset) const;
void ConvertTo(Tlvs &aTlvs) const;
/**
* Returns the Dataset size in bytes.
@@ -859,10 +865,10 @@ public:
/**
* Sets the Dataset using @p aDataset.
*
* @param[in] aDataset The input Dataset as otOperationalDatasetTlvs.
* @param[in] aDataset The input Dataset as `Tlvs`.
*
*/
void SetFrom(const otOperationalDatasetTlvs &aDataset);
void SetFrom(const Tlvs &aTlvs);
/**
* Appends the MLE Dataset TLV but excluding MeshCoP Sub Timestamp TLV.
+5 -5
View File
@@ -147,15 +147,15 @@ exit:
return error;
}
Error DatasetLocal::Read(otOperationalDatasetTlvs &aDataset) const
Error DatasetLocal::Read(Dataset::Tlvs &aDatasetTlvs) const
{
Dataset dataset;
Error error;
ClearAllBytes(aDataset);
ClearAllBytes(aDatasetTlvs);
SuccessOrExit(error = Read(dataset));
dataset.ConvertTo(aDataset);
dataset.ConvertTo(aDatasetTlvs);
exit:
return error;
@@ -173,11 +173,11 @@ exit:
return error;
}
Error DatasetLocal::Save(const otOperationalDatasetTlvs &aDataset)
Error DatasetLocal::Save(const Dataset::Tlvs &aDatasetTlvs)
{
Dataset dataset;
dataset.SetFrom(aDataset);
dataset.SetFrom(aDatasetTlvs);
return Save(dataset);
}
+4 -4
View File
@@ -134,13 +134,13 @@ public:
/**
* Retrieves the dataset from non-volatile memory.
*
* @param[out] aDataset Where to place the dataset.
* @param[out] aDatasetTlvs Where to place the dataset.
*
* @retval kErrorNone Successfully retrieved the dataset.
* @retval kErrorNotFound There is no corresponding dataset stored in non-volatile memory.
*
*/
Error Read(otOperationalDatasetTlvs &aDataset) const;
Error Read(Dataset::Tlvs &aDatasetTlvs) const;
/**
* Returns the local time this dataset was last updated or restored.
@@ -164,13 +164,13 @@ public:
/**
* Stores the dataset into non-volatile memory.
*
* @param[in] aDataset The Dataset to save as `otOperationalDatasetTlvs`.
* @param[in] aDatasetTlvs The Dataset to save as `Dataset::Tlvs`.
*
* @retval kErrorNone Successfully saved the dataset.
* @retval kErrorNotImplemented The platform does not implement settings functionality.
*
*/
Error Save(const otOperationalDatasetTlvs &aDataset);
Error Save(const Dataset::Tlvs &aDatasetTlvs);
/**
* Stores the dataset into non-volatile memory.
+4 -4
View File
@@ -160,11 +160,11 @@ exit:
return error;
}
Error DatasetManager::Save(const otOperationalDatasetTlvs &aDataset)
Error DatasetManager::Save(const Dataset::Tlvs &aDatasetTlvs)
{
Error error;
SuccessOrExit(error = mLocal.Save(aDataset));
SuccessOrExit(error = mLocal.Save(aDatasetTlvs));
HandleDatasetUpdated();
exit:
@@ -697,11 +697,11 @@ exit:
return error;
}
Error PendingDatasetManager::Save(const otOperationalDatasetTlvs &aDataset)
Error PendingDatasetManager::Save(const Dataset::Tlvs &aDatasetTlvs)
{
Error error;
SuccessOrExit(error = DatasetManager::Save(aDataset));
SuccessOrExit(error = DatasetManager::Save(aDatasetTlvs));
StartDelayTimer();
exit:
+8 -8
View File
@@ -96,13 +96,13 @@ public:
/**
* Retrieves the dataset from non-volatile memory.
*
* @param[out] aDataset Where to place the dataset.
* @param[out] aDatasetTlvs Where to place the dataset.
*
* @retval kErrorNone Successfully retrieved the dataset.
* @retval kErrorNotFound There is no corresponding dataset stored in non-volatile memory.
*
*/
Error Read(otOperationalDatasetTlvs &aDataset) const { return mLocal.Read(aDataset); }
Error Read(Dataset::Tlvs &aDatasetTlvs) const { return mLocal.Read(aDatasetTlvs); }
/**
* Retrieves the channel mask from local dataset.
@@ -261,13 +261,13 @@ protected:
/**
* Saves the Operational Dataset in non-volatile memory.
*
* @param[in] aDataset The Operational Dataset.
* @param[in] aDatasetTlvs The Operational Dataset as `Dataset::Tlvs`.
*
* @retval kErrorNone Successfully saved the dataset.
* @retval kErrorNotImplemented The platform does not implement settings functionality.
*
*/
Error Save(const otOperationalDatasetTlvs &aDataset);
Error Save(const Dataset::Tlvs &aDatasetTlvs);
/**
* Sets the Operational Dataset for the partition.
@@ -459,13 +459,13 @@ public:
/**
* Sets the Operational Dataset in non-volatile memory.
*
* @param[in] aDataset The Operational Dataset.
* @param[in] aDatasetTlvs The Operational Dataset as `Dataset::Tlvs`.
*
* @retval kErrorNone Successfully saved the dataset.
* @retval kErrorNotImplemented The platform does not implement settings functionality.
*
*/
Error Save(const otOperationalDatasetTlvs &aDataset) { return DatasetManager::Save(aDataset); }
Error Save(const Dataset::Tlvs &aDatasetTlvs) { return DatasetManager::Save(aDatasetTlvs); }
#if OPENTHREAD_FTD
@@ -558,13 +558,13 @@ public:
*
* Also starts the Delay Timer.
*
* @param[in] aDataset The Operational Dataset.
* @param[in] aDatasetTlvs The Operational Dataset as a sequence of TLVs.
*
* @retval kErrorNone Successfully saved the dataset.
* @retval kErrorNotImplemented The platform does not implement settings functionality.
*
*/
Error Save(const otOperationalDatasetTlvs &aDataset);
Error Save(const Dataset::Tlvs &aDatasetTlvs);
/**
* Sets the Operational Dataset for the partition.
+3 -3
View File
@@ -461,9 +461,9 @@ exit:
Error TcatAgent::HandleSetActiveOperationalDataset(const Message &aIncommingMessage, uint16_t aOffset, uint16_t aLength)
{
Dataset dataset;
otOperationalDatasetTlvs datasetTlvs;
Error error;
Dataset dataset;
Dataset::Tlvs datasetTlvs;
Error error;
SuccessOrExit(error = dataset.ReadFromMessage(aIncommingMessage, aOffset, aLength));