Skip to content

Commit ba5cd8c

Browse files
author
Kari Severinkangas
committed
IOTTHD-1028: thread config update
1 parent a26a80d commit ba5cd8c

File tree

1 file changed

+24
-35
lines changed

1 file changed

+24
-35
lines changed

features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/thread_tasklet.c

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "include/thread_tasklet.h"
2626
#include "include/static_config.h"
2727
#include "include/mesh_system.h"
28+
#include <mbed_assert.h>
2829
#include "ns_event_loop.h"
2930

3031
// For tracing we need to define flag, have include and define group
@@ -228,67 +229,55 @@ void thread_tasklet_configure_and_connect_to_network(void)
228229
NET_6LOWPAN_THREAD);
229230

230231
// Link configuration
231-
memcpy(thread_tasklet_data_ptr->link_config.name, "Arm Powered Core", 16);
232-
233232
thread_tasklet_data_ptr->link_config.panId = MBED_MESH_API_THREAD_CONFIG_PANID;
234233
TRACE_DETAIL("PANID %x", thread_tasklet_data_ptr->link_config.panId);
235234

236-
// channel
237-
if (MBED_MESH_API_THREAD_CONFIG_CHANNEL > 27) {
238-
tr_error("Bad channel %d", MBED_MESH_API_THREAD_CONFIG_CHANNEL);
239-
return;
240-
}
241-
242235
thread_tasklet_data_ptr->link_config.rfChannel = MBED_MESH_API_THREAD_CONFIG_CHANNEL;
243236
thread_tasklet_data_ptr->channel_list.channel_page = (channel_page_e)MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE;
244237
thread_tasklet_data_ptr->channel_list.channel_mask[0] = MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK;
245238
TRACE_DETAIL("channel: %d", thread_tasklet_data_ptr->link_config.rfChannel);
246239
TRACE_DETAIL("channel page: %d", thread_tasklet_data_ptr->channel_list.channel_page);
247240
TRACE_DETAIL("channel mask: %d", (int)thread_tasklet_data_ptr->channel_list.channel_mask[0]);
248-
249-
241+
250242
// Beacon data setting
251243
thread_tasklet_data_ptr->link_config.Protocol_id = 0x03;
252244
thread_tasklet_data_ptr->link_config.version = 1;
253245
memcpy(thread_tasklet_data_ptr->link_config.extended_random_mac, device_configuration.eui64, 8);
254246
thread_tasklet_data_ptr->link_config.extended_random_mac[0] |= 0x02;
255247

248+
// network name
249+
MBED_ASSERT(strlen(MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME) > 0 && strlen(MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME) < 17);
250+
memcpy(thread_tasklet_data_ptr->link_config.name, MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME, 16);
251+
252+
thread_tasklet_data_ptr->link_config.timestamp = MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP;
253+
254+
// extended pan-id
255+
const uint8_t extented_panid[] = MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID;
256+
MBED_ASSERT(sizeof(extented_panid) == 8);
257+
memcpy(thread_tasklet_data_ptr->link_config.extented_pan_id, extented_panid, sizeof(extented_panid));
258+
256259
// Mesh prefix
257260
const uint8_t mesh_local_prefix[] = MBED_MESH_API_THREAD_CONFIG_ML_PREFIX;
258-
if (sizeof(mesh_local_prefix) == 8) {
259-
memcpy(thread_tasklet_data_ptr->link_config.mesh_local_ula_prefix, mesh_local_prefix, 8);
260-
TRACE_DETAIL("Mesh prefix: %s", trace_array(mesh_local_prefix, 8));
261-
} else {
262-
tr_error("Mesh prefix, must be 8 hex chars: %s", mesh_local_prefix);
263-
return;
264-
}
261+
MBED_ASSERT(sizeof(mesh_local_prefix) == 8);
262+
263+
memcpy(thread_tasklet_data_ptr->link_config.mesh_local_ula_prefix, mesh_local_prefix, 8);
264+
TRACE_DETAIL("Mesh prefix: %s", trace_array(mesh_local_prefix, 8));
265265

266266
// Master Key
267267
const uint8_t master_key[] = MBED_MESH_API_THREAD_MASTER_KEY;
268-
if (sizeof(master_key) == 16) {
269-
memcpy(thread_tasklet_data_ptr->link_config.master_key, master_key, 16);
270-
TRACE_DETAIL("Master key: %s", trace_array(master_key, 16));
271-
} else {
272-
tr_error("Master key must be 16 hex chars: %s", master_key);
273-
return;
274-
}
268+
MBED_ASSERT(sizeof(master_key) == 16);
269+
memcpy(thread_tasklet_data_ptr->link_config.master_key, master_key, 16);
270+
TRACE_DETAIL("Master key: %s", trace_array(master_key, 16));
275271

276272
// PSKc
277273
const uint8_t PSKc[] = MBED_MESH_API_THREAD_CONFIG_PSKC;
278-
if (sizeof(PSKc) == 16) {
279-
memcpy(thread_tasklet_data_ptr->link_config.PSKc, PSKc, 16);
280-
TRACE_DETAIL("PSKc: %s", trace_array(PSKc, 16));
281-
} else {
282-
tr_error("PSKc must be 16 hex chars: %s", PSKc);
283-
return;
284-
}
274+
MBED_ASSERT(sizeof(PSKc) == 16);
275+
memcpy(thread_tasklet_data_ptr->link_config.PSKc, PSKc, 16);
276+
TRACE_DETAIL("PSKc: %s", trace_array(PSKc, 16));
285277

286278
// PSKd
287279
const char PSKd[] = MBED_MESH_API_THREAD_PSKD;
288-
if (sizeof(PSKd) < 7) {
289-
tr_error("PSKd length must be > 6: %s", PSKd);
290-
return;
291-
}
280+
MBED_ASSERT(sizeof(PSKd) > 5 && sizeof(PSKd) < 33);
292281

293282
char *dyn_buf = ns_dyn_mem_alloc(sizeof(PSKd));
294283
strcpy(dyn_buf, PSKd);

0 commit comments

Comments
 (0)