1 /*
2  *  Copyright (c) 2016, The OpenThread Authors.
3  *  All rights reserved.
4  *
5  *  Redistribution and use in source and binary forms, with or without
6  *  modification, are permitted provided that the following conditions are met:
7  *  1. Redistributions of source code must retain the above copyright
8  *     notice, this list of conditions and the following disclaimer.
9  *  2. Redistributions in binary form must reproduce the above copyright
10  *     notice, this list of conditions and the following disclaimer in the
11  *     documentation and/or other materials provided with the distribution.
12  *  3. Neither the name of the copyright holder nor the
13  *     names of its contributors may be used to endorse or promote products
14  *     derived from this software without specific prior written permission.
15  *
16  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  *  POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 /**
30  * @file
31  *   This file includes miscellaneous compile-time configuration constants for OpenThread.
32  */
33 
34 #ifndef CONFIG_MISC_H_
35 #define CONFIG_MISC_H_
36 
37 #include "config/coap.h"
38 #include "config/srp_server.h"
39 
40 /**
41  * @def OPENTHREAD_CONFIG_STACK_VENDOR_OUI
42  *
43  * The Organizationally Unique Identifier for the Thread stack.
44  *
45  */
46 #ifndef OPENTHREAD_CONFIG_STACK_VENDOR_OUI
47 #define OPENTHREAD_CONFIG_STACK_VENDOR_OUI 0x18b430
48 #endif
49 
50 /**
51  * @def OPENTHREAD_CONFIG_STACK_VERSION_REV
52  *
53  * The Stack Version Revision for the Thread stack.
54  *
55  */
56 #ifndef OPENTHREAD_CONFIG_STACK_VERSION_REV
57 #define OPENTHREAD_CONFIG_STACK_VERSION_REV 0
58 #endif
59 
60 /**
61  * @def OPENTHREAD_CONFIG_STACK_VERSION_MAJOR
62  *
63  * The Stack Version Major for the Thread stack.
64  *
65  */
66 #ifndef OPENTHREAD_CONFIG_STACK_VERSION_MAJOR
67 #define OPENTHREAD_CONFIG_STACK_VERSION_MAJOR 0
68 #endif
69 
70 /**
71  * @def OPENTHREAD_CONFIG_STACK_VERSION_MINOR
72  *
73  * The Stack Version Minor for the Thread stack.
74  *
75  */
76 #ifndef OPENTHREAD_CONFIG_STACK_VERSION_MINOR
77 #define OPENTHREAD_CONFIG_STACK_VERSION_MINOR 1
78 #endif
79 
80 /**
81  * @def OPENTHREAD_CONFIG_DEVICE_POWER_SUPPLY
82  *
83  * Specifies the default device power supply config. This config MUST use values from `otPowerSupply` enumeration.
84  *
85  * Device manufacturer can use this config to set the power supply config used by the device. This is then used as part
86  * of default `otDeviceProperties` to determine the Leader Weight used by the device.
87  *
88  */
89 #ifndef OPENTHREAD_CONFIG_DEVICE_POWER_SUPPLY
90 #define OPENTHREAD_CONFIG_DEVICE_POWER_SUPPLY OT_POWER_SUPPLY_EXTERNAL
91 #endif
92 
93 /**
94  * @def OPENTHREAD_CONFIG_ECDSA_ENABLE
95  *
96  * Define to 1 to enable ECDSA support.
97  *
98  */
99 #ifndef OPENTHREAD_CONFIG_ECDSA_ENABLE
100 #define OPENTHREAD_CONFIG_ECDSA_ENABLE 0
101 #endif
102 
103 /**
104  * @def OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE
105  *
106  * Define to 1 to generate ECDSA signatures deterministically
107  * according to RFC 6979 instead of randomly.
108  *
109  */
110 #ifndef OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE
111 #define OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE 1
112 #endif
113 
114 /**
115  * @def OPENTHREAD_CONFIG_UPTIME_ENABLE
116  *
117  * Define to 1 to enable tracking the uptime of OpenThread instance.
118  *
119  */
120 #ifndef OPENTHREAD_CONFIG_UPTIME_ENABLE
121 #define OPENTHREAD_CONFIG_UPTIME_ENABLE OPENTHREAD_FTD
122 #endif
123 
124 /**
125  * @def OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
126  *
127  * Define to 1 to enable the Jam Detection service.
128  *
129  */
130 #ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
131 #define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 0
132 #endif
133 
134 /**
135  * @def OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
136  *
137  * Define to 1 to enable multiple instance support.
138  *
139  */
140 #ifndef OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
141 #define OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE 0
142 #endif
143 
144 /**
145  * @def OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
146  *
147  * Define to 1 to enable Thread Test Harness reference device support.
148  *
149  */
150 #ifndef OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
151 #define OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 0
152 #endif
153 
154 /**
155  * @def OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE
156  *
157  * Define to 1 to enable UDP forward support.
158  *
159  */
160 #ifndef OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE
161 #define OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE 0
162 #endif
163 
164 /**
165  * @def OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE
166  *
167  * Whether use heap allocator for message buffers.
168  *
169  * @note If this is set, OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS is ignored.
170  *
171  */
172 #ifndef OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE
173 #define OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE 0
174 #endif
175 
176 /**
177  * @def OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS
178  *
179  * The number of message buffers in the buffer pool.
180  *
181  */
182 #ifndef OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS
183 #define OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS 44
184 #endif
185 
186 /**
187  * @def OPENTHREAD_CONFIG_MESSAGE_BUFFER_SIZE
188  *
189  * The size of a message buffer in bytes.
190  *
191  * Message buffers store pointers which have different sizes on different
192  * system. Setting message buffer size according to the CPU word length
193  * so that message buffer size will be doubled on 64bit system compared
194  * to that on 32bit system. As a result, the first message always have some
195  * bytes left for small packets.
196  *
197  * Some configuration options can increase the buffer size requirements, including
198  * OPENTHREAD_CONFIG_MLE_MAX_CHILDREN and OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE.
199  *
200  */
201 #ifndef OPENTHREAD_CONFIG_MESSAGE_BUFFER_SIZE
202 #define OPENTHREAD_CONFIG_MESSAGE_BUFFER_SIZE (sizeof(void *) * 32)
203 #endif
204 
205 /**
206  * @def OPENTHREAD_CONFIG_DEFAULT_TRANSMIT_POWER
207  *
208  * The default IEEE 802.15.4 transmit power (dBm).
209  *
210  */
211 #ifndef OPENTHREAD_CONFIG_DEFAULT_TRANSMIT_POWER
212 #define OPENTHREAD_CONFIG_DEFAULT_TRANSMIT_POWER 0
213 #endif
214 
215 /**
216  * @def OPENTHREAD_CONFIG_JOINER_UDP_PORT
217  *
218  * The default Joiner UDP port.
219  *
220  */
221 #ifndef OPENTHREAD_CONFIG_JOINER_UDP_PORT
222 #define OPENTHREAD_CONFIG_JOINER_UDP_PORT 1000
223 #endif
224 
225 /**
226  * @def OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS
227  *
228  * The maximum number of state-changed callback handlers (set using `otSetStateChangedCallback()`).
229  *
230  */
231 #ifndef OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS
232 #define OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS 1
233 #endif
234 
235 /**
236  * @def OPENTHREAD_CONFIG_STORE_FRAME_COUNTER_AHEAD
237  *
238  * The value ahead of the current frame counter for persistent storage.
239  *
240  */
241 #ifndef OPENTHREAD_CONFIG_STORE_FRAME_COUNTER_AHEAD
242 #define OPENTHREAD_CONFIG_STORE_FRAME_COUNTER_AHEAD 1000
243 #endif
244 
245 /**
246  * @def OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS
247  *
248  * Define as 1 to enable builtin-mbedtls.
249  *
250  * Note that the OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS determines whether to use builtin-mbedtls as well as
251  * whether to manage mbedTLS internally, such as memory allocation and debug.
252  *
253  */
254 #ifndef OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS
255 #define OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS 1
256 #endif
257 
258 /**
259  * @def OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT
260  *
261  * Define as 1 to enable builtin mbedtls management.
262  *
263  * OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT determines whether to manage mbedTLS memory
264  * allocation and debug config internally.  If not configured, the default is to enable builtin
265  * management if builtin mbedtls is enabled and disable it otherwise.
266  *
267  */
268 #ifndef OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT
269 #define OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS
270 #endif
271 
272 /**
273  * @def OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE
274  *
275  * The size of heap buffer when DTLS is enabled.
276  *
277  */
278 #ifndef OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE
279 #if OPENTHREAD_CONFIG_SRP_SERVER_ENABLE
280 // Internal heap doesn't support size larger than 64K bytes.
281 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (63 * 1024)
282 #elif OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE
283 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (3136 * sizeof(void *))
284 #else
285 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (1616 * sizeof(void *))
286 #endif
287 #endif
288 
289 /**
290  * @def OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS
291  *
292  * The size of heap buffer when DTLS is disabled.
293  *
294  */
295 #ifndef OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS
296 #if OPENTHREAD_CONFIG_SRP_SERVER_ENABLE
297 // Internal heap doesn't support size larger than 64K bytes.
298 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS (63 * 1024)
299 #elif OPENTHREAD_CONFIG_ECDSA_ENABLE
300 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS 2600
301 #else
302 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS 384
303 #endif
304 #endif
305 
306 /**
307  * @def OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE
308  *
309  * Enable the external heap.
310  *
311  */
312 #ifndef OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE
313 #define OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 0
314 #endif
315 
316 /**
317  * @def OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH
318  *
319  * The size of dtls application data when the CoAP Secure API is enabled.
320  *
321  */
322 #ifndef OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH
323 #define OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH 1400
324 #endif
325 
326 /**
327  * @def OPENTHREAD_CONFIG_ASSERT_ENABLE
328  *
329  * Define as 1 to enable assert function `OT_ASSERT()` within OpenThread code and its libraries.
330  *
331  */
332 #ifndef OPENTHREAD_CONFIG_ASSERT_ENABLE
333 #define OPENTHREAD_CONFIG_ASSERT_ENABLE 1
334 #endif
335 
336 /**
337  * @def OPENTHREAD_CONFIG_ASSERT_CHECK_API_POINTER_PARAM_FOR_NULL
338  *
339  * Define as 1 to enable assert check of pointer-type API input parameters against null.
340  *
341  * Enabling this feature can increase code-size significantly due to many assert checks added for all API pointer
342  * parameters. It is recommended to enable and use this feature during debugging only.
343  *
344  */
345 #ifndef OPENTHREAD_CONFIG_ASSERT_CHECK_API_POINTER_PARAM_FOR_NULL
346 #define OPENTHREAD_CONFIG_ASSERT_CHECK_API_POINTER_PARAM_FOR_NULL 0
347 #endif
348 
349 /**
350  * @def OPENTHREAD_CONFIG_ENABLE_DEBUG_UART
351  *
352  * Enable the "Debug Uart" platform feature.
353  *
354  * In the embedded world, the CLI application uses a UART as a console
355  * and the NCP application can be configured to use either a UART or
356  * a SPI type device to transfer data to the host.
357  *
358  * The Debug UART is or requires a second uart on the platform.
359  *
360  * The Debug Uart has two uses:
361  *
362  * Use #1 - for random 'debug printf' type messages a developer may need
363  * Use #2 (selected via DEBUG_LOG_OUTPUT) is a log output.
364  *
365  * See #include <openthread/platform/debug_uart.h> for more details
366  */
367 #ifndef OPENTHREAD_CONFIG_ENABLE_DEBUG_UART
368 #define OPENTHREAD_CONFIG_ENABLE_DEBUG_UART 0
369 #endif
370 
371 /**
372  * @def OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH
373  *
374  * The settings storage path on posix platform.
375  *
376  */
377 #ifndef OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH
378 #define OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH "tmp"
379 #endif
380 
381 /**
382  * @def OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE
383  *
384  * Define to 1 to enable otPlatFlash* APIs to support non-volatile storage.
385  *
386  * When defined to 1, the platform MUST implement the otPlatFlash* APIs instead of the otPlatSettings* APIs.
387  *
388  */
389 #ifndef OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE
390 #define OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE 0
391 #endif
392 
393 /**
394  * @def OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS
395  *
396  * This setting configures the number of consecutive MCPS.DATA-Confirms having Status NO_ACK
397  * that cause a Child-to-Parent link to be considered broken.
398  *
399  */
400 #ifndef OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS
401 #define OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS 4
402 #endif
403 
404 /**
405  * @def OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE
406  *
407  * This setting configures the default buffer size for IPv6 datagram destined for an attached SED.
408  * A Thread Router MUST be able to buffer at least one 1280-octet IPv6 datagram for an attached SED according to
409  * the Thread Conformance Specification.
410  *
411  */
412 #ifndef OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE
413 #define OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE 1280
414 #endif
415 
416 /**
417  * @def OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT
418  *
419  * This setting configures the default datagram count of 106-octet IPv6 datagram per attached SED.
420  * A Thread Router MUST be able to buffer at least one 106-octet IPv6 datagram per attached SED according to
421  * the Thread Conformance Specification.
422  *
423  */
424 #ifndef OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT
425 #define OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT 1
426 #endif
427 
428 /**
429  * @def OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT
430  *
431  * Define to 1 to support proprietary radio configurations defined by platform.
432  *
433  * @note If this setting is set to 1, the channel range is defined by the platform. Choosing this option requires
434  * the following configuration options to be defined by Platform:
435  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_PAGE,
436  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MIN,
437  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MAX and,
438  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MASK.
439  *
440  * @def OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
441  *
442  * Define to 1 to support OQPSK modulation in 915MHz frequency band. The physical layer parameters are defined in
443  * section 6 of IEEE802.15.4-2006.
444  *
445  * @note If this setting is set to 1, the IEEE 802.15.4 channel range is 1 to 10.
446  *
447  * @def OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
448  *
449  * Define to 1 to support OQPSK modulation in 2.4GHz frequency band. The physical layer parameters are defined in
450  * section 6 of IEEE802.15.4-2006.
451  *
452  * @note If this settings is set to 1, the IEEE 802.15.4 channel range is 11 to 26.
453  *
454  * @note At least one of these settings must be set to 1. The platform must support the modulation and frequency
455  *       band configured by the setting.
456  */
457 #ifndef OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT
458 #ifndef OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
459 #ifndef OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
460 #define OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT 0
461 #define OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT 0
462 #define OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT 1
463 #endif
464 #endif
465 #endif
466 
467 /**
468  * @def OPENTHREAD_CONFIG_DEFAULT_CHANNEL
469  *
470  * The default IEEE 802.15.4 channel.
471  *
472  */
473 #ifndef OPENTHREAD_CONFIG_DEFAULT_CHANNEL
474 #if OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
475 #define OPENTHREAD_CONFIG_DEFAULT_CHANNEL 11
476 #else
477 #if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
478 #define OPENTHREAD_CONFIG_DEFAULT_CHANNEL 1
479 #endif // OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
480 #endif // OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
481 #endif // OPENTHREAD_CONFIG_DEFAULT_CHANNEL
482 
483 /**
484  * @def OPENTHREAD_CONFIG_OTNS_ENABLE
485  *
486  * Define to 1 to enable OTNS interactions.
487  *
488  */
489 #ifndef OPENTHREAD_CONFIG_OTNS_ENABLE
490 #define OPENTHREAD_CONFIG_OTNS_ENABLE 0
491 #endif
492 
493 /**
494  * @def OPENTHREAD_CONFIG_DUA_ENABLE
495  *
496  * Define as 1 to support Thread 1.2 Domain Unicast Address feature.
497  *
498  */
499 #ifndef OPENTHREAD_CONFIG_DUA_ENABLE
500 #define OPENTHREAD_CONFIG_DUA_ENABLE 0
501 #endif
502 
503 /**
504  * @def OPENTHREAD_CONFIG_MLR_ENABLE
505  *
506  * Define as 1 to support Thread 1.2 Multicast Listener Registration feature.
507  *
508  */
509 #ifndef OPENTHREAD_CONFIG_MLR_ENABLE
510 #define OPENTHREAD_CONFIG_MLR_ENABLE 0
511 #endif
512 
513 /**
514  * @def OPENTHREAD_CONFIG_NEIGHBOR_DISCOVERY_AGENT_ENABLE
515  *
516  * Define as 1 to enable support for Neighbor Discover Agent.
517  *
518  */
519 #ifndef OPENTHREAD_CONFIG_NEIGHBOR_DISCOVERY_AGENT_ENABLE
520 #define OPENTHREAD_CONFIG_NEIGHBOR_DISCOVERY_AGENT_ENABLE 0
521 #endif
522 
523 /**
524  * @def OPENTHREAD_CONFIG_ALLOW_EMPTY_NETWORK_NAME
525  *
526  * Define as 1 to enable support for an empty network name (zero-length: "")
527  *
528  */
529 #ifndef OPENTHREAD_CONFIG_ALLOW_EMPTY_NETWORK_NAME
530 #define OPENTHREAD_CONFIG_ALLOW_EMPTY_NETWORK_NAME 0
531 #endif
532 
533 /**
534  * @def OPENTHREAD_CONFIG_OPERATIONAL_DATASET_AUTO_INIT
535  *
536  * Define as 1 to enable support for locally initializing an Active Operational Dataset.
537  *
538  * @note This functionality is deprecated and not recommended.
539  *
540  */
541 #ifndef OPENTHREAD_CONFIG_OPERATIONAL_DATASET_AUTO_INIT
542 #define OPENTHREAD_CONFIG_OPERATIONAL_DATASET_AUTO_INIT 0
543 #endif
544 
545 #endif // CONFIG_MISC_H_
546