mirror of
https://github.com/espressif/openthread.git
synced 2026-08-16 07:37:47 +00:00
[link-metrics] verify neighbor state when processing messages (#9311)
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user