From 408f3f205fea4b1351c1a2143ef86a8a90469882 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Wed, 3 Jul 2024 11:15:55 -0700 Subject: [PATCH] [mesh-forwarder] add `RxInfo::ToString()` to simplify logging (#10462) This commit adds `RxInfo::ToString()`, which generates a common log string about an `RxInfo` using the "len:%d, src:%s, dst:%s, sec:%s" format, providing frame length, source and destination addresses, and whether link security is used. This is then used in different logging methods, simplifying the code. --- src/core/thread/mesh_forwarder.cpp | 22 ++++++++++++++-------- src/core/thread/mesh_forwarder.hpp | 5 +++++ src/core/thread/mesh_forwarder_ftd.cpp | 5 ++--- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index 3a78da154..f5b1afe56 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -2017,18 +2017,24 @@ void MeshForwarder::LogFragmentFrameDrop(Error aError, const RxInfo &aRxInfo, const Lowpan::FragmentHeader &aFragmentHeader) { - LogNote("Dropping rx frag frame, error:%s, len:%d, src:%s, dst:%s, tag:%d, offset:%d, dglen:%d, sec:%s", - ErrorToString(aError), aRxInfo.mFrameData.GetLength(), aRxInfo.GetSrcAddr().ToString().AsCString(), - aRxInfo.GetDstAddr().ToString().AsCString(), aFragmentHeader.GetDatagramTag(), - aFragmentHeader.GetDatagramOffset(), aFragmentHeader.GetDatagramSize(), - ToYesNo(aRxInfo.IsLinkSecurityEnabled())); + LogNote("Dropping rx frag frame, error:%s, %s, tag:%d, offset:%d, dglen:%d", ErrorToString(aError), + aRxInfo.ToString().AsCString(), aFragmentHeader.GetDatagramTag(), aFragmentHeader.GetDatagramOffset(), + aFragmentHeader.GetDatagramSize()); } void MeshForwarder::LogLowpanHcFrameDrop(Error aError, const RxInfo &aRxInfo) { - LogNote("Dropping rx lowpan HC frame, error:%s, len:%d, src:%s, dst:%s, sec:%s", ErrorToString(aError), - aRxInfo.mFrameData.GetLength(), aRxInfo.GetSrcAddr().ToString().AsCString(), - aRxInfo.GetDstAddr().ToString().AsCString(), ToYesNo(aRxInfo.IsLinkSecurityEnabled())); + LogNote("Dropping rx lowpan HC frame, error:%s, %s", ErrorToString(aError), aRxInfo.ToString().AsCString()); +} + +MeshForwarder::RxInfo::InfoString MeshForwarder::RxInfo::ToString(void) const +{ + InfoString string; + + string.Append("len:%d, src:%s, dst:%s, sec:%s", mFrameData.GetLength(), GetSrcAddr().ToString().AsCString(), + GetDstAddr().ToString().AsCString(), ToYesNo(IsLinkSecurityEnabled())); + + return string; } #else // #if OT_SHOULD_LOG_AT( OT_LOG_LEVEL_NOTE) diff --git a/src/core/thread/mesh_forwarder.hpp b/src/core/thread/mesh_forwarder.hpp index b7d3f7c44..d337dfdb6 100644 --- a/src/core/thread/mesh_forwarder.hpp +++ b/src/core/thread/mesh_forwarder.hpp @@ -413,9 +413,14 @@ private: struct RxInfo { + static constexpr uint16_t kInfoStringSize = 70; + + typedef String InfoString; + const Mac::Address &GetSrcAddr(void) const { return mMacAddrs.mSource; } const Mac::Address &GetDstAddr(void) const { return mMacAddrs.mDestination; } bool IsLinkSecurityEnabled(void) const { return mLinkInfo.IsLinkSecurityEnabled(); } + InfoString ToString(void) const; FrameData mFrameData; ThreadLinkInfo mLinkInfo; diff --git a/src/core/thread/mesh_forwarder_ftd.cpp b/src/core/thread/mesh_forwarder_ftd.cpp index e326fe33e..0d84847d4 100644 --- a/src/core/thread/mesh_forwarder_ftd.cpp +++ b/src/core/thread/mesh_forwarder_ftd.cpp @@ -1000,9 +1000,8 @@ void MeshForwarder::GetForwardFramePriority(RxInfo &aRxInfo, Message::Priority & exit: if (error != kErrorNone) { - LogNote("Failed to get forwarded frame priority, error:%s, len:%d, src:%s, dst:%s", ErrorToString(error), - aRxInfo.mFrameData.GetLength(), aRxInfo.GetSrcAddr().ToString().AsCString(), - aRxInfo.GetDstAddr().ToString().AsCString()); + LogNote("Failed to get forwarded frame priority, error:%s, %s", ErrorToString(error), + aRxInfo.ToString().AsCString()); } else if (isFragment) {