From: hyunuk.tak Date: Wed, 15 Jun 2022 00:06:09 +0000 (+0900) Subject: Add new CAPIs and unittest to set/get dhcp for onmesh X-Git-Tag: accepted/tizen/unified/20220914.164046~16 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=92b9f46fe13fe9fa3ada8cd8d4e19ed3c2eada2a;p=platform%2Fcore%2Fapi%2Fthread.git Add new CAPIs and unittest to set/get dhcp for onmesh Change-Id: Ib9c9f09fd3e4cea2377284075b01ee598522fa1b Signed-off-by: hyunuk.tak --- diff --git a/include/thread.h b/include/thread.h index 20bcf9a..2949a0e 100644 --- a/include/thread.h +++ b/include/thread.h @@ -789,6 +789,44 @@ int thread_onmesh_prefix_get_slaac(thread_onmesh_prefix_info_h onmesh_prefix, /** * @ingroup CAPI_NETWORK_THREAD_BORDERROUTER_MODULE + * @brief Set dhcp to on-mesh prefix info + * @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_onmesh_prefix_create() + * @see thread_onmesh_prefix_destroy() + */ +int thread_onmesh_prefix_set_dhcp(thread_onmesh_prefix_info_h onmesh_prefix, + bool dhcp); + +/** + * @ingroup CAPI_NETWORK_THREAD_BORDERROUTER_MODULE + * @brief Get dhcp to on-mesh prefix info + * @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_onmesh_prefix_create() + * @see thread_onmesh_prefix_destroy() + */ +int thread_onmesh_prefix_get_dhcp(thread_onmesh_prefix_info_h onmesh_prefix, + bool *dhcp); + +/** + * @ingroup CAPI_NETWORK_THREAD_BORDERROUTER_MODULE * @brief Add an on-mesh prefix to the network * @since_tizen 7.0 * diff --git a/src/thread-br.c b/src/thread-br.c index fe341e7..eda713e 100644 --- a/src/thread-br.c +++ b/src/thread-br.c @@ -630,6 +630,38 @@ int thread_onmesh_prefix_get_slaac(thread_onmesh_prefix_info_h onmesh_prefix, return THREAD_ERROR_NONE; } +int thread_onmesh_prefix_set_dhcp(thread_onmesh_prefix_info_h onmesh_prefix, + bool dhcp) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(onmesh_prefix); + + thread_onmesh_prefix_info_s *onmesh_prefix_info = + (thread_onmesh_prefix_info_s *)onmesh_prefix; + onmesh_prefix_info->dhcp = dhcp; + + FUNC_EXIT; + return THREAD_ERROR_NONE; +} + +int thread_onmesh_prefix_get_dhcp(thread_onmesh_prefix_info_h onmesh_prefix, + bool *dhcp) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(onmesh_prefix); + + thread_onmesh_prefix_info_s *onmesh_prefix_info = + (thread_onmesh_prefix_info_s *)onmesh_prefix; + *dhcp = onmesh_prefix_info->dhcp; + + FUNC_EXIT; + return THREAD_ERROR_NONE; +} + int thread_br_add_onmesh_prefix(thread_instance_h instance, const uint8_t *ipv6_prefix, int ipv6_prefix_len, int8_t preference, bool preferred, bool slaac, bool dhcp, bool configure, bool default_route, diff --git a/tests/unittest/thread-unittest-br.cpp b/tests/unittest/thread-unittest-br.cpp index e5ea49a..70c10ea 100644 --- a/tests/unittest/thread-unittest-br.cpp +++ b/tests/unittest/thread-unittest-br.cpp @@ -438,6 +438,26 @@ TEST_F(ThreadBRTest, BRGetOnmeshSlaacErrorNone) thread_onmesh_prefix_get_slaac(onmeshPrefix, &slaac)); } +TEST_F(ThreadBRTest, BRSetOnmeshDhcpErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_onmesh_prefix_create(instance, &onmeshPrefix)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_onmesh_prefix_set_dhcp(onmeshPrefix, dhcp)); +} + +TEST_F(ThreadBRTest, BRGetOnmeshDhcpErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_onmesh_prefix_create(instance, &onmeshPrefix)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_onmesh_prefix_set_dhcp(onmeshPrefix, dhcp)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_onmesh_prefix_get_dhcp(onmeshPrefix, &dhcp)); +} + TEST_F(ThreadBRTest, BRAddOnmeshPrefixNotEnabled) { EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));