int thread_br_get_preference(thread_route_info_h route,
int8_t *preference);
+/**
+ * @ingroup CAPI_NETWORK_THREAD_BORDERROUTER_MODULE
+ * @brief Get stable for route
+ * @since_tizen 7.0
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #THREAD_ERROR_NONE Successful
+ * @retval #THREAD_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #THREAD_ERROR_OPERATION_FAILED Operation failed
+ * @retval #THREAD_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre thread API must be initialized with thread_initialize().
+ *
+ * @see thread_external_route_foreach_cb()
+ */
+int thread_br_get_stable(thread_route_info_h route,
+ bool *is_stable);
+
/**
* @ingroup CAPI_NETWORK_THREAD_BORDERROUTER_MODULE
* @brief Add an external border routing rule to the network.
return THREAD_ERROR_NONE;
}
+int thread_br_get_stable(thread_route_info_h route,
+ bool *is_stable)
+{
+ FUNC_ENTRY;
+ THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON);
+ THREAD_CHECK_INIT_STATUS();
+ THREAD_VALIDATE_INPUT_PARAMETER(route);
+ THREAD_VALIDATE_INPUT_PARAMETER(is_stable);
+
+ thread_route_info_s *route_info = (thread_route_info_s*)route;
+ *is_stable = route_info->is_stable;
+
+ FUNC_EXIT;
+ return THREAD_ERROR_NONE;
+}
+
int thread_br_add_external_route(thread_instance_h instance,
const uint8_t *ipv6_prefix, uint8_t ipv6_prefix_len,
uint16_t rloc16, int8_t preference,
kIpv6Prefix,
kRloc16,
kPreference,
+ kStable,
};
uint8_t ipv6Prefix[THREAD_IPV6_PREFIX_SIZE];
EXPECT_EQ(THREAD_ERROR_NONE, thread_br_get_preference(route_info, &preference));
}
break;
+ case RouteInfo::kStable:
+ {
+ bool isStable;
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_br_get_stable(route_info, &isStable));
+ }
+ break;
default:
break;
}
GUINT_TO_POINTER(static_cast<guint>(RouteInfo::kPreference))));
}
+TEST_F(ThreadBRTest, BRGetStableErrorNone)
+{
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_br_enable(instance));
+ EXPECT_EQ(THREAD_ERROR_NONE,
+ thread_br_get_external_routes(instance, GetExternalRoutesCallback,
+ GUINT_TO_POINTER(static_cast<guint>(RouteInfo::kStable))));
+}
+
TEST_F(ThreadBRTest, BRAddExternalRouteNotInitialized)
{
EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());