Stop responding to Address Queries after consecutive tx failures to child. (#757)

- Reset consecutive failure count on receiving a 15.4 Data Request message.
This commit is contained in:
Jonathan Hui
2016-10-06 12:28:44 -07:00
committed by GitHub
parent f409bfce85
commit 20d76a805d
3 changed files with 5 additions and 1 deletions
+3 -1
View File
@@ -543,7 +543,9 @@ void AddressResolver::HandleAddressQuery(Coap::Header &aHeader, Message &aMessag
for (int i = 0; i < numChildren; i++)
{
if (children[i].mState != Neighbor::kStateValid || (children[i].mMode & Mle::ModeTlv::kModeFFD) != 0)
if (children[i].mState != Neighbor::kStateValid ||
(children[i].mMode & Mle::ModeTlv::kModeFFD) != 0 ||
children[i].mLinkFailures >= Mle::kFailedChildTransmissions)
{
continue;
}
+1
View File
@@ -1693,6 +1693,7 @@ void MeshForwarder::HandleDataRequest(const Mac::Address &aMacSource, const Thre
VerifyOrExit((child = mMle.GetChild(aMacSource)) != NULL, ;);
child->mLastHeard = Timer::GetNow();
child->mLinkFailures = 0;
mMle.HandleMacDataRequest(*child);
+1
View File
@@ -46,6 +46,7 @@ enum
{
kMaxChildren = OPENTHREAD_CONFIG_MAX_CHILDREN,
kMaxChildKeepAliveAttempts = 4, ///< Maximum keep alive attempts before attempting to reattach to a new Parent
kFailedChildTransmissions = 4, ///< FAILED_CHILD_TRANSMISSIONS
};
/**