From 19e18753c1ca97ffc68566f4852444f341e0319c Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Thu, 22 Dec 2022 19:23:51 -0800 Subject: [PATCH] [routing-manager] add feature to skip NS probe with router on same device (#8563) This commit adds a new behavior in `RoutingManager` to skip performing NS probe with a router with an address belonging to device infra interface itself. This addresses the situation where platform may not be be able to receive and pass the NA message responses from device itself. --- src/core/border_router/routing_manager.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp index e94d42a10..31b12546a 100644 --- a/src/core/border_router/routing_manager.cpp +++ b/src/core/border_router/routing_manager.cpp @@ -1752,6 +1752,18 @@ void RoutingManager::DiscoveredPrefixTable::HandleRouterTimer(void) continue; } + // If the `router` emitting RA has an address belonging to + // infra interface, it indicates that the RAs are from + // same device. In this case we skip performing NS probes. + // This addresses situation where platform may not be + // be able to receive and pass the NA message response + // from device itself. + + if (Get().mInfraIf.HasAddress(router.mAddress)) + { + continue; + } + if (router.mTimeout <= now) { router.mNsProbeCount++;