[link-metrics] verify neighbor state when processing messages (#9311)

This commit is contained in:
Jonathan Hui
2023-07-25 09:13:45 -07:00
committed by GitHub
parent 5be432edeb
commit 9b0d3db228
+4 -2
View File
@@ -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));
@@ -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());
@@ -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());