diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index 4e39c73be..152ad2a67 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -361,11 +361,11 @@ Error MeshForwarder::UpdateIp6Route(Message &aMessage) if (ip6Header.GetDestination().IsMulticast()) { - // With the exception of MLE multicasts, an End Device - // transmits multicasts, as IEEE 802.15.4 unicasts to its - // parent. + // With the exception of MLE multicasts and any other message + // with link security disabled, an End Device transmits + // multicasts, as IEEE 802.15.4 unicasts to its parent. - if (mle.IsChild() && !aMessage.IsSubTypeMle()) + if (mle.IsChild() && aMessage.IsLinkSecurityEnabled()) { mMacDest.SetShort(mle.GetNextHop(Mac::kShortAddrBroadcast)); }