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++;