diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp index 31b12546a..f8e3d16e1 100644 --- a/src/core/border_router/routing_manager.cpp +++ b/src/core/border_router/routing_manager.cpp @@ -363,7 +363,7 @@ void RoutingManager::HandleReceived(const InfraIf::Icmp6Packet &aPacket, const I HandleRouterSolicit(aPacket, aSrcAddress); break; case Ip6::Icmp::Header::kTypeNeighborAdvert: - HandleNeighborAdvertisement(aPacket, aSrcAddress); + HandleNeighborAdvertisement(aPacket); break; default: break; @@ -943,14 +943,14 @@ void RoutingManager::HandleRouterSolicit(const InfraIf::Icmp6Packet &aPacket, co ScheduleRoutingPolicyEvaluation(kToReplyToRs); } -void RoutingManager::HandleNeighborAdvertisement(const InfraIf::Icmp6Packet &aPacket, const Ip6::Address &aSrcAddress) +void RoutingManager::HandleNeighborAdvertisement(const InfraIf::Icmp6Packet &aPacket) { const Ip6::Nd::NeighborAdvertMessage *naMsg; VerifyOrExit(aPacket.GetLength() >= sizeof(naMsg)); naMsg = reinterpret_cast(aPacket.GetBytes()); - mDiscoveredPrefixTable.ProcessNeighborAdvertMessage(*naMsg, aSrcAddress); + mDiscoveredPrefixTable.ProcessNeighborAdvertMessage(*naMsg); exit: return; @@ -1715,14 +1715,14 @@ void RoutingManager::DiscoveredPrefixTable::RemoveExpiredEntries(void) void RoutingManager::DiscoveredPrefixTable::SignalTableChanged(void) { mSignalTask.Post(); } void RoutingManager::DiscoveredPrefixTable::ProcessNeighborAdvertMessage( - const Ip6::Nd::NeighborAdvertMessage &aNaMessage, - const Ip6::Address &aSrcAddress) + const Ip6::Nd::NeighborAdvertMessage &aNaMessage) { - Router *router = mRouters.FindMatching(aSrcAddress); + Router *router; - VerifyOrExit(router != nullptr); VerifyOrExit(aNaMessage.IsValid()); - VerifyOrExit(aNaMessage.GetTargetAddress() == router->mAddress); + + router = mRouters.FindMatching(aNaMessage.GetTargetAddress()); + VerifyOrExit(router != nullptr); LogInfo("Received NA from router %s", router->mAddress.ToString().AsCString()); diff --git a/src/core/border_router/routing_manager.hpp b/src/core/border_router/routing_manager.hpp index a8b39d615..19e057d75 100644 --- a/src/core/border_router/routing_manager.hpp +++ b/src/core/border_router/routing_manager.hpp @@ -462,8 +462,7 @@ private: void ProcessRouterAdvertMessage(const Ip6::Nd::RouterAdvertMessage &aRaMessage, const Ip6::Address &aSrcAddress); - void ProcessNeighborAdvertMessage(const Ip6::Nd::NeighborAdvertMessage &aNaMessage, - const Ip6::Address &aSrcAddress); + void ProcessNeighborAdvertMessage(const Ip6::Nd::NeighborAdvertMessage &aNaMessage); void SetAllowDefaultRouteInNetData(bool aAllow); @@ -868,7 +867,7 @@ private: void HandleRouterAdvertisement(const InfraIf::Icmp6Packet &aPacket, const Ip6::Address &aSrcAddress); void HandleRouterSolicit(const InfraIf::Icmp6Packet &aPacket, const Ip6::Address &aSrcAddress); - void HandleNeighborAdvertisement(const InfraIf::Icmp6Packet &aPacket, const Ip6::Address &aSrcAddress); + void HandleNeighborAdvertisement(const InfraIf::Icmp6Packet &aPacket); bool ShouldProcessPrefixInfoOption(const Ip6::Nd::PrefixInfoOption &aPio, const Ip6::Prefix &aPrefix); bool ShouldProcessRouteInfoOption(const Ip6::Nd::RouteInfoOption &aRio, const Ip6::Prefix &aPrefix); void UpdateDiscoveredPrefixTableOnNetDataChange(void);