Skip to content

Commit

Permalink
[link-metrics] verify neighbor state when processing messages (#9311)
Browse files Browse the repository at this point in the history
  • Loading branch information
jwhui committed Jul 25, 2023
1 parent 5be432e commit 9b0d3db
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/core/thread/mle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3776,7 +3776,7 @@ void Mle::HandleLinkMetricsManagementRequest(RxInfo &aRxInfo)

Log(kMessageReceive, kTypeLinkMetricsManagementRequest, aRxInfo.mMessageInfo.GetPeerAddr());

VerifyOrExit(aRxInfo.mNeighbor != nullptr, error = kErrorInvalidState);
VerifyOrExit(aRxInfo.IsNeighborStateValid(), error = kErrorInvalidState);

SuccessOrExit(
error = Get<LinkMetrics::Subject>().HandleManagementRequest(aRxInfo.mMessage, *aRxInfo.mNeighbor, status));
Expand All @@ -3798,7 +3798,7 @@ void Mle::HandleLinkMetricsManagementResponse(RxInfo &aRxInfo)

Log(kMessageReceive, kTypeLinkMetricsManagementResponse, aRxInfo.mMessageInfo.GetPeerAddr());

VerifyOrExit(aRxInfo.mNeighbor != nullptr, error = kErrorInvalidState);
VerifyOrExit(aRxInfo.IsNeighborStateValid(), error = kErrorInvalidState);

error =
Get<LinkMetrics::Initiator>().HandleManagementResponse(aRxInfo.mMessage, aRxInfo.mMessageInfo.GetPeerAddr());
Expand All @@ -3818,6 +3818,8 @@ void Mle::HandleLinkProbe(RxInfo &aRxInfo)

Log(kMessageReceive, kTypeLinkProbe, aRxInfo.mMessageInfo.GetPeerAddr());

VerifyOrExit(aRxInfo.IsNeighborStateValid(), error = kErrorInvalidState);

SuccessOrExit(error = Get<LinkMetrics::Subject>().HandleLinkProbe(aRxInfo.mMessage, seriesId));
aRxInfo.mNeighbor->AggregateLinkMetrics(seriesId, LinkMetrics::SeriesInfo::kSeriesTypeLinkProbe,
aRxInfo.mMessage.GetAverageLqi(), aRxInfo.mMessage.GetAverageRss());
Expand Down

0 comments on commit 9b0d3db

Please sign in to comment.