diff --git a/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/mbed_lib.json b/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/mbed_lib.json index 0b32c7c767c..28b7ea179d6 100644 --- a/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/mbed_lib.json +++ b/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/mbed_lib.json @@ -11,14 +11,17 @@ "6lowpan-nd-psk-key": "{0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf}", "6lowpan-nd-sec-level": 5, "6lowpan-nd-device-type": "NET_6LOWPAN_ROUTER", - "thread-pskd": "\"Secret password\"", + "thread-pskd": "\"abcdefghijklmno\"", "thread-config-channel-mask": "0x7fff800", "thread-config-channel-page": 0, - "thread-config-channel": 12, - "thread-config-panid": "0xDEFA", - "thread-master-key": "{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}", - "thread-config-ml-prefix": "{0xfd, 0x00, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x00}", - "thread-config-pskc": "{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}", + "thread-config-channel": 22, + "thread-config-panid": "0x0700", + "thread-config-network-name": "\"Thread Network\"", + "thread-config-commissioning-dataset-timestamp": "0x00010000", + "thread-config-extended-panid": "{0xf1, 0xb5, 0xa1, 0xb2,0xc4, 0xd5, 0xa1, 0xbd }", + "thread-master-key": "{0x10, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}", + "thread-config-ml-prefix": "{0xfd, 0x0, 0x0d, 0xb8, 0x0, 0x0, 0x0, 0x0}", + "thread-config-pskc": "{0xc8, 0xa6, 0x2e, 0xae, 0xf3, 0x68, 0xf3, 0x46, 0xa9, 0x9e, 0x57, 0x85, 0x98, 0x9d, 0x1c, 0xd0}", "thread-device-type": "MESH_DEVICE_TYPE_THREAD_ROUTER" } } diff --git a/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/include/static_config.h b/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/include/static_config.h index d4fcf9557af..19123f4b215 100644 --- a/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/include/static_config.h +++ b/features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/include/static_config.h @@ -22,9 +22,7 @@ extern "C" { #endif -#ifdef YOTTA_CFG_MBED_MESH_API_HEAP_SIZE -#define MBED_MESH_API_HEAP_SIZE YOTTA_CFG_MBED_MESH_API_HEAP_SIZE -#elif defined MBED_CONF_MBED_MESH_API_HEAP_SIZE +#if defined MBED_CONF_MBED_MESH_API_HEAP_SIZE #define MBED_MESH_API_HEAP_SIZE MBED_CONF_MBED_MESH_API_HEAP_SIZE #else #define MBED_MESH_API_HEAP_SIZE 32500 @@ -42,59 +40,45 @@ extern "C" { * Possible channels are 0,1,2,3,4,5,6,9,10, see arm_hal_phy.h for details */ -#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE -#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE -#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE +#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE #define MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE #else #define MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE 0 #endif -#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL -#define MBED_MESH_API_6LOWPAN_ND_CHANNEL YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL -#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL +#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL #define MBED_MESH_API_6LOWPAN_ND_CHANNEL MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL #else #define MBED_MESH_API_6LOWPAN_ND_CHANNEL 0 #endif -#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK -#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK -#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK +#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK #define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK #elif defined MBED_MESH_API_6LOWPAN_ND_CHANNEL #define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK (1< #include "ns_event_loop.h" // For tracing we need to define flag, have include and define group @@ -228,74 +229,59 @@ void thread_tasklet_configure_and_connect_to_network(void) NET_6LOWPAN_THREAD); // Link configuration - memcpy(thread_tasklet_data_ptr->link_config.name, "Arm Powered Core", 16); - thread_tasklet_data_ptr->link_config.panId = MBED_MESH_API_THREAD_CONFIG_PANID; TRACE_DETAIL("PANID %x", thread_tasklet_data_ptr->link_config.panId); - // channel - if (MBED_MESH_API_THREAD_CONFIG_CHANNEL > 27) { - tr_error("Bad channel %d", MBED_MESH_API_THREAD_CONFIG_CHANNEL); - return; - } - thread_tasklet_data_ptr->link_config.rfChannel = MBED_MESH_API_THREAD_CONFIG_CHANNEL; thread_tasklet_data_ptr->channel_list.channel_page = (channel_page_e)MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE; thread_tasklet_data_ptr->channel_list.channel_mask[0] = MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK; TRACE_DETAIL("channel: %d", thread_tasklet_data_ptr->link_config.rfChannel); TRACE_DETAIL("channel page: %d", thread_tasklet_data_ptr->channel_list.channel_page); TRACE_DETAIL("channel mask: %d", (int)thread_tasklet_data_ptr->channel_list.channel_mask[0]); - - + // Beacon data setting thread_tasklet_data_ptr->link_config.Protocol_id = 0x03; thread_tasklet_data_ptr->link_config.version = 1; memcpy(thread_tasklet_data_ptr->link_config.extended_random_mac, device_configuration.eui64, 8); thread_tasklet_data_ptr->link_config.extended_random_mac[0] |= 0x02; + // network name + MBED_ASSERT(strlen(MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME) > 0 && strlen(MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME) < 17); + memcpy(thread_tasklet_data_ptr->link_config.name, MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME, strlen(MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME)); + + thread_tasklet_data_ptr->link_config.timestamp = MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP; + + // extended pan-id + const uint8_t extented_panid[] = MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID; + MBED_ASSERT(sizeof(extented_panid) == 8); + memcpy(thread_tasklet_data_ptr->link_config.extented_pan_id, extented_panid, sizeof(extented_panid)); + // Mesh prefix const uint8_t mesh_local_prefix[] = MBED_MESH_API_THREAD_CONFIG_ML_PREFIX; - if (sizeof(mesh_local_prefix) == 8) { - memcpy(thread_tasklet_data_ptr->link_config.mesh_local_ula_prefix, mesh_local_prefix, 8); - TRACE_DETAIL("Mesh prefix: %s", trace_array(mesh_local_prefix, 8)); - } else { - tr_error("Mesh prefix, must be 8 hex chars: %s", mesh_local_prefix); - return; - } + MBED_ASSERT(sizeof(mesh_local_prefix) == 8); + + memcpy(thread_tasklet_data_ptr->link_config.mesh_local_ula_prefix, mesh_local_prefix, 8); + TRACE_DETAIL("Mesh prefix: %s", trace_array(mesh_local_prefix, 8)); // Master Key const uint8_t master_key[] = MBED_MESH_API_THREAD_MASTER_KEY; - if (sizeof(master_key) == 16) { - memcpy(thread_tasklet_data_ptr->link_config.master_key, master_key, 16); - TRACE_DETAIL("Master key: %s", trace_array(master_key, 16)); - } else { - tr_error("Master key must be 16 hex chars: %s", master_key); - return; - } + MBED_ASSERT(sizeof(master_key) == 16); + memcpy(thread_tasklet_data_ptr->link_config.master_key, master_key, 16); // PSKc const uint8_t PSKc[] = MBED_MESH_API_THREAD_CONFIG_PSKC; - if (sizeof(PSKc) == 16) { - memcpy(thread_tasklet_data_ptr->link_config.PSKc, PSKc, 16); - TRACE_DETAIL("PSKc: %s", trace_array(PSKc, 16)); - } else { - tr_error("PSKc must be 16 hex chars: %s", PSKc); - return; - } + MBED_ASSERT(sizeof(PSKc) == 16); + memcpy(thread_tasklet_data_ptr->link_config.PSKc, PSKc, 16); // PSKd const char PSKd[] = MBED_MESH_API_THREAD_PSKD; - if (sizeof(PSKd) < 7) { - tr_error("PSKd length must be > 6: %s", PSKd); - return; - } + MBED_ASSERT(sizeof(PSKd) > 5 && sizeof(PSKd) < 33); char *dyn_buf = ns_dyn_mem_alloc(sizeof(PSKd)); strcpy(dyn_buf, PSKd); ns_dyn_mem_free(device_configuration.PSKd_ptr); device_configuration.PSKd_ptr = (uint8_t*)dyn_buf; device_configuration.PSKd_len = sizeof(PSKd) - 1; - TRACE_DETAIL("PSKd: %s", device_configuration.PSKd_ptr); thread_tasklet_data_ptr->link_config.key_rotation = 3600; thread_tasklet_data_ptr->link_config.key_sequence = 0;