* @pre thread API must be initialized with thread_initialize().
* @pre Active Operational Dataset must be set using thread_set_active_dataset_tlvs().
*
- * @see thread_network_create_operational_network()
+ * @see thread_network_create()
+ * @see thread_set_operational_network()
* @see thread_set_active_dataset_tlvs()
*/
int thread_network_get_panid(thread_instance_h instance, uint16_t *panid);
int thread_unset_operational_network(thread_instance_h instance);
/**
- * @ingroup CAPI_NETWORK_THREAD_NETWORK_MODULE
- * @brief Form an operational Thread Network
- * @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().
- */
-int thread_network_create_operational_network(thread_instance_h instance,
- const char *name, const char *key, const char *pskc, uint32_t channel,
- uint64_t extended_panid, uint16_t panid, thread_network_h *network);
-
-/**
- * @ingroup CAPI_NETWORK_THREAD_NETWORK_MODULE
- * @brief Destroy an operational Thread Network
- * @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_network_create_operational_network()
- */
-int thread_network_destroy_operational_network(thread_instance_h instance, thread_network_h network);
-
-/**
* @ingroup CAPI_NETWORK_THREAD_JOINER_MODULE
* @brief Start Thread joining with detailed informations
* @since_tizen 7.0
return THREAD_ERROR_NONE;
}
-/* Network leader/Creator */
-int thread_network_create_operational_network(thread_instance_h instance,
- const char *name, const char *key, const char *pskc, uint32_t channel,
- uint64_t extended_panid, uint16_t panid, thread_network_h *network)
-{
- FUNC_ENTRY;
- THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON);
- THREAD_CHECK_INIT_STATUS();
- THREAD_VALIDATE_INPUT_PARAMETER(instance);
- THREAD_VALIDATE_INPUT_PARAMETER(name);
- THREAD_VALIDATE_INPUT_PARAMETER(key);
- THREAD_VALIDATE_INPUT_PARAMETER(pskc);
- THREAD_VALIDATE_INPUT_PARAMETER(network);
-
- retv_if(strlen(name) > THREAD_NETWORK_NAME_MAX,
- THREAD_ERROR_INVALID_PARAMETER);
- retv_if(strlen(key) > THREAD_NETWORK_KEY_STRING_MAX,
- THREAD_ERROR_INVALID_PARAMETER);
- retv_if(strlen(pskc) > THREAD_NETWORK_PSKC_STRING_MAX,
- THREAD_ERROR_INVALID_PARAMETER);
-
- THREAD_DBG("Network Name: %s", name);
- THREAD_DBG("Network key: %s", key);
- THREAD_DBG("Network pskc: %s", pskc);
- THREAD_DBG("Network channel: 0x%8.8x", channel);
- THREAD_DBG("Network extended_panid: %zu", (size_t)extended_panid);
- THREAD_DBG("Network panid: %u", panid);
-
- /* Free existing current network */
- thread_instance_s *current_instance = instance;
- _thread_network_free(current_instance->network);
- current_instance->network = NULL;
-
- /* Create New Network */
- thread_network_s *new_network = NULL;
- new_network = g_malloc0(sizeof(thread_network_s));
- if (!new_network) {
- /* LCOV_EXCL_START */
- THREAD_ERR("g_malloc0 failed");
- return THREAD_ERROR_OUT_OF_MEMORY;
- /* LCOV_EXCL_STOP */
- }
-
- new_network->is_network_active = FALSE;
- (void)g_strlcpy(new_network->name, name, THREAD_NETWORK_NAME_MAX + 1);
- (void)g_strlcpy(new_network->key, key, THREAD_NETWORK_KEY_STRING_MAX + 1);
- (void)g_strlcpy(new_network->pskc, pskc, THREAD_NETWORK_PSKC_STRING_MAX + 1);
- new_network->channel = channel;
- new_network->extended_panid = extended_panid;
- new_network->panid = panid;
- *network = (thread_network_h)new_network;
-
- current_instance->network = *network;
-
- FUNC_EXIT;
- return THREAD_ERROR_NONE;
-}
-
-int thread_network_destroy_operational_network(thread_instance_h instance,
- thread_network_h network)
-{
- FUNC_ENTRY;
- THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON);
- THREAD_CHECK_INIT_STATUS();
- THREAD_VALIDATE_INPUT_PARAMETER(instance);
- THREAD_VALIDATE_INPUT_PARAMETER(network);
-
- thread_instance_s *current_instance = instance;
- thread_network_s *current_network = network;
-
- if (current_network->is_network_active) {
- THREAD_DBG("Thread network active, can't be destroyed:: \
- First Reset the Network");
- return THREAD_ERROR_OPERATION_FAILED;
- }
-
- _thread_network_free(current_network);
- current_network = NULL;
- current_instance->network = NULL;
-
- FUNC_EXIT;
- return THREAD_ERROR_NONE;
-}
-
int thread_network_set_active_dataset_tlvs(thread_instance_h instance,
const uint8_t *tlvs_buffer, int buf_length)
{
if (g_instance == NULL)
goto OUT;
- int ret = thread_network_destroy_operational_network(g_instance, g_network);
+ int ret = thread_unset_operational_network(g_instance);
if (ret == THREAD_ERROR_NONE)
- msg("thread_network_destroy_operational_network success");
+ msg("thread_unset_operational_network success");
else
- msg("thread_network_destroy_operational_network failed");
+ msg("thread_unset_operational_network failed");
+
+ ret = thread_network_destroy(g_network);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_destroy success");
+ else
+ msg("thread_network_destroy failed");
OUT:
FUNC_EXIT;
return RET_SUCCESS;
sscanf(g_str_extended_panid, "%zu", (size_t *)&g_extended_panid);
sscanf(g_str_panid, "%hu", &g_panid);
- int ret = thread_network_create_operational_network(g_instance, g_name, g_key,
- g_pskc, g_channel, g_extended_panid, g_panid, &g_network);
+ int ret = thread_network_create(&g_network);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_create success");
+ else
+ msg("thread_network_create failed");
+
+ ret = thread_network_set_name(g_network, g_name);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_set_name success");
+ else
+ msg("thread_network_set_name failed");
+
+ ret = thread_network_set_key(g_network, g_key);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_set_key success");
+ else
+ msg("thread_network_set_key failed");
+
+ ret = thread_network_set_pskc(g_network, g_pskc);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_set_pskc success");
+ else
+ msg("thread_network_set_pskc failed");
+
+ ret = thread_network_set_channel(g_network, g_channel);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_set_channel success");
+ else
+ msg("thread_network_set_channel failed");
+
+ ret = thread_network_set_extended_panid(g_network, g_extended_panid);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_set_extended_panid success");
+ else
+ msg("thread_network_set_extended_panid failed");
+
+ ret = thread_network_set_panid(g_network, g_panid);
+ if (ret == THREAD_ERROR_NONE)
+ msg("thread_network_set_panid success");
+ else
+ msg("thread_network_set_panid failed");
+
+ ret = thread_set_operational_network(g_instance, g_network);
if (ret == THREAD_ERROR_NONE)
- msg("thread_network_create_operational_network success");
+ msg("thread_set_operational_network success");
else
- msg("thread_network_create_operational_network failed");
+ msg("thread_set_operational_network failed");
OUT:
FUNC_EXIT;
return RET_SUCCESS;
}
/* create operational_network */
- ret = thread_network_create_operational_network(g_instance, g_name,
- g_key, g_pskc, g_channel, g_extended_panid,
- g_panid, &g_network);
+ ret = thread_network_create(&g_network);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_network_set_name(g_network, g_name);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_network_set_key(g_network, g_key);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_network_set_pskc(g_network, g_pskc);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_network_set_channel(g_network, g_channel);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_network_set_extended_panid(g_network, g_extended_panid);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_network_set_panid(g_network, g_panid);
+ if (ret != THREAD_ERROR_NONE) {
+ msg("Failed: %s", _thread_get_error_message(ret));
+ goto OUT;
+ }
+
+ ret = thread_set_operational_network(g_instance, g_network);
if (ret != THREAD_ERROR_NONE) {
msg("Failed: %s", _thread_get_error_message(ret));
goto OUT;
thread_network_destroy(network);
thread_unset_operational_network(instance);
}
- if (operationalNetwork)
- thread_network_destroy_operational_network(instance, operationalNetwork);
thread_disable(instance);
}
}
};
-TEST_F(ThreadNetworkTest, CreateOperationalNetworkNotInitialized)
-{
- EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
- EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
- thread_network_create_operational_network(instance, name,
- key, pskc, channel, extendedPanId, panId, &operationalNetwork));
-}
-
-TEST_F(ThreadNetworkTest, CreateOperationalNetworkInvalidParameter)
-{
- EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
- thread_network_create_operational_network(instance, name,
- key, pskc, channel, extendedPanId, panId, &operationalNetwork));
-}
-
-TEST_F(ThreadNetworkTest, CreateOperationalNetworkErrorNone)
-{
- EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
- EXPECT_EQ(THREAD_ERROR_NONE,
- thread_network_create_operational_network(instance, name,
- key, pskc, channel, extendedPanId, panId, &operationalNetwork));
-}
-
-TEST_F(ThreadNetworkTest, DestroyOperationalNetworkNotInitialized)
-{
- EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
- EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
- thread_network_destroy_operational_network(instance, operationalNetwork));
-}
-
-TEST_F(ThreadNetworkTest, DestroyOperationalNetworkInvalidParameter)
-{
- EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
- thread_network_destroy_operational_network(instance, operationalNetwork));
-}
-
-TEST_F(ThreadNetworkTest, DestroyOperationalNetworkErrorNone)
-{
- EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
- EXPECT_EQ(THREAD_ERROR_NONE,
- thread_network_create_operational_network(instance, name,
- key, pskc, channel, extendedPanId, panId, &operationalNetwork));
- EXPECT_EQ(THREAD_ERROR_NONE,
- thread_network_destroy_operational_network(instance, operationalNetwork));
-}
-
TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsNotInitialized)
{
EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
TEST_F(ThreadNetworkTest, DetachErrorNone)
{
EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network));
EXPECT_EQ(THREAD_ERROR_NONE,
- thread_network_create_operational_network(instance, name,
- key, pskc, channel, extendedPanId, panId, &operationalNetwork));
+ thread_set_operational_network(instance, network));
EXPECT_EQ(THREAD_ERROR_NONE, thread_network_detach(instance));
}