From 93ef72ad92ecfa843ae1f54de8d6594d23cfd433 Mon Sep 17 00:00:00 2001 From: Yakun Xu Date: Sat, 14 Dec 2024 06:39:21 +0800 Subject: [PATCH] [mle] avoid link dead lock (#11030) The current MLE Link Request handler would result in dead lock if two routers sends Link Request to each other at very close time points, when either node tracks the other node in LinkRequest state, so rejects the request until timeout. This commit changes the handler so that a node will accept the Link Request even if the peer is in LinkRequest state. --- src/core/thread/mle_router.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 922b576c3..f23a41ecd 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -707,7 +707,6 @@ void MleRouter::HandleLinkRequest(RxInfo &aRxInfo) { neighbor = mRouterTable.FindRouterByRloc16(sourceAddress); VerifyOrExit(neighbor != nullptr, error = kErrorParse); - VerifyOrExit(!neighbor->IsStateLinkRequest(), error = kErrorAlready); if (!neighbor->IsStateValid()) {