diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index a92c790c1..bac427a95 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -2052,8 +2052,13 @@ Error Mle::SendChildUpdateRequest(ChildUpdateRequestMode aMode) ExitNow(); } - mChildUpdateRequestState = kChildUpdateRequestActive; - ScheduleMessageTransmissionTimer(); + if (aMode != kAppendZeroTimeout) + { + // Enable MLE retransmissions on all Child Update Request + // messages, except when actively detaching. + mChildUpdateRequestState = kChildUpdateRequestActive; + ScheduleMessageTransmissionTimer(); + } VerifyOrExit((message = NewMleMessage(kCommandChildUpdateRequest)) != nullptr, error = kErrorNoBufs); SuccessOrExit(error = message->AppendModeTlv(mDeviceMode));