From 4f5b17ab0bf24a956099697fd0cd62941ab27c30 Mon Sep 17 00:00:00 2001 From: Buke Po Date: Thu, 18 May 2017 20:53:23 -0700 Subject: [PATCH] route cost to self (#1787) --- src/core/thread/network_data_leader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core/thread/network_data_leader.cpp b/src/core/thread/network_data_leader.cpp index b4e4cd2fb..b4373534a 100644 --- a/src/core/thread/network_data_leader.cpp +++ b/src/core/thread/network_data_leader.cpp @@ -386,7 +386,9 @@ ThreadError LeaderBase::DefaultRouteLookup(PrefixTlv &aPrefix, uint16_t *aRloc16 if (route == NULL || entry->GetPreference() > route->GetPreference() || (entry->GetPreference() == route->GetPreference() && - mNetif.GetMle().GetCost(entry->GetRloc()) < mNetif.GetMle().GetCost(route->GetRloc()))) + (entry->GetRloc() == mNetif.GetMle().GetRloc16() || + (route->GetRloc() != mNetif.GetMle().GetRloc16() && + mNetif.GetMle().GetCost(entry->GetRloc()) < mNetif.GetMle().GetCost(route->GetRloc()))))) { route = entry; }