mirror of
https://github.com/espressif/openthread.git
synced 2026-09-19 07:30:11 +00:00
[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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user