diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 484c0b1c0..504bb3810 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -442,7 +442,6 @@ otError MleRouter::SetStateRouter(uint16_t aRloc16) mRouters[mRouterId].SetNextHop(mRouterId); mPreviousPartitionId = mLeaderData.GetPartitionId(); netif.GetNetworkDataLeader().Stop(); - mStateUpdateTimer.Start(kStateUpdatePeriod); netif.GetIp6().SetForwardingEnabled(true); netif.GetIp6().GetMpl().SetTimerExpirations(kMplRouterDataMessageTimerExpirations); netif.GetMac().SetBeaconEnabled(true); @@ -1792,6 +1791,8 @@ void MleRouter::HandleStateUpdateTimer(void) { bool routerStateUpdate = false; + mStateUpdateTimer.Start(kStateUpdatePeriod); + if (mChallengeTimeout > 0) { mChallengeTimeout--; @@ -1986,8 +1987,6 @@ void MleRouter::HandleStateUpdateTimer(void) SynchronizeChildNetworkData(); - mStateUpdateTimer.Start(kStateUpdatePeriod); - exit: return; }