mirror of
https://github.com/espressif/openthread.git
synced 2026-10-08 16:57:39 +00:00
Update MLE Data Request and Response messages. (#313)
* Remove Leader Data TLV from TLV Request TLV. * Always add Source Address TLV to Data Response. * Always add Leader Data TLV to Data Response.
This commit is contained in:
@@ -1041,6 +1041,8 @@ ThreadError Mle::SendDataResponse(const Ip6::Address &aDestination, const uint8_
|
|||||||
VerifyOrExit((message = Ip6::Udp::NewMessage(0)) != NULL, ;);
|
VerifyOrExit((message = Ip6::Udp::NewMessage(0)) != NULL, ;);
|
||||||
message->SetLinkSecurityEnabled(false);
|
message->SetLinkSecurityEnabled(false);
|
||||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandDataResponse));
|
SuccessOrExit(error = AppendHeader(*message, Header::kCommandDataResponse));
|
||||||
|
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||||
|
SuccessOrExit(error = AppendLeaderData(*message));
|
||||||
|
|
||||||
neighbor = mMleRouter.GetNeighbor(aDestination);
|
neighbor = mMleRouter.GetNeighbor(aDestination);
|
||||||
|
|
||||||
@@ -1048,10 +1050,6 @@ ThreadError Mle::SendDataResponse(const Ip6::Address &aDestination, const uint8_
|
|||||||
{
|
{
|
||||||
switch (aTlvs[i])
|
switch (aTlvs[i])
|
||||||
{
|
{
|
||||||
case Tlv::kLeaderData:
|
|
||||||
SuccessOrExit(error = AppendLeaderData(*message));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Tlv::kNetworkData:
|
case Tlv::kNetworkData:
|
||||||
stableOnly = neighbor != NULL ? (neighbor->mMode & ModeTlv::kModeFullNetworkData) == 0 : false;
|
stableOnly = neighbor != NULL ? (neighbor->mMode & ModeTlv::kModeFullNetworkData) == 0 : false;
|
||||||
SuccessOrExit(error = AppendNetworkData(*message, stableOnly));
|
SuccessOrExit(error = AppendNetworkData(*message, stableOnly));
|
||||||
@@ -1423,7 +1421,7 @@ ThreadError Mle::HandleAdvertisement(const Message &aMessage, const Ip6::Message
|
|||||||
Neighbor *neighbor;
|
Neighbor *neighbor;
|
||||||
SourceAddressTlv sourceAddress;
|
SourceAddressTlv sourceAddress;
|
||||||
LeaderDataTlv leaderData;
|
LeaderDataTlv leaderData;
|
||||||
uint8_t tlvs[] = {Tlv::kLeaderData, Tlv::kNetworkData};
|
uint8_t tlvs[] = {Tlv::kNetworkData};
|
||||||
|
|
||||||
// Source Address
|
// Source Address
|
||||||
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kSourceAddress, sizeof(sourceAddress), sourceAddress));
|
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kSourceAddress, sizeof(sourceAddress), sourceAddress));
|
||||||
@@ -1803,7 +1801,7 @@ ThreadError Mle::HandleChildUpdateResponse(const Message &aMessage, const Ip6::M
|
|||||||
LeaderDataTlv leaderData;
|
LeaderDataTlv leaderData;
|
||||||
SourceAddressTlv sourceAddress;
|
SourceAddressTlv sourceAddress;
|
||||||
TimeoutTlv timeout;
|
TimeoutTlv timeout;
|
||||||
uint8_t tlvs[] = {Tlv::kLeaderData, Tlv::kNetworkData};
|
uint8_t tlvs[] = {Tlv::kNetworkData};
|
||||||
|
|
||||||
otLogInfoMle("Received Child Update Response\n");
|
otLogInfoMle("Received Child Update Response\n");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user