diff --git a/src/core/thread/router_table.cpp b/src/core/thread/router_table.cpp index db903279e..722faddb9 100644 --- a/src/core/thread/router_table.cpp +++ b/src/core/thread/router_table.cpp @@ -323,8 +323,11 @@ exit: void RouterTable::RemoveRouterLink(Router &aRouter) { - aRouter.SetLinkQualityOut(kLinkQuality0); - aRouter.SetLastHeard(TimerMilli::GetNow()); + if (aRouter.GetLinkQualityOut() != 0) + { + aRouter.SetLinkQualityOut(kLinkQuality0); + aRouter.SetLastHeard(TimerMilli::GetNow()); + } for (Router *cur = GetFirstEntry(); cur != nullptr; cur = GetNextEntry(cur)) {