Skip to content

Commit 3642c3b

Browse files
authored
Merge pull request #3736 from karsev/thread_config_update
Thread config update
2 parents ba21763 + 52ca190 commit 3642c3b

File tree

3 files changed

+78
-101
lines changed

3 files changed

+78
-101
lines changed

features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/mbed_lib.json

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@
1111
"6lowpan-nd-psk-key": "{0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf}",
1212
"6lowpan-nd-sec-level": 5,
1313
"6lowpan-nd-device-type": "NET_6LOWPAN_ROUTER",
14-
"thread-pskd": "\"Secret password\"",
14+
"thread-pskd": "\"abcdefghijklmno\"",
1515
"thread-config-channel-mask": "0x7fff800",
1616
"thread-config-channel-page": 0,
17-
"thread-config-channel": 12,
18-
"thread-config-panid": "0xDEFA",
19-
"thread-master-key": "{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}",
20-
"thread-config-ml-prefix": "{0xfd, 0x00, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x00}",
21-
"thread-config-pskc": "{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}",
17+
"thread-config-channel": 22,
18+
"thread-config-panid": "0x0700",
19+
"thread-config-network-name": "\"Thread Network\"",
20+
"thread-config-commissioning-dataset-timestamp": "0x00010000",
21+
"thread-config-extended-panid": "{0xf1, 0xb5, 0xa1, 0xb2,0xc4, 0xd5, 0xa1, 0xbd }",
22+
"thread-master-key": "{0x10, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}",
23+
"thread-config-ml-prefix": "{0xfd, 0x0, 0x0d, 0xb8, 0x0, 0x0, 0x0, 0x0}",
24+
"thread-config-pskc": "{0xc8, 0xa6, 0x2e, 0xae, 0xf3, 0x68, 0xf3, 0x46, 0xa9, 0x9e, 0x57, 0x85, 0x98, 0x9d, 0x1c, 0xd0}",
2225
"thread-device-type": "MESH_DEVICE_TYPE_THREAD_ROUTER"
2326
}
2427
}

features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/include/static_config.h

Lines changed: 47 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@
2222
extern "C" {
2323
#endif
2424

25-
#ifdef YOTTA_CFG_MBED_MESH_API_HEAP_SIZE
26-
#define MBED_MESH_API_HEAP_SIZE YOTTA_CFG_MBED_MESH_API_HEAP_SIZE
27-
#elif defined MBED_CONF_MBED_MESH_API_HEAP_SIZE
25+
#if defined MBED_CONF_MBED_MESH_API_HEAP_SIZE
2826
#define MBED_MESH_API_HEAP_SIZE MBED_CONF_MBED_MESH_API_HEAP_SIZE
2927
#else
3028
#define MBED_MESH_API_HEAP_SIZE 32500
@@ -42,59 +40,45 @@ extern "C" {
4240
* Possible channels are 0,1,2,3,4,5,6,9,10, see arm_hal_phy.h for details
4341
*/
4442

45-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE
46-
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE
47-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE
43+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE
4844
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE
4945
#else
5046
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE 0
5147
#endif
5248

53-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL
54-
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL
55-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL
49+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL
5650
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL
5751
#else
5852
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL 0
5953
#endif
6054

61-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK
62-
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK
63-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK
55+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK
6456
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK
6557
#elif defined MBED_MESH_API_6LOWPAN_ND_CHANNEL
6658
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK (1<<MBED_MESH_API_6LOWPAN_ND_CHANNEL)
6759
#else
68-
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK (1<<12) // Why 12? Why not default channel value?
60+
#define MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK (1<<12)
6961
#endif
7062

71-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE
72-
#define MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE
73-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE
63+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE
7464
#define MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE
7565
#else
7666
#define MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE NONE
7767
#endif
7868

79-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID
80-
#define MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID
81-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID
69+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID
8270
#define MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID
8371
#else
8472
#define MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID 1
8573
#endif
8674

87-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_PSK_KEY
88-
#define MBED_MESH_API_6LOWPAN_ND_PSK_KEY YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_PSK_KEY
89-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY
75+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY
9076
#define MBED_MESH_API_6LOWPAN_ND_PSK_KEY MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY
9177
#else
9278
#define MBED_MESH_API_6LOWPAN_ND_PSK_KEY {0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf}
9379
#endif
9480

95-
#ifdef YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL
96-
#define MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL YOTTA_CFG_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL
97-
#elif defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL
81+
#if defined MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL
9882
#define MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL
9983
#else
10084
#define MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL 5
@@ -108,82 +92,86 @@ extern "C" {
10892

10993
/* Thread configuration */
11094
// PSKd, must be longer than 6
111-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_PSKD
112-
#define MBED_MESH_API_THREAD_PSKD YOTTA_CFG_MBED_MESH_API_THREAD_PSKD
113-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_PSKD
95+
#if defined MBED_CONF_MBED_MESH_API_THREAD_PSKD
11496
#define MBED_MESH_API_THREAD_PSKD MBED_CONF_MBED_MESH_API_THREAD_PSKD
11597
#else
116-
#define MBED_MESH_API_THREAD_PSKD "Secret password"
98+
#define MBED_MESH_API_THREAD_PSKD "abcdefghijklmno"
11799
#endif
118100

119101
// Operating mode, values: Router, SED
120-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_DEVICE_TYPE
121-
#define MBED_MESH_API_THREAD_DEVICE_TYPE YOTTA_CFG_MBED_MESH_API_THREAD_DEVICE_TYPE
122-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_DEVICE_TYPE
102+
#if defined MBED_CONF_MBED_MESH_API_THREAD_DEVICE_TYPE
123103
#define MBED_MESH_API_THREAD_DEVICE_TYPE MBED_CONF_MBED_MESH_API_THREAD_DEVICE_TYPE
124104
#else
125105
#define MBED_MESH_API_THREAD_DEVICE_TYPE MESH_DEVICE_TYPE_THREAD_ROUTER
126106
#endif
127107

128108
// channel mask, enable all channels
129-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK
130-
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK
131-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK
109+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK
132110
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK
133111
#else
134112
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK 0x07fff800
135113
#endif
136114

137-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE
138-
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE
139-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE
115+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE
140116
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE
141117
#else
142118
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE 0
143119
#endif
144120

145-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_CHANNEL
146-
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_CHANNEL
147-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL
121+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL
148122
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL
149123
#else
150-
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL 12
124+
#define MBED_MESH_API_THREAD_CONFIG_CHANNEL 22
151125
#endif
152126

153127
// Default PANID
154-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_PANID
155-
#define MBED_MESH_API_THREAD_CONFIG_PANID YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_PANID
156-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PANID
128+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PANID
157129
#define MBED_MESH_API_THREAD_CONFIG_PANID MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PANID
158130
#else
159-
#define MBED_MESH_API_THREAD_CONFIG_PANID 0xDEFA // 57082
131+
#define MBED_MESH_API_THREAD_CONFIG_PANID 0x0700
160132
#endif
161133

162-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_MASTER_KEY
163-
#define MBED_MESH_API_THREAD_MASTER_KEY YOTTA_CFG_MBED_MESH_API_THREAD_MASTER_KEY
164-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_MASTER_KEY
134+
// extended PANID
135+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID
136+
#define MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID MBED_CONF_MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID
137+
#else
138+
#define MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID {0xf1, 0xb5, 0xa1, 0xb2,0xc4, 0xd5, 0xa1, 0xbd }
139+
#endif
140+
141+
// network name
142+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME
143+
#define MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME MBED_CONF_MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME
144+
#else
145+
#define MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME "Thread Network"
146+
#endif
147+
148+
// commissioning dataset timestamp
149+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP
150+
#define MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP MBED_CONF_MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP
151+
#else
152+
#define MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP 0X1
153+
#endif
154+
155+
156+
#if defined MBED_CONF_MBED_MESH_API_THREAD_MASTER_KEY
165157
#define MBED_MESH_API_THREAD_MASTER_KEY MBED_CONF_MBED_MESH_API_THREAD_MASTER_KEY
166158
#else
167-
#define MBED_MESH_API_THREAD_MASTER_KEY {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}
159+
#define MBED_MESH_API_THREAD_MASTER_KEY {0x10, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}
168160
#endif
169161

170-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX
171-
#define MBED_MESH_API_THREAD_CONFIG_ML_PREFIX YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX
172-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX
162+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX
173163
#define MBED_MESH_API_THREAD_CONFIG_ML_PREFIX MBED_CONF_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX
174164
#else
175-
#define MBED_MESH_API_THREAD_CONFIG_ML_PREFIX {0xfd, 0x00, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x00}
165+
#define MBED_MESH_API_THREAD_CONFIG_ML_PREFIX {0xfd, 0x0, 0x0d, 0xb8, 0x0, 0x0, 0x0, 0x0}
176166
#endif
177167

178-
#ifdef YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_PSKC
179-
#define MBED_MESH_API_THREAD_CONFIG_PSKC YOTTA_CFG_MBED_MESH_API_THREAD_CONFIG_PSKC
180-
#elif defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PSKC
168+
#if defined MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PSKC
181169
#define MBED_MESH_API_THREAD_CONFIG_PSKC MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PSKC
182170
#else
183-
#define MBED_MESH_API_THREAD_CONFIG_PSKC {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}
171+
#define MBED_MESH_API_THREAD_CONFIG_PSKC {0xc8, 0xa6, 0x2e, 0xae, 0xf3, 0x68, 0xf3, 0x46, 0xa9, 0x9e, 0x57, 0x85, 0x98, 0x9d, 0x1c, 0xd0}
184172
#endif
185173

186174
#ifdef __cplusplus
187175
}
188176
#endif
189-
#endif /* __INCLUDE_STATIC_CONFIG__ */
177+
#endif /* __INCLUDE_STATIC_CONFIG__ */

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

Lines changed: 22 additions & 36 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,74 +229,59 @@ 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, strlen(MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME));
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);
275270

276271
// PSKc
277272
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-
}
273+
MBED_ASSERT(sizeof(PSKc) == 16);
274+
memcpy(thread_tasklet_data_ptr->link_config.PSKc, PSKc, 16);
285275

286276
// PSKd
287277
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-
}
278+
MBED_ASSERT(sizeof(PSKd) > 5 && sizeof(PSKd) < 33);
292279

293280
char *dyn_buf = ns_dyn_mem_alloc(sizeof(PSKd));
294281
strcpy(dyn_buf, PSKd);
295282
ns_dyn_mem_free(device_configuration.PSKd_ptr);
296283
device_configuration.PSKd_ptr = (uint8_t*)dyn_buf;
297284
device_configuration.PSKd_len = sizeof(PSKd) - 1;
298-
TRACE_DETAIL("PSKd: %s", device_configuration.PSKd_ptr);
299285

300286
thread_tasklet_data_ptr->link_config.key_rotation = 3600;
301287
thread_tasklet_data_ptr->link_config.key_sequence = 0;

0 commit comments

Comments
 (0)