From 0139cc4195e77fe15ee5f684745d16aa990d01f6 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Thu, 14 Sep 2017 18:42:24 -0700 Subject: [PATCH] [mesh-forwarder] add logs to indicate when a direct outbound message gets dropped (#2195) --- src/core/thread/mesh_forwarder.cpp | 11 ++++++++--- src/core/thread/mesh_forwarder.hpp | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index deafbc2bf..c164b5da3 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -176,6 +176,7 @@ void MeshForwarder::HandleResolved(const Ip6::Address &aEid, otError aError) } else { + LogIp6Message(kMessageDrop, *cur, NULL, aError); cur->Free(); } } @@ -663,6 +664,7 @@ Message *MeshForwarder::GetDirectTransmission(void) case OT_ERROR_DROP: case OT_ERROR_NO_BUFS: mSendQueue.Dequeue(*curMessage); + LogIp6Message(kMessageDrop, *curMessage, NULL, error); curMessage->Free(); continue; @@ -2194,7 +2196,7 @@ void MeshForwarder::ClearReassemblyList(void) next = message->GetNext(); mReassemblyList.Dequeue(*message); - LogIp6Message(kMessageDrop, *message, NULL, OT_ERROR_NO_FRAME_RECEIVED); + LogIp6Message(kMessageReassemblyDrop, *message, NULL, OT_ERROR_NO_FRAME_RECEIVED); mIpCounters.mRxFailure++; message->Free(); @@ -2224,7 +2226,7 @@ void MeshForwarder::HandleReassemblyTimer(void) { mReassemblyList.Dequeue(*message); - LogIp6Message(kMessageDrop, *message, NULL, OT_ERROR_REASSEMBLY_TIMEOUT); + LogIp6Message(kMessageReassemblyDrop, *message, NULL, OT_ERROR_REASSEMBLY_TIMEOUT); mIpCounters.mRxFailure++; message->Free(); @@ -2429,7 +2431,10 @@ void MeshForwarder::LogIp6Message(MessageAction aAction, const Message &aMessage case kMessageDrop: actionText = "Dropping"; - shouldLogRss = true; + break; + + case kMessageReassemblyDrop: + actionText = "Dropping (reassembly timeout)"; break; default: diff --git a/src/core/thread/mesh_forwarder.hpp b/src/core/thread/mesh_forwarder.hpp index 545fe4acc..0461a27cc 100644 --- a/src/core/thread/mesh_forwarder.hpp +++ b/src/core/thread/mesh_forwarder.hpp @@ -258,7 +258,8 @@ private: kMessageReceive, ///< Indicates that the message was received. kMessageTransmit, ///< Indicates that the message was sent. kMessagePrepareIndirect, ///< Indicates that the message is being prepared for indirect tx. - kMessageDrop, ///< Indicates that the message is being dropped from reassembly list. + kMessageDrop, ///< Indicates that the outbound message is being dropped (e.g., dst unknown). + kMessageReassemblyDrop, ///< Indicates that the message is being dropped from reassembly list. }; otError CheckReachability(uint8_t *aFrame, uint8_t aFrameLength,