diff --git a/include/openthread/thread.h b/include/openthread/thread.h index 4a97b5b7a..396d02245 100644 --- a/include/openthread/thread.h +++ b/include/openthread/thread.h @@ -85,9 +85,6 @@ typedef struct otLinkModeConfig /** * This structure holds diagnostic information for a neighboring Thread node * - * `mFrameErrorRate` and `mMessageErrorRate` require `OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING` feature to be - * enabled. - * */ typedef struct { diff --git a/include/openthread/thread_ftd.h b/include/openthread/thread_ftd.h index a64e2228e..3a59fe555 100644 --- a/include/openthread/thread_ftd.h +++ b/include/openthread/thread_ftd.h @@ -53,9 +53,6 @@ extern "C" { /** * This structure holds diagnostic information for a Thread Child * - * `mFrameErrorRate` and `mMessageErrorRate` require `OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING` feature to be - * enabled. - * */ typedef struct { diff --git a/src/core/config/link_quality.h b/src/core/config/link_quality.h index c5f2bc443..f85c1a149 100644 --- a/src/core/config/link_quality.h +++ b/src/core/config/link_quality.h @@ -48,24 +48,9 @@ #define OPENTHREAD_CONFIG_CCA_FAILURE_RATE_AVERAGING_WINDOW 512 #endif -/** - * @def OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - * - * Define as 1 to enable transmission error rate tracking (for both MAC frames and IPv6 messages). - * - * When enabled, OpenThread will track average error rate of MAC frame transmissions and IPv6 message error rate for - * every neighbor. - * - */ -#ifndef OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING -#define OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING 1 -#endif - /** * @def OPENTHREAD_CONFIG_FRAME_TX_ERR_RATE_AVERAGING_WINDOW * - * Applicable only if error rate tracking is enabled (i.e., `OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING` is set). - * * OpenThread's MAC implementation maintains the average error rate of MAC frame transmissions per neighbor. This * parameter specifies the window (in terms of number of frames/sample) over which the average error rate is maintained. * Practically, the average value can be considered as the percentage of failed (no ack) MAC frame transmissions over @@ -79,8 +64,6 @@ /** * @def OPENTHREAD_CONFIG_IPV6_TX_ERR_RATE_AVERAGING_WINDOW * - * Applicable only if error rate tracking is enabled (i.e., `OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING` is set). - * * OpenThread maintains the average error rate of IPv6 messages per neighbor. This parameter specifies the * window (in terms of number of messages) over which the average error rate is maintained. Practically, the average * value can be considered as the percentage of failed (no ack) messages over (approximately) last AVERAGING_WINDOW diff --git a/src/core/config/openthread-core-config-check.h b/src/core/config/openthread-core-config-check.h index 176fca992..1a0f189d2 100644 --- a/src/core/config/openthread-core-config-check.h +++ b/src/core/config/openthread-core-config-check.h @@ -451,4 +451,8 @@ "OPENTHREAD_CONFIG_MAC_MAX_FRAME_RETRIES_INDIRECT was replaced by OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT." #endif +#ifdef OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING +#error "OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING was removed." +#endif + #endif // OPENTHREAD_CORE_CONFIG_CHECK_H_ diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index 731be96cb..b8392905e 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -1101,8 +1101,6 @@ void Mac::RecordFrameTransmitStatus(const TxFrame &aFrame, aFrame.GetDstAddr(dstAddr); neighbor = Get().GetNeighbor(dstAddr); -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - // Record frame transmission success/failure state (for a neighbor). if ((neighbor != NULL) && ackRequested) @@ -1129,8 +1127,6 @@ void Mac::RecordFrameTransmitStatus(const TxFrame &aFrame, } } -#endif // OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - // Log frame transmission failure. if (aError != OT_ERROR_NONE) diff --git a/src/core/thread/link_quality.cpp b/src/core/thread/link_quality.cpp index c615b2c8c..bec2727c5 100644 --- a/src/core/thread/link_quality.cpp +++ b/src/core/thread/link_quality.cpp @@ -146,10 +146,8 @@ void LinkQualityInfo::Clear(void) SetLinkQuality(0); mLastRss = OT_RADIO_RSSI_INVALID; -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING mFrameErrorRate.Reset(); mMessageErrorRate.Reset(); -#endif } void LinkQualityInfo::AddRss(int8_t aNoiseFloor, int8_t aRss) diff --git a/src/core/thread/link_quality.hpp b/src/core/thread/link_quality.hpp index d40cff03a..7cb939508 100644 --- a/src/core/thread/link_quality.hpp +++ b/src/core/thread/link_quality.hpp @@ -306,8 +306,6 @@ public: */ int8_t GetLastRss(void) const { return mLastRss; } -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - /** * This method adds a MAC frame transmission status (success/failure) and updates the frame tx error rate. * @@ -358,8 +356,6 @@ public: */ uint16_t GetMessageErrorRate(void) const { return mMessageErrorRate.GetFailureRate(); } -#endif // OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - /** * This method converts a received signal strength value to a link margin value. * @@ -436,10 +432,9 @@ private: RssAverager mRssAverager; uint8_t mLinkQuality; int8_t mLastRss; -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING + SuccessRateTracker mFrameErrorRate; SuccessRateTracker mMessageErrorRate; -#endif }; /** diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index c4dca1732..125fcf680 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -3660,17 +3660,13 @@ otError MleRouter::GetChildInfo(Child &aChild, otChildInfo &aChildInfo) aChildInfo.mLinkQualityIn = aChild.GetLinkInfo().GetLinkQuality(); aChildInfo.mAverageRssi = aChild.GetLinkInfo().GetAverageRss(); aChildInfo.mLastRssi = aChild.GetLinkInfo().GetLastRss(); - -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - aChildInfo.mFrameErrorRate = aChild.GetLinkInfo().GetFrameErrorRate(); - aChildInfo.mMessageErrorRate = aChild.GetLinkInfo().GetMessageErrorRate(); -#endif - - aChildInfo.mRxOnWhenIdle = aChild.IsRxOnWhenIdle(); - aChildInfo.mSecureDataRequest = aChild.IsSecureDataRequest(); - aChildInfo.mFullThreadDevice = aChild.IsFullThreadDevice(); - aChildInfo.mFullNetworkData = aChild.IsFullNetworkData(); - aChildInfo.mIsStateRestoring = aChild.IsStateRestoring(); + aChildInfo.mFrameErrorRate = aChild.GetLinkInfo().GetFrameErrorRate(); + aChildInfo.mMessageErrorRate = aChild.GetLinkInfo().GetMessageErrorRate(); + aChildInfo.mRxOnWhenIdle = aChild.IsRxOnWhenIdle(); + aChildInfo.mSecureDataRequest = aChild.IsSecureDataRequest(); + aChildInfo.mFullThreadDevice = aChild.IsFullThreadDevice(); + aChildInfo.mFullNetworkData = aChild.IsFullNetworkData(); + aChildInfo.mIsStateRestoring = aChild.IsStateRestoring(); exit: return error; @@ -3678,18 +3674,16 @@ exit: void MleRouter::GetNeighborInfo(Neighbor &aNeighbor, otNeighborInfo &aNeighInfo) { - aNeighInfo.mExtAddress = aNeighbor.GetExtAddress(); - aNeighInfo.mAge = Time::MsecToSec(TimerMilli::GetNow() - aNeighbor.GetLastHeard()); - aNeighInfo.mRloc16 = aNeighbor.GetRloc16(); - aNeighInfo.mLinkFrameCounter = aNeighbor.GetLinkFrameCounter(); - aNeighInfo.mMleFrameCounter = aNeighbor.GetMleFrameCounter(); - aNeighInfo.mLinkQualityIn = aNeighbor.GetLinkInfo().GetLinkQuality(); - aNeighInfo.mAverageRssi = aNeighbor.GetLinkInfo().GetAverageRss(); - aNeighInfo.mLastRssi = aNeighbor.GetLinkInfo().GetLastRss(); -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - aNeighInfo.mFrameErrorRate = aNeighbor.GetLinkInfo().GetFrameErrorRate(); - aNeighInfo.mMessageErrorRate = aNeighbor.GetLinkInfo().GetMessageErrorRate(); -#endif + aNeighInfo.mExtAddress = aNeighbor.GetExtAddress(); + aNeighInfo.mAge = Time::MsecToSec(TimerMilli::GetNow() - aNeighbor.GetLastHeard()); + aNeighInfo.mRloc16 = aNeighbor.GetRloc16(); + aNeighInfo.mLinkFrameCounter = aNeighbor.GetLinkFrameCounter(); + aNeighInfo.mMleFrameCounter = aNeighbor.GetMleFrameCounter(); + aNeighInfo.mLinkQualityIn = aNeighbor.GetLinkInfo().GetLinkQuality(); + aNeighInfo.mAverageRssi = aNeighbor.GetLinkInfo().GetAverageRss(); + aNeighInfo.mLastRssi = aNeighbor.GetLinkInfo().GetLastRss(); + aNeighInfo.mFrameErrorRate = aNeighbor.GetLinkInfo().GetFrameErrorRate(); + aNeighInfo.mMessageErrorRate = aNeighbor.GetLinkInfo().GetMessageErrorRate(); aNeighInfo.mRxOnWhenIdle = aNeighbor.IsRxOnWhenIdle(); aNeighInfo.mSecureDataRequest = aNeighbor.IsSecureDataRequest(); aNeighInfo.mFullThreadDevice = aNeighbor.IsFullThreadDevice(); diff --git a/src/ncp/ncp_base.cpp b/src/ncp/ncp_base.cpp index 11bbe5179..45235e4e4 100644 --- a/src/ncp/ncp_base.cpp +++ b/src/ncp/ncp_base.cpp @@ -1809,9 +1809,7 @@ template <> otError NcpBase::HandlePropertyGet(void) SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_TIME_SYNC)); #endif -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_ERROR_RATE_TRACKING)); -#endif #if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_OOB_STEERING_DATA)); diff --git a/src/ncp/ncp_base_dispatcher.cpp b/src/ncp/ncp_base_dispatcher.cpp index 2bb631a6c..82fa16f74 100644 --- a/src/ncp/ncp_base_dispatcher.cpp +++ b/src/ncp/ncp_base_dispatcher.cpp @@ -298,10 +298,8 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) #if OPENTHREAD_FTD {SPINEL_PROP_THREAD_CHILD_TABLE_ADDRESSES, &NcpBase::HandlePropertyGet}, #endif -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING {SPINEL_PROP_THREAD_NEIGHBOR_TABLE_ERROR_RATES, &NcpBase::HandlePropertyGet}, -#endif #if OPENTHREAD_FTD {SPINEL_PROP_THREAD_ADDRESS_CACHE_TABLE, &NcpBase::HandlePropertyGet}, {SPINEL_PROP_THREAD_NEW_DATASET, &NcpBase::HandlePropertyGet}, diff --git a/src/ncp/ncp_base_mtd.cpp b/src/ncp/ncp_base_mtd.cpp index af5bea159..e57ed2f02 100644 --- a/src/ncp/ncp_base_mtd.cpp +++ b/src/ncp/ncp_base_mtd.cpp @@ -610,8 +610,6 @@ exit: return error; } -#if OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - template <> otError NcpBase::HandlePropertyGet(void) { otError error = OT_ERROR_NONE; @@ -636,8 +634,6 @@ exit: return error; } -#endif // OPENTHREAD_CONFIG_ENABLE_TX_ERROR_RATE_TRACKING - template <> otError NcpBase::HandlePropertyGet(void) { otError error = OT_ERROR_NONE;