diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp index 40ed432c0..af9f8cd9c 100644 --- a/src/core/border_router/routing_manager.cpp +++ b/src/core/border_router/routing_manager.cpp @@ -446,7 +446,6 @@ void RoutingManager::HandleNotifierEvents(Events aEvents) if (mIsRunning && aEvents.Contains(kEventThreadNetdataChanged)) { - Get().HandleNetDataChange(); mOnLinkPrefixManager.HandleNetDataChange(); ScheduleRoutingPolicyEvaluation(kAfterRandomDelay); } diff --git a/src/core/border_router/rx_ra_tracker.cpp b/src/core/border_router/rx_ra_tracker.cpp index 93b84f168..1381fafb4 100644 --- a/src/core/border_router/rx_ra_tracker.cpp +++ b/src/core/border_router/rx_ra_tracker.cpp @@ -502,6 +502,14 @@ exit: return; } +void RxRaTracker::HandleNotifierEvents(Events aEvents) +{ + if (aEvents.Contains(kEventThreadNetdataChanged)) + { + HandleNetDataChange(); + } +} + void RxRaTracker::HandleNetDataChange(void) { NetworkData::Iterator iterator = NetworkData::kIteratorInit; diff --git a/src/core/border_router/rx_ra_tracker.hpp b/src/core/border_router/rx_ra_tracker.hpp index 2c4a23634..9c0e02219 100644 --- a/src/core/border_router/rx_ra_tracker.hpp +++ b/src/core/border_router/rx_ra_tracker.hpp @@ -73,6 +73,7 @@ class NetDataBrTracker; class RxRaTracker : public InstanceLocator { friend class NetDataBrTracker; + friend class ot::Notifier; public: /** @@ -279,7 +280,6 @@ public: // Callbacks notifying of changes void RemoveOrDeprecateOldEntries(TimeMilli aTimeThreshold); void HandleLocalOnLinkPrefixChanged(void); - void HandleNetDataChange(void); private: static constexpr uint32_t kStaleTime = 600; // 10 minutes. @@ -497,6 +497,9 @@ private: #if OPENTHREAD_CONFIG_HISTORY_TRACKER_ENABLE void ReportChangesToHistoryTracker(Router &aRouter, bool aRemoved); #endif + void HandleNotifierEvents(Events aEvents); + void HandleNetDataChange(void); + // Tasklet or timer callbacks void HandleSignalTask(void); void HandleRdnssAddrTask(void); diff --git a/src/core/common/notifier.cpp b/src/core/common/notifier.cpp index 527d648a1..ad09b7793 100644 --- a/src/core/common/notifier.cpp +++ b/src/core/common/notifier.cpp @@ -161,6 +161,7 @@ void Notifier::EmitEvents(void) Get().HandleNotifierEvents(events); #endif #if OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE + Get().HandleNotifierEvents(events); Get().HandleNotifierEvents(events); #if OPENTHREAD_CONFIG_BORDER_ROUTING_TRACK_PEER_BR_INFO_ENABLE Get().HandleNotifierEvents(events);