mirror of
https://github.com/espressif/openthread.git
synced 2026-09-09 18:50:07 +00:00
[mle] add TxMessage::AppendLinkAndMleFrameCounterTlvs() (#10378)
This commit adds `AppendLinkAndMleFrameCounterTlvs()` to `Mle::TxMessage` for appending both Link and MLE Frame Counter TLVs. This mirrors the existing `RxMessage` method for reading these counters.
This commit is contained in:
+12
-2
@@ -1791,8 +1791,7 @@ Error Mle::SendChildIdRequest(void)
|
||||
|
||||
VerifyOrExit((message = NewMleMessage(kCommandChildIdRequest)) != nullptr, error = kErrorNoBufs);
|
||||
SuccessOrExit(error = message->AppendResponseTlv(mParentCandidate.mRxChallenge));
|
||||
SuccessOrExit(error = message->AppendLinkFrameCounterTlv());
|
||||
SuccessOrExit(error = message->AppendMleFrameCounterTlv());
|
||||
SuccessOrExit(error = message->AppendLinkAndMleFrameCounterTlvs());
|
||||
SuccessOrExit(error = message->AppendModeTlv(mDeviceMode));
|
||||
SuccessOrExit(error = message->AppendTimeoutTlv(mTimeout));
|
||||
SuccessOrExit(error = message->AppendVersionTlv());
|
||||
@@ -4513,6 +4512,17 @@ Error Mle::TxMessage::AppendMleFrameCounterTlv(void)
|
||||
return Tlv::Append<MleFrameCounterTlv>(*this, Get<KeyManager>().GetMleFrameCounter());
|
||||
}
|
||||
|
||||
Error Mle::TxMessage::AppendLinkAndMleFrameCounterTlvs(void)
|
||||
{
|
||||
Error error;
|
||||
|
||||
SuccessOrExit(error = AppendLinkFrameCounterTlv());
|
||||
error = AppendMleFrameCounterTlv();
|
||||
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error Mle::TxMessage::AppendAddress16Tlv(uint16_t aRloc16) { return Tlv::Append<Address16Tlv>(*this, aRloc16); }
|
||||
|
||||
Error Mle::TxMessage::AppendLeaderDataTlv(void)
|
||||
|
||||
@@ -1011,6 +1011,7 @@ private:
|
||||
Error AppendResponseTlv(const RxChallenge &aResponse);
|
||||
Error AppendLinkFrameCounterTlv(void);
|
||||
Error AppendMleFrameCounterTlv(void);
|
||||
Error AppendLinkAndMleFrameCounterTlvs(void);
|
||||
Error AppendAddress16Tlv(uint16_t aRloc16);
|
||||
Error AppendNetworkDataTlv(NetworkData::Type aType);
|
||||
Error AppendTlvRequestTlv(const uint8_t *aTlvs, uint8_t aTlvsLength);
|
||||
|
||||
@@ -786,8 +786,7 @@ Error MleRouter::SendLinkAccept(const RxInfo &aRxInfo,
|
||||
SuccessOrExit(error = message->AppendVersionTlv());
|
||||
SuccessOrExit(error = message->AppendSourceAddressTlv());
|
||||
SuccessOrExit(error = message->AppendResponseTlv(aChallenge));
|
||||
SuccessOrExit(error = message->AppendLinkFrameCounterTlv());
|
||||
SuccessOrExit(error = message->AppendMleFrameCounterTlv());
|
||||
SuccessOrExit(error = message->AppendLinkAndMleFrameCounterTlvs());
|
||||
|
||||
linkMargin = Get<Mac::Mac>().ComputeLinkMargin(aRxInfo.mMessage.GetAverageRss());
|
||||
SuccessOrExit(error = message->AppendLinkMarginTlv(linkMargin));
|
||||
@@ -1698,8 +1697,7 @@ void MleRouter::SendParentResponse(Child *aChild, const RxChallenge &aChallenge,
|
||||
|
||||
SuccessOrExit(error = message->AppendSourceAddressTlv());
|
||||
SuccessOrExit(error = message->AppendLeaderDataTlv());
|
||||
SuccessOrExit(error = message->AppendLinkFrameCounterTlv());
|
||||
SuccessOrExit(error = message->AppendMleFrameCounterTlv());
|
||||
SuccessOrExit(error = message->AppendLinkAndMleFrameCounterTlvs());
|
||||
SuccessOrExit(error = message->AppendResponseTlv(aChallenge));
|
||||
#if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE
|
||||
if (aChild->IsTimeSyncEnabled())
|
||||
|
||||
Reference in New Issue
Block a user