[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:
Abtin Keshavarzian
2024-06-14 09:58:57 -07:00
committed by GitHub
parent 69924eaa78
commit fb24bec873
3 changed files with 15 additions and 6 deletions
+12 -2
View File
@@ -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)
+1
View File
@@ -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);
+2 -4
View File
@@ -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())