Update route data in a child after parent migration. (#1044)

diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp
index edb6cf4..0ae1fd0 100644
--- a/src/core/thread/mle.cpp
+++ b/src/core/thread/mle.cpp
@@ -2037,6 +2037,7 @@
     Neighbor *neighbor;
     SourceAddressTlv sourceAddress;
     LeaderDataTlv leaderData;
+    RouteTlv route;
     uint8_t tlvs[] = {Tlv::kNetworkData};
 
     // Source Address
@@ -2075,6 +2076,15 @@
              leaderData.GetLeaderRouterId() != GetLeaderId()))
         {
             SetLeaderData(leaderData.GetPartitionId(), leaderData.GetWeighting(), leaderData.GetLeaderRouterId());
+
+            if ((mDeviceMode & ModeTlv::kModeFFD) &&
+                (Tlv::GetTlv(aMessage, Tlv::kRoute, sizeof(route), route) == kThreadError_None) &&
+                route.IsValid())
+            {
+                // Overwrite Route Data
+                mMleRouter.ProcessRouteTlv(route);
+            }
+
             mRetrieveNewNetworkData = true;
         }