diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index 8d88bca85..06a5263da 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -1923,7 +1923,10 @@ void MeshForwarder::HandleDataRequest(const Mac::Address &aMacSource, const Thre child->mLastHeard = Timer::GetNow(); child->mLinkFailures = 0; - child->mDataRequest = true; + if (!mSrcMatchEnabled || child->mQueuedIndirectMessageCnt > 0) + { + child->mDataRequest = true; + } mScheduleTransmissionTask.Post();