Revert "[weave] Watch fuchsia.lowpan.device for if state"
This reverts commit 693faa80c87c2449505c2b4c3b781371f351f517.
diff --git a/src/connectivity/weave/adaptation/BUILD.gn b/src/connectivity/weave/adaptation/BUILD.gn
index c39c886..eb3e478 100644
--- a/src/connectivity/weave/adaptation/BUILD.gn
+++ b/src/connectivity/weave/adaptation/BUILD.gn
@@ -63,7 +63,6 @@
"//sdk/lib/sys/cpp",
"//sdk/lib/sys/inspect/cpp",
"//sdk/lib/syslog/cpp:backend_legacy",
- "//src/lib/backoff",
"//src/lib/files",
"//src/lib/fsl",
"//src/lib/json_parser",
diff --git a/src/connectivity/weave/adaptation/connectivity_manager_delegate_impl.cpp b/src/connectivity/weave/adaptation/connectivity_manager_delegate_impl.cpp
index e77c65a..9e60f62 100644
--- a/src/connectivity/weave/adaptation/connectivity_manager_delegate_impl.cpp
+++ b/src/connectivity/weave/adaptation/connectivity_manager_delegate_impl.cpp
@@ -317,18 +317,13 @@
[](intptr_t) { Warm::WiFiInterfaceStateChange(Warm::kInterfaceStateUp); }, 0);
}
- // The thread interface ID is recorded, but WARM is explicitly not signaled.
- // This is deferred to the ThreadStackManager, which notifies WARM when the
- // fuchsia.lowpan.device FIDL service reports that a new device was added.
- // This distinction is required as LoWPAN may create a network device and
- // trigger this interface update before it registers the LoWPAN device for
- // it's clients, resulting in an inconsistent state where WARM believes the
- // interface is up, but LoWPAN claims it is unaware of the device.
if (thread_interface_id_ == 0 && properties.has_name() &&
properties.name() == ThreadStackMgrImpl().GetInterfaceName()) {
thread_interface_id_ = properties.id();
FX_LOGS(INFO) << "Identifying interface \"" << properties.name()
<< "\" as the Thread interface.";
+ PlatformMgr().ScheduleWork(
+ [](intptr_t) { Warm::ThreadInterfaceStateChange(Warm::kInterfaceStateUp); }, 0);
}
} else if (event.is_removed()) {
routable_v4_interfaces.erase(event.removed());
@@ -345,9 +340,11 @@
},
reinterpret_cast<intptr_t>(this));
} else if (event.removed() == thread_interface_id_) {
+ FX_LOGS(INFO) << "Thread iface removed, informing WARM of Thread down.";
PlatformMgr().ScheduleWork(
[](intptr_t context) {
auto self = reinterpret_cast<ConnectivityManagerDelegateImpl*>(context);
+ Warm::ThreadInterfaceStateChange(Warm::kInterfaceStateDown);
self->thread_interface_id_ = 0;
},
reinterpret_cast<intptr_t>(this));
@@ -377,8 +374,7 @@
return kThreadMode_NotSupported;
}
- return ((ThreadStackMgrImpl()._IsThreadEnabled()) ? (kThreadMode_Enabled)
- : (kThreadMode_Disabled));
+ return ((ThreadStackMgrImpl()._IsThreadEnabled()) ? (kThreadMode_Enabled) : (kThreadMode_Disabled));
}
} // namespace DeviceLayer
diff --git a/src/connectivity/weave/adaptation/tests/thread_stack_manager_unittests.cpp b/src/connectivity/weave/adaptation/tests/thread_stack_manager_unittests.cpp
index 95c6b92..03859f3 100644
--- a/src/connectivity/weave/adaptation/tests/thread_stack_manager_unittests.cpp
+++ b/src/connectivity/weave/adaptation/tests/thread_stack_manager_unittests.cpp
@@ -22,7 +22,6 @@
#include <Weave/DeviceLayer/internal/WeaveDeviceLayerInternal.h>
#include <Weave/DeviceLayer/internal/DeviceNetworkInfo.h>
#include <Weave/DeviceLayer/ThreadStackManager.h>
-#include <Warm/Warm.h>
#pragma GCC diagnostic pop
// clang-format on
@@ -490,13 +489,6 @@
void GetDevices(GetDevicesCallback callback) override { callback({kFakeInterfaceName}); }
- void WatchDevices(WatchDevicesCallback callback) override {
- if (!watch_devices_once_) {
- callback({.added = {kFakeInterfaceName}});
- watch_devices_once_ = true;
- }
- }
-
void LookupDevice(std::string name, Protocols protocols, LookupDeviceCallback callback) override {
Lookup_LookupDevice_Result result;
if (name != kFakeInterfaceName) {
@@ -530,10 +522,13 @@
}
fidl::InterfaceRequestHandler<Lookup> GetHandler(async_dispatcher_t* dispatcher) {
- return bindings_.GetHandler(this, dispatcher);
+ dispatcher_ = dispatcher;
+ device_.set_dispatcher(dispatcher);
+ return [this](fidl::InterfaceRequest<Lookup> request) {
+ binding_.Bind(std::move(request), dispatcher_);
+ };
}
- void set_dispatcher(async_dispatcher_t* dispatcher) { dispatcher_ = dispatcher; }
FakeLowpanDevice& device() { return device_; }
FakeThreadLegacy& thread_legacy() { return thread_legacy_; }
FakeCounters& counters() { return counters_; }
@@ -542,13 +537,12 @@
FakeLowpanDevice device_;
FakeThreadLegacy thread_legacy_;
FakeCounters counters_;
- bool watch_devices_once_ = false;
fidl::BindingSet<Device> device_bindings_;
fidl::BindingSet<DeviceExtra> device_extra_bindings_;
fidl::BindingSet<LegacyJoining> thread_legacy_bindings_;
fidl::BindingSet<Counters> counters_bindings_;
async_dispatcher_t* dispatcher_;
- fidl::BindingSet<Lookup> bindings_;
+ fidl::Binding<Lookup> binding_{this};
};
class FakeNetRoutes : public fuchsia::net::routes::testing::State_TestBase {
@@ -696,16 +690,6 @@
fake_lookup_.GetHandler(dispatcher()));
context_provider_.service_directory_provider()->AddService(
fake_routes_.GetHandler(dispatcher()));
- fake_lookup_.set_dispatcher(dispatcher());
- fake_lookup_.device().set_dispatcher(dispatcher());
-
- // TODO(fxbug.dev/90188): This test currently depends on WARM, which does
- // not have a delegate interface in openweave-core. As a consequence, while
- // this test does not need WARM, we must still initialize it and ensure that
- // the fabric state is consistent, so that it does not attempt to add
- // addresses during this test. The associated bug tracks the refactor to
- // create that delegate interface and remove this test dependency.
- fabric_state_.FabricId = kFabricIdNotSpecified;
}
void ResetConfigMgr() {
@@ -716,8 +700,6 @@
void SetUp() override {
WeaveTestFixture<>::SetUp();
PlatformMgrImpl().SetComponentContextForProcess(context_provider_.TakeContext());
- PlatformMgrImpl().SetDispatcher(dispatcher());
- Warm::Init(fabric_state_);
RunFixtureLoop();
ResetConfigMgr();
ConfigurationMgr().StorePairingCode(kFakePairingCode, sizeof(kFakePairingCode));
@@ -736,7 +718,6 @@
WeaveTestFixture<>::TearDown();
ThreadStackMgrImpl().SetDelegate(nullptr);
ConfigurationMgrImpl().SetDelegate(nullptr);
- Warm::Shutdown(fabric_state_);
}
protected:
@@ -744,7 +725,6 @@
return *reinterpret_cast<TestConfigurationManager*>(ConfigurationMgrImpl().GetDelegate());
}
- WeaveFabricState fabric_state_;
FakeLowpanLookup fake_lookup_;
FakeNetRoutes fake_routes_;
MockedEventLoggingThreadStackManagerDelegateImpl* tsm_delegate_;
diff --git a/src/connectivity/weave/adaptation/tests/warm_unittests.cpp b/src/connectivity/weave/adaptation/tests/warm_unittests.cpp
index 147d443..46347ee 100644
--- a/src/connectivity/weave/adaptation/tests/warm_unittests.cpp
+++ b/src/connectivity/weave/adaptation/tests/warm_unittests.cpp
@@ -552,6 +552,28 @@
EXPECT_FALSE(fake_lowpan_lookup().device_route().ContainsSubnetForAddress(addr));
}
+TEST_F(WarmTest, AddAddressThreadUnprovisioned) {
+ constexpr char kSubnetIp[] = "2001:0DB8:0042::";
+ constexpr uint8_t kPrefixLength = 48;
+ Inet::IPAddress addr;
+
+ // Fake unprovisioned TSM.
+ thread_delegate().set_is_thread_provisioned(false);
+
+ // Sanity check - no addresses assigned.
+ OwnedInterface& lowpan = GetThreadInterface();
+ EXPECT_EQ(lowpan.ipv6addrs.size(), 0u);
+
+ // Attempt to add the address.
+ ASSERT_TRUE(Inet::IPAddress::FromString(kSubnetIp, addr));
+ auto result = AddRemoveHostAddress(kInterfaceTypeThread, addr, kPrefixLength, /*add*/ true);
+ EXPECT_EQ(result, kPlatformResultFailure);
+
+ // Confirm that nothing was changed.
+ EXPECT_EQ(lowpan.ipv6addrs.size(), 0u);
+ EXPECT_FALSE(fake_lowpan_lookup().device_route().ContainsSubnetForAddress(addr));
+}
+
TEST_F(WarmTest, AddRemoveAddressTunnel) {
constexpr char kSubnetIp[] = "2001:0DB8:0042::";
constexpr uint8_t kPrefixLength = 48;
@@ -613,12 +635,10 @@
OwnedInterface& lowpan = GetThreadInterface();
EXPECT_EQ(lowpan.ipv6addrs.size(), 0u);
- // Attempt to remove the address, expecting success - if the interface isn't
- // available, assume it's removed. WARM may invoke us after the interface is
- // down. This is distinct from the 'add' case, where it represents a failure.
+ // Attempt to remove the address, expecting failure.
ASSERT_TRUE(Inet::IPAddress::FromString(kSubnetIp, addr));
auto result = AddRemoveHostAddress(kInterfaceTypeThread, addr, kPrefixLength, /*add*/ false);
- EXPECT_EQ(result, kPlatformResultSuccess);
+ EXPECT_EQ(result, kPlatformResultFailure);
// Sanity check - still no addresses assigned.
EXPECT_EQ(lowpan.ipv6addrs.size(), 0u);
@@ -634,12 +654,10 @@
OwnedInterface& weave_tun = GetTunnelInterface();
EXPECT_EQ(weave_tun.ipv6addrs.size(), 0u);
- // Attempt to remove the address, expecting success - if the interface isn't
- // available, assume it's removed. WARM may invoke us after the interface is
- // down. This is distinct from the 'add' case, where it represents a failure.
+ // Attempt to remove the address, expecting failure.
ASSERT_TRUE(Inet::IPAddress::FromString(kSubnetIp, addr));
auto result = AddRemoveHostAddress(kInterfaceTypeTunnel, addr, kPrefixLength, /*add*/ false);
- EXPECT_EQ(result, kPlatformResultSuccess);
+ EXPECT_EQ(result, kPlatformResultFailure);
// Sanity check - still no addresses assigned.
EXPECT_EQ(weave_tun.ipv6addrs.size(), 0u);
@@ -654,12 +672,10 @@
OwnedInterface& wlan = GetWiFiInterface();
EXPECT_EQ(wlan.ipv6addrs.size(), 0u);
- // Attempt to remove the address, expecting success - if the interface isn't
- // available, assume it's removed. WARM may invoke us after the interface is
- // down. This is distinct from the 'add' case, where it represents a failure.
+ // Attempt to remove the address, expecting failure.
ASSERT_TRUE(Inet::IPAddress::FromString(kSubnetIp, addr));
auto result = AddRemoveHostAddress(kInterfaceTypeWiFi, addr, kPrefixLength, /*add*/ false);
- EXPECT_EQ(result, kPlatformResultSuccess);
+ EXPECT_EQ(result, kPlatformResultFailure);
// Sanity check - still no addresses assigned.
EXPECT_EQ(wlan.ipv6addrs.size(), 0u);
diff --git a/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.cpp b/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.cpp
index 124a73f..f377af9 100644
--- a/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.cpp
+++ b/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.cpp
@@ -12,7 +12,6 @@
#include <Weave/DeviceLayer/PlatformManager.h>
#include <Weave/DeviceLayer/ThreadStackManager.h>
#include <Weave/Support/TraitEventUtils.h>
-#include <Warm/Warm.h>
// clang-format on
#include "thread_stack_manager_delegate_impl.h"
@@ -96,11 +95,6 @@
// synchronously within the Device Layer, these functions all use SyncPtrs for
// interfacing with the LoWPAN FIDL protocols.
-ThreadStackManagerDelegateImpl::ThreadStackManagerDelegateImpl()
- : lookup_watcher_backoff_(zx::duration(zx_duration_from_sec(5)) /*initial_delay*/,
- 2 /*retry_factor*/,
- zx::duration(zx_duration_from_sec(60)) /*max_delay*/) {}
-
WEAVE_ERROR ThreadStackManagerDelegateImpl::InitThreadStack() {
// See note at top to explain these SyncPtrs.
LookupSyncPtr lookup;
@@ -180,62 +174,13 @@
is_thread_supported_ = true;
- WatchLowpanDeviceChange();
if (!IsThreadProvisioned()) {
return StartThreadJoining();
}
+
return WEAVE_NO_ERROR;
}
-void ThreadStackManagerDelegateImpl::WatchLowpanDeviceChange() {
- auto svc = PlatformMgrImpl().GetComponentContextForProcess()->svc();
- zx_status_t status;
-
- FX_LOGS(INFO) << "Begin watching for LoWPAN device changes.";
- auto restart_callback = [this](zx_status_t error_status) {
- if (error_status != ZX_OK) {
- FX_LOGS(ERROR) << "Disconnected from fuchsia.lowpan.device, reconnecting: "
- << zx_status_get_string(error_status);
- lookup_watcher_delayed_task_.set_handler([this]() { WatchLowpanDeviceChange(); });
- lookup_watcher_delayed_task_.PostDelayed(PlatformMgrImpl().GetDispatcher(),
- lookup_watcher_backoff_.GetNext());
- }
- };
-
- status = svc->Connect(lookup_watcher_.NewRequest());
- if (status != ZX_OK) {
- restart_callback(status);
- return;
- }
-
- lookup_watcher_.set_error_handler(restart_callback);
- lookup_watcher_->WatchDevices(
- fit::bind_member(this, &ThreadStackManagerDelegateImpl::OnLowpanDeviceChange));
-}
-
-void ThreadStackManagerDelegateImpl::OnLowpanDeviceChange(
- fuchsia::lowpan::device::DeviceChanges changes) {
- auto device_added = std::find(changes.added.begin(), changes.added.end(), interface_name_);
- auto device_removed = std::find(changes.removed.begin(), changes.removed.end(), interface_name_);
-
- bool added = device_added != changes.added.end();
- bool removed = device_removed != changes.removed.end();
-
- lookup_watcher_backoff_.Reset();
- if (added) {
- FX_LOGS(INFO) << "LoWPAN device added, notifying WARM.";
- PlatformMgr().ScheduleWork(
- [](intptr_t) { Warm::ThreadInterfaceStateChange(Warm::kInterfaceStateUp); });
- } else if (removed) {
- FX_LOGS(INFO) << "LoWPAN device removed, notifying WARM.";
- PlatformMgr().ScheduleWork(
- [](intptr_t) { Warm::ThreadInterfaceStateChange(Warm::kInterfaceStateDown); });
- }
-
- lookup_watcher_->WatchDevices(
- fit::bind_member(this, &ThreadStackManagerDelegateImpl::OnLowpanDeviceChange));
-}
-
bool ThreadStackManagerDelegateImpl::HaveRouteToAddress(const IPAddress& destAddr) {
fuchsia::net::routes::StateSyncPtr routes;
State_Resolve_Result result;
diff --git a/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.h b/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.h
index fa9675f8..e8c5803 100644
--- a/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.h
+++ b/src/connectivity/weave/adaptation/thread_stack_manager_delegate_impl.h
@@ -18,15 +18,13 @@
#pragma GCC diagnostic pop
// clang-format on
-#include "src/lib/backoff/exponential_backoff.h"
-
namespace nl {
namespace Weave {
namespace DeviceLayer {
class NL_DLL_EXPORT ThreadStackManagerDelegateImpl : public ThreadStackManagerImpl::Delegate {
public:
- ThreadStackManagerDelegateImpl();
+ ThreadStackManagerDelegateImpl() = default;
// ThreadStackManager implementations.
@@ -59,10 +57,6 @@
std::string interface_name_;
bool is_thread_supported_ = false;
- // Handle events from fuchsia.lowpan.device to maintain Thread state.
- void WatchLowpanDeviceChange();
- void OnLowpanDeviceChange(fuchsia::lowpan::device::DeviceChanges changes);
-
zx_status_t GetProtocols(fuchsia::lowpan::device::Protocols protocols);
zx_status_t GetDevice(fuchsia::lowpan::device::DeviceSyncPtr& device);
zx_status_t GetDeviceState(fuchsia::lowpan::device::DeviceState& device_state);
@@ -83,14 +77,9 @@
void HandleProvisioningProgress(
fuchsia::lowpan::device::ProvisioningMonitor_WatchProgress_Result);
- async::TaskClosure lookup_watcher_delayed_task_;
- backoff::ExponentialBackoff lookup_watcher_backoff_;
- fuchsia::lowpan::device::LookupPtr lookup_watcher_;
-
async::TaskClosure joining_timeout_;
async::TaskClosure joining_retry_delay_;
fuchsia::lowpan::device::ProvisioningMonitorPtr provisioning_monitor_;
-
bool joining_in_progress_ = false;
bool joining_timeout_expired_ = false;
};
diff --git a/src/connectivity/weave/adaptation/warm_support.cpp b/src/connectivity/weave/adaptation/warm_support.cpp
index 983f6ea..94d558e 100644
--- a/src/connectivity/weave/adaptation/warm_support.cpp
+++ b/src/connectivity/weave/adaptation/warm_support.cpp
@@ -31,9 +31,6 @@
// Fixed name for tunnel interface.
constexpr char kTunInterfaceName[] = "weav-tun0";
-// Prefix length for Thread addresses.
-constexpr uint8_t kThreadPrefixLength = 64;
-
// Route metric values for primary and backup tunnels. Higher priority tunnels
// have lower metric values so that they are prioritized in the routing table.
constexpr uint32_t kRouteMetric_HighPriority = 0;
@@ -104,12 +101,29 @@
return 0;
}
-// Add or remove an address attached to the Thread or WLAN interfaces.
-PlatformResult AddRemoveAddressInternal(InterfaceType interface_type,
- const Inet::IPAddress &address, uint8_t prefix_length,
- bool add) {
+} // namespace
+
+WEAVE_ERROR Init(WarmFabricStateDelegate *inFabricStateDelegate) { return WEAVE_NO_ERROR; }
+
+NL_DLL_EXPORT
+void CriticalSectionEnter(void) {}
+
+NL_DLL_EXPORT
+void CriticalSectionExit(void) {}
+
+NL_DLL_EXPORT
+void RequestInvokeActions(void) { ::nl::Weave::Warm::InvokeActions(); }
+
+// Add or remove address on tunnel interface.
+PlatformResult AddRemoveHostAddress(InterfaceType interface_type, const Inet::IPAddress &address,
+ uint8_t prefix_length, bool add) {
auto svc = nl::Weave::DeviceLayer::PlatformMgrImpl().GetComponentContextForProcess()->svc();
+ if (interface_type == InterfaceType::kInterfaceTypeThread && !ConnectivityMgrImpl().IsThreadProvisioned()) {
+ FX_LOGS(WARNING) << "Not adding address when Thread is not provisioned.";
+ return kPlatformResultFailure;
+ }
+
// Determine interface name to add/remove from.
std::optional<std::string> interface_name = GetInterfaceName(interface_type);
if (!interface_name) {
@@ -151,17 +165,13 @@
FX_LOGS(ERROR) << "Failed to configure interface address to interface id "
<< interface_id.value() << ": " << zx_status_get_string(status);
return kPlatformResultFailure;
- } else if (result.status == fuchsia::netstack::Status::UNKNOWN_ERROR) {
- FX_LOGS(INFO) << "Interface address already configured on interface id "
- << interface_id.value();
- return kPlatformResultSuccess;
} else if (result.status != fuchsia::netstack::Status::OK) {
FX_LOGS(ERROR) << "Unable to configure interface address to interface id "
<< interface_id.value() << ": " << result.message;
return kPlatformResultFailure;
}
- FX_LOGS(INFO) << (add ? "Added" : "Removed") << " address from interface id "
+ FX_LOGS(INFO) << (add ? "Added" : "Removed") << " host address from interface id "
<< interface_id.value();
// If this is not a Thread interface, adding the host address is sufficient.
@@ -216,8 +226,8 @@
}
// Add or remove route to/from forwarding table.
-PlatformResult AddRemoveRouteInternal(InterfaceType interface_type, const Inet::IPPrefix &prefix,
- RoutePriority priority, bool add) {
+PlatformResult AddRemoveHostRoute(InterfaceType interface_type, const Inet::IPPrefix &prefix,
+ RoutePriority priority, bool add) {
auto svc = nl::Weave::DeviceLayer::PlatformMgrImpl().GetComponentContextForProcess()->svc();
// Determine interface name to add to/remove from.
@@ -295,7 +305,7 @@
return kPlatformResultFailure;
}
- FX_LOGS(INFO) << (add ? "Added" : "Removed") << " route to/from interface id "
+ FX_LOGS(INFO) << (add ? "Added" : "Removed") << " host route to/from interface id "
<< interface_id.value();
#if WARM_CONFIG_SUPPORT_BORDER_ROUTING
@@ -337,55 +347,32 @@
return kPlatformResultSuccess;
}
-} // namespace
-
-WEAVE_ERROR Init(WarmFabricStateDelegate *inFabricStateDelegate) { return WEAVE_NO_ERROR; }
-
-NL_DLL_EXPORT
-void CriticalSectionEnter(void) {}
-
-NL_DLL_EXPORT
-void CriticalSectionExit(void) {}
-
-// Add or remove a host address attached to the Thread or WLAN interfaces.
-PlatformResult AddRemoveHostAddress(InterfaceType interface_type, const Inet::IPAddress &address,
- uint8_t prefix_length, bool add) {
- return AddRemoveAddressInternal(interface_type, address, prefix_length, add);
-}
-
-// Add or remove a host route attached to the Thread or WLAN interfaces.
-PlatformResult AddRemoveHostRoute(InterfaceType interface_type, const Inet::IPPrefix &prefix,
- RoutePriority priority, bool add) {
- return AddRemoveRouteInternal(interface_type, prefix, priority, add);
-}
-
-NL_DLL_EXPORT
-void RequestInvokeActions(void) { ::nl::Weave::Warm::InvokeActions(); }
-
#if WARM_CONFIG_SUPPORT_THREAD
-PlatformResult AddRemoveThreadAddress(InterfaceType interface_type, const Inet::IPAddress &address,
- bool add) {
- return AddRemoveAddressInternal(interface_type, address, kThreadPrefixLength, add);
+PlatformResult AddRemoveThreadAddress(InterfaceType inInterfaceType,
+ const Inet::IPAddress &inAddress, bool inAdd) {
+ // This will be handled during the subsequent AddRemoveHostAddress from WARM.
+ return kPlatformResultSuccess;
}
#endif // WARM_CONFIG_SUPPORT_THREAD
#if WARM_CONFIG_SUPPORT_THREAD_ROUTING
-PlatformResult StartStopThreadAdvertisement(InterfaceType interface_type,
- const Inet::IPPrefix &prefix, bool start) {
+PlatformResult StartStopThreadAdvertisement(InterfaceType inInterfaceType,
+ const Inet::IPPrefix &inPrefix, bool inStart) {
// This is handled by the LoWPAN service, nothing to do here.
return kPlatformResultSuccess;
}
#endif // WARM_CONFIG_SUPPORT_THREAD_ROUTING
#if WARM_CONFIG_SUPPORT_BORDER_ROUTING
-PlatformResult AddRemoveThreadRoute(InterfaceType interface_type, const Inet::IPPrefix &prefix,
- RoutePriority priority, bool add) {
- return AddRemoveRouteInternal(interface_type, prefix, priority, add);
+PlatformResult AddRemoveThreadRoute(InterfaceType inInterfaceType, const Inet::IPPrefix &inPrefix,
+ RoutePriority inPriority, bool inAdd) {
+ // This will be handled during the subsequent AddRemoveHostAddress from WARM.
+ return kPlatformResultSuccess;
}
-PlatformResult SetThreadRoutePriority(InterfaceType interface_type, const Inet::IPPrefix &prefix,
- RoutePriority priority) {
- // This will be handled during the AddRemoveThreadRoute from WARM.
+PlatformResult SetThreadRoutePriority(InterfaceType inInterfaceType, const Inet::IPPrefix &inPrefix,
+ RoutePriority inPriority) {
+ // This will be handled during the subsequent AddRemoveHostAddress from WARM.
return kPlatformResultSuccess;
}
#endif // WARM_CONFIG_SUPPORT_BORDER_ROUTING