mirror of
https://github.com/espressif/openthread.git
synced 2026-08-20 09:29:51 +00:00
[mle] add TxMessage::AppendActiveAndPendingTimestampTlvs() (#10341)
This commit adds `AppendActiveAndPendingTimestampTlvs()` helper method, which appends both Active and Pending Timestamp TLVs to the message. This helps simplify the code as the two TLVs are almost always included together in different MLE messages.
This commit is contained in:
+14
-6
@@ -1630,8 +1630,7 @@ void Mle::SendDelayedResponse(TxMessage &aMessage, const DelayedResponseMetadata
|
||||
|
||||
if (aMessage.GetSubType() == Message::kSubTypeMleDataRequest)
|
||||
{
|
||||
SuccessOrExit(error = aMessage.AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = aMessage.AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = aMessage.AppendActiveAndPendingTimestampTlvs());
|
||||
}
|
||||
|
||||
SuccessOrExit(error = aMessage.SendTo(aMetadata.mDestination));
|
||||
@@ -1807,8 +1806,7 @@ Error Mle::SendChildIdRequest(void)
|
||||
}
|
||||
|
||||
SuccessOrExit(error = message->AppendTlvRequestTlv(kTlvs, tlvsLen));
|
||||
SuccessOrExit(error = message->AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendActiveAndPendingTimestampTlvs());
|
||||
|
||||
mParentCandidate.SetState(Neighbor::kStateValid);
|
||||
|
||||
@@ -1878,8 +1876,7 @@ Error Mle::SendDataRequest(const Ip6::Address &aDestination, const uint8_t *aTlv
|
||||
}
|
||||
else
|
||||
{
|
||||
SuccessOrExit(error = message->AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendActiveAndPendingTimestampTlvs());
|
||||
|
||||
SuccessOrExit(error = message->SendTo(aDestination));
|
||||
Log(kMessageSend, kTypeDataRequest, aDestination);
|
||||
@@ -4749,6 +4746,17 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error Mle::TxMessage::AppendActiveAndPendingTimestampTlvs(void)
|
||||
{
|
||||
Error error;
|
||||
|
||||
SuccessOrExit(error = AppendActiveTimestampTlv());
|
||||
error = AppendPendingTimestampTlv();
|
||||
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE
|
||||
Error Mle::TxMessage::AppendCslChannelTlv(void)
|
||||
{
|
||||
|
||||
@@ -1024,6 +1024,7 @@ private:
|
||||
Error AppendXtalAccuracyTlv(void);
|
||||
Error AppendActiveTimestampTlv(void);
|
||||
Error AppendPendingTimestampTlv(void);
|
||||
Error AppendActiveAndPendingTimestampTlvs(void);
|
||||
#if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE
|
||||
Error AppendTimeRequestTlv(void);
|
||||
Error AppendTimeParameterTlv(void);
|
||||
|
||||
@@ -2775,8 +2775,7 @@ Error MleRouter::SendChildIdResponse(Child &aChild)
|
||||
VerifyOrExit((message = NewMleMessage(kCommandChildIdResponse)) != nullptr, error = kErrorNoBufs);
|
||||
SuccessOrExit(error = message->AppendSourceAddressTlv());
|
||||
SuccessOrExit(error = message->AppendLeaderDataTlv());
|
||||
SuccessOrExit(error = message->AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendActiveAndPendingTimestampTlvs());
|
||||
|
||||
if ((aChild.GetRloc16() == 0) || !RouterIdMatch(aChild.GetRloc16(), GetRloc16()))
|
||||
{
|
||||
@@ -2895,8 +2894,7 @@ Error MleRouter::SendChildUpdateRequest(Child &aChild)
|
||||
SuccessOrExit(error = message->AppendSourceAddressTlv());
|
||||
SuccessOrExit(error = message->AppendLeaderDataTlv());
|
||||
SuccessOrExit(error = message->AppendNetworkDataTlv(aChild.GetNetworkDataType()));
|
||||
SuccessOrExit(error = message->AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendActiveAndPendingTimestampTlvs());
|
||||
|
||||
if (!aChild.IsStateValid())
|
||||
{
|
||||
@@ -2999,8 +2997,7 @@ void MleRouter::SendChildUpdateResponse(Child *aChild,
|
||||
|
||||
case Tlv::kNetworkData:
|
||||
SuccessOrExit(error = message->AppendNetworkDataTlv(aChild->GetNetworkDataType()));
|
||||
SuccessOrExit(error = message->AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendActiveAndPendingTimestampTlvs());
|
||||
break;
|
||||
|
||||
case Tlv::kTimeout:
|
||||
@@ -3057,8 +3054,7 @@ void MleRouter::SendDataResponse(const Ip6::Address &aDestination,
|
||||
VerifyOrExit((message = NewMleMessage(kCommandDataResponse)) != nullptr, error = kErrorNoBufs);
|
||||
SuccessOrExit(error = message->AppendSourceAddressTlv());
|
||||
SuccessOrExit(error = message->AppendLeaderDataTlv());
|
||||
SuccessOrExit(error = message->AppendActiveTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendPendingTimestampTlv());
|
||||
SuccessOrExit(error = message->AppendActiveAndPendingTimestampTlvs());
|
||||
|
||||
for (uint8_t tlvType : aTlvList)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user