mirror of
https://github.com/espressif/openthread.git
synced 2026-10-10 01:37:38 +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;
|
otError error = OT_ERROR_NONE;
|
||||||
NetworkDataTlv tlv;
|
NetworkDataTlv tlv;
|
||||||
|
|
||||||
|
VerifyOrExit(!mRetrieveNewNetworkData, error = OT_ERROR_INVALID_STATE);
|
||||||
|
|
||||||
tlv.Init();
|
tlv.Init();
|
||||||
FillNetworkDataTlv(tlv, aStableOnly);
|
FillNetworkDataTlv(tlv, aStableOnly);
|
||||||
|
|
||||||
|
|||||||
@@ -936,10 +936,11 @@ otError MleRouter::HandleLinkAccept(const Message & aMessage,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetStateRouter(GetRloc16());
|
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
|
#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
|
||||||
GetNetif().GetTimeSync().HandleTimeSyncMessage(aMessage);
|
GetNetif().GetTimeSync().HandleTimeSyncMessage(aMessage);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user