[network-data] retrieve network data when restoring as leader (#3354)

The leader does not maintain network data in non-volatile memeory. As a
result, it is necessary for a recently-restored leader to obtain network
data from a neighboring device.
This commit is contained in:
Jonathan Hui
2018-12-06 08:49:17 -08:00
committed by GitHub
parent 6023df3a3f
commit 545ccd8dc8
2 changed files with 5 additions and 2 deletions
+2
View File
@@ -1255,6 +1255,8 @@ otError Mle::AppendNetworkData(Message &aMessage, bool aStableOnly)
otError error = OT_ERROR_NONE;
NetworkDataTlv tlv;
VerifyOrExit(!mRetrieveNewNetworkData, error = OT_ERROR_INVALID_STATE);
tlv.Init();
FillNetworkDataTlv(tlv, aStableOnly);
+3 -2
View File
@@ -936,10 +936,11 @@ otError MleRouter::HandleLinkAccept(const Message & aMessage,
else
{
SetStateRouter(GetRloc16());
mRetrieveNewNetworkData = true;
SendDataRequest(aMessageInfo.GetPeerAddr(), dataRequestTlvs, sizeof(dataRequestTlvs), 0);
}
mRetrieveNewNetworkData = true;
SendDataRequest(aMessageInfo.GetPeerAddr(), dataRequestTlvs, sizeof(dataRequestTlvs), 0);
#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
GetNetif().GetTimeSync().HandleTimeSyncMessage(aMessage);
#endif