[dataset] use full Timestamp TLV value in otOperationalDataset (#7739)

The `otOperationalDataset#mActiveTimestamp` should represent the full
Active Timestamp TLV value but not only the seconds. The same for
`otOperationalDataset#mPendingTimestamp`.
This commit is contained in:
Kangping
2022-06-04 01:59:16 +08:00
committed by GitHub
parent c8556dfd66
commit 5daca7c684
12 changed files with 150 additions and 52 deletions
+16 -8
View File
@@ -51,12 +51,12 @@ otError Dataset::Print(otOperationalDataset &aDataset)
{
if (aDataset.mComponents.mIsPendingTimestampPresent)
{
OutputLine("Pending Timestamp: %lu", aDataset.mPendingTimestamp);
OutputLine("Pending Timestamp: %lu", aDataset.mPendingTimestamp.mSeconds);
}
if (aDataset.mComponents.mIsActiveTimestampPresent)
{
OutputLine("Active Timestamp: %lu", aDataset.mActiveTimestamp);
OutputLine("Active Timestamp: %lu", aDataset.mActiveTimestamp.mSeconds);
}
if (aDataset.mComponents.mIsChannelPresent)
@@ -205,12 +205,14 @@ template <> otError Dataset::Process<Cmd("activetimestamp")>(Arg aArgs[])
{
if (sDataset.mComponents.mIsActiveTimestampPresent)
{
OutputLine("%lu", sDataset.mActiveTimestamp);
OutputLine("%lu", sDataset.mActiveTimestamp.mSeconds);
}
}
else
{
SuccessOrExit(error = aArgs[0].ParseAsUint64(sDataset.mActiveTimestamp));
SuccessOrExit(error = aArgs[0].ParseAsUint64(sDataset.mActiveTimestamp.mSeconds));
sDataset.mActiveTimestamp.mTicks = 0;
sDataset.mActiveTimestamp.mAuthoritative = false;
sDataset.mComponents.mIsActiveTimestampPresent = true;
}
@@ -423,12 +425,14 @@ template <> otError Dataset::Process<Cmd("pendingtimestamp")>(Arg aArgs[])
{
if (sDataset.mComponents.mIsPendingTimestampPresent)
{
OutputLine("%lu", sDataset.mPendingTimestamp);
OutputLine("%lu", sDataset.mPendingTimestamp.mSeconds);
}
}
else
{
SuccessOrExit(error = aArgs[0].ParseAsUint64(sDataset.mPendingTimestamp));
SuccessOrExit(error = aArgs[0].ParseAsUint64(sDataset.mPendingTimestamp.mSeconds));
sDataset.mPendingTimestamp.mTicks = 0;
sDataset.mPendingTimestamp.mAuthoritative = false;
sDataset.mComponents.mIsPendingTimestampPresent = true;
}
@@ -450,14 +454,18 @@ template <> otError Dataset::Process<Cmd("mgmtsetcommand")>(Arg aArgs[])
if (*arg == "activetimestamp")
{
arg++;
SuccessOrExit(error = arg->ParseAsUint64(dataset.mActiveTimestamp.mSeconds));
dataset.mActiveTimestamp.mTicks = 0;
dataset.mActiveTimestamp.mAuthoritative = false;
dataset.mComponents.mIsActiveTimestampPresent = true;
SuccessOrExit(error = arg->ParseAsUint64(dataset.mActiveTimestamp));
}
else if (*arg == "pendingtimestamp")
{
arg++;
SuccessOrExit(error = arg->ParseAsUint64(dataset.mPendingTimestamp.mSeconds));
dataset.mPendingTimestamp.mTicks = 0;
dataset.mPendingTimestamp.mAuthoritative = false;
dataset.mComponents.mIsPendingTimestampPresent = true;
SuccessOrExit(error = arg->ParseAsUint64(dataset.mPendingTimestamp));
}
else if (*arg == "networkkey")
{