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 /**
38  * @addtogroup config-misc
39  *
40  * @brief
41  *   This module includes configuration variables for Miscellaneous constants.
42  *
43  * @{
44  */
45 
46 #include "config/coap.h"
47 #include "config/srp_server.h"
48 
49 /**
50  * @def OPENTHREAD_CONFIG_STACK_VENDOR_OUI
51  *
52  * The Organizationally Unique Identifier for the Thread stack.
53  */
54 #ifndef OPENTHREAD_CONFIG_STACK_VENDOR_OUI
55 #define OPENTHREAD_CONFIG_STACK_VENDOR_OUI 0x18b430
56 #endif
57 
58 /**
59  * @def OPENTHREAD_CONFIG_STACK_VERSION_REV
60  *
61  * The Stack Version Revision for the Thread stack.
62  */
63 #ifndef OPENTHREAD_CONFIG_STACK_VERSION_REV
64 #define OPENTHREAD_CONFIG_STACK_VERSION_REV 0
65 #endif
66 
67 /**
68  * @def OPENTHREAD_CONFIG_STACK_VERSION_MAJOR
69  *
70  * The Stack Version Major for the Thread stack.
71  */
72 #ifndef OPENTHREAD_CONFIG_STACK_VERSION_MAJOR
73 #define OPENTHREAD_CONFIG_STACK_VERSION_MAJOR 0
74 #endif
75 
76 /**
77  * @def OPENTHREAD_CONFIG_STACK_VERSION_MINOR
78  *
79  * The Stack Version Minor for the Thread stack.
80  */
81 #ifndef OPENTHREAD_CONFIG_STACK_VERSION_MINOR
82 #define OPENTHREAD_CONFIG_STACK_VERSION_MINOR 1
83 #endif
84 
85 /**
86  * @def OPENTHREAD_CONFIG_DEVICE_POWER_SUPPLY
87  *
88  * Specifies the default device power supply config. This config MUST use values from `otPowerSupply` enumeration.
89  *
90  * Device manufacturer can use this config to set the power supply config used by the device. This is then used as part
91  * of default `otDeviceProperties` to determine the Leader Weight used by the device.
92  */
93 #ifndef OPENTHREAD_CONFIG_DEVICE_POWER_SUPPLY
94 #define OPENTHREAD_CONFIG_DEVICE_POWER_SUPPLY OT_POWER_SUPPLY_EXTERNAL
95 #endif
96 
97 /**
98  * @def OPENTHREAD_CONFIG_ECDSA_ENABLE
99  *
100  * Define to 1 to enable ECDSA support.
101  */
102 #ifndef OPENTHREAD_CONFIG_ECDSA_ENABLE
103 #define OPENTHREAD_CONFIG_ECDSA_ENABLE 0
104 #endif
105 
106 /**
107  * @def OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE
108  *
109  * Define to 1 to generate ECDSA signatures deterministically
110  * according to RFC 6979 instead of randomly.
111  */
112 #ifndef OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE
113 #define OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE 1
114 #endif
115 
116 /**
117  * @def OPENTHREAD_CONFIG_UPTIME_ENABLE
118  *
119  * Define to 1 to enable tracking the uptime of OpenThread instance.
120  */
121 #ifndef OPENTHREAD_CONFIG_UPTIME_ENABLE
122 #define OPENTHREAD_CONFIG_UPTIME_ENABLE OPENTHREAD_FTD
123 #endif
124 
125 /**
126  * @def OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
127  *
128  * Define to 1 to enable the Jam Detection service.
129  */
130 #ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
131 #define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 0
132 #endif
133 
134 /**
135  * @def OPENTHREAD_CONFIG_VERHOEFF_CHECKSUM_ENABLE
136  *
137  * Define to 1 to enable Verhoeff checksum utility module.
138  */
139 #ifndef OPENTHREAD_CONFIG_VERHOEFF_CHECKSUM_ENABLE
140 #define OPENTHREAD_CONFIG_VERHOEFF_CHECKSUM_ENABLE OPENTHREAD_CONFIG_BORDER_AGENT_EPHEMERAL_KEY_ENABLE
141 #endif
142 
143 /**
144  * @def OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
145  *
146  * Define to 1 to enable multiple instance support.
147  */
148 #ifndef OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
149 #define OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE 0
150 #endif
151 
152 /**
153  * @def OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE
154  *
155  * Define to 1 to enable multipan RCP support.
156  */
157 #ifndef OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE
158 #define OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE 0
159 #endif
160 
161 /**
162  * @def OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
163  *
164  * Define to 1 to enable Thread Test Harness reference device support.
165  */
166 #ifndef OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
167 #define OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 0
168 #endif
169 
170 /**
171  * @def OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE
172  *
173  * Define to 1 to enable UDP forward support.
174  */
175 #ifndef OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE
176 #define OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE 0
177 #endif
178 
179 /**
180  * @def OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE
181  *
182  * Whether use heap allocator for message buffers.
183  *
184  * @note If this is set, OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS is ignored.
185  */
186 #ifndef OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE
187 #define OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE 0
188 #endif
189 
190 /**
191  * @def OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS
192  *
193  * The number of message buffers in the buffer pool.
194  */
195 #ifndef OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS
196 #define OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS 44
197 #endif
198 
199 /**
200  * @def OPENTHREAD_CONFIG_MESSAGE_BUFFER_SIZE
201  *
202  * The size of a message buffer in bytes.
203  *
204  * Message buffers store pointers which have different sizes on different
205  * system. Setting message buffer size according to the CPU word length
206  * so that message buffer size will be doubled on 64bit system compared
207  * to that on 32bit system. As a result, the first message always have some
208  * bytes left for small packets.
209  *
210  * Some configuration options can increase the buffer size requirements, including
211  * OPENTHREAD_CONFIG_MLE_MAX_CHILDREN and OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE.
212  */
213 #ifndef OPENTHREAD_CONFIG_MESSAGE_BUFFER_SIZE
214 #define OPENTHREAD_CONFIG_MESSAGE_BUFFER_SIZE (sizeof(void *) * 32)
215 #endif
216 
217 /**
218  * @def OPENTHREAD_CONFIG_DEFAULT_TRANSMIT_POWER
219  *
220  * The default IEEE 802.15.4 transmit power (dBm).
221  */
222 #ifndef OPENTHREAD_CONFIG_DEFAULT_TRANSMIT_POWER
223 #define OPENTHREAD_CONFIG_DEFAULT_TRANSMIT_POWER 0
224 #endif
225 
226 /**
227  * @def OPENTHREAD_CONFIG_JOINER_UDP_PORT
228  *
229  * The default Joiner UDP port.
230  */
231 #ifndef OPENTHREAD_CONFIG_JOINER_UDP_PORT
232 #define OPENTHREAD_CONFIG_JOINER_UDP_PORT 1000
233 #endif
234 
235 /**
236  * @def OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS
237  *
238  * The maximum number of state-changed callback handlers (set using `otSetStateChangedCallback()`).
239  */
240 #ifndef OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS
241 #define OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS 1
242 #endif
243 
244 /**
245  * @def OPENTHREAD_CONFIG_STORE_FRAME_COUNTER_AHEAD
246  *
247  * The value ahead of the current frame counter for persistent storage.
248  */
249 #ifndef OPENTHREAD_CONFIG_STORE_FRAME_COUNTER_AHEAD
250 #define OPENTHREAD_CONFIG_STORE_FRAME_COUNTER_AHEAD 1000
251 #endif
252 
253 /**
254  * @def OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS
255  *
256  * Define as 1 to enable builtin-mbedtls.
257  *
258  * Note that the OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS determines whether to use builtin-mbedtls as well as
259  * whether to manage mbedTLS internally, such as memory allocation and debug.
260  */
261 #ifndef OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS
262 #define OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS 1
263 #endif
264 
265 /**
266  * @def OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT
267  *
268  * Define as 1 to enable builtin mbedtls management.
269  *
270  * OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT determines whether to manage mbedTLS memory
271  * allocation and debug config internally.  If not configured, the default is to enable builtin
272  * management if builtin mbedtls is enabled and disable it otherwise.
273  */
274 #ifndef OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT
275 #define OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS
276 #endif
277 
278 /**
279  * @def OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE
280  *
281  * The size of heap buffer when DTLS is enabled.
282  */
283 #ifndef OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE
284 #if OPENTHREAD_CONFIG_SRP_SERVER_ENABLE
285 // Internal heap doesn't support size larger than 64K bytes.
286 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (63 * 1024)
287 #elif OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE
288 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (3136 * sizeof(void *))
289 #else
290 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (1616 * sizeof(void *))
291 #endif
292 #endif
293 
294 /**
295  * @def OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS
296  *
297  * The size of heap buffer when DTLS is disabled.
298  */
299 #ifndef OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS
300 #if OPENTHREAD_CONFIG_SRP_SERVER_ENABLE
301 // Internal heap doesn't support size larger than 64K bytes.
302 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS (63 * 1024)
303 #elif OPENTHREAD_CONFIG_ECDSA_ENABLE
304 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS 2600
305 #else
306 #define OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE_NO_DTLS 384
307 #endif
308 #endif
309 
310 /**
311  * @def OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE
312  *
313  * Enable the external heap.
314  */
315 #ifndef OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE
316 #define OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 0
317 #endif
318 
319 /**
320  * @def OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH
321  *
322  * The size of dtls application data when the CoAP Secure API is enabled.
323  */
324 #ifndef OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH
325 #define OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH 1400
326 #endif
327 
328 /**
329  * @def OPENTHREAD_CONFIG_ASSERT_ENABLE
330  *
331  * Define as 1 to enable assert function `OT_ASSERT()` within OpenThread code and its libraries.
332  */
333 #ifndef OPENTHREAD_CONFIG_ASSERT_ENABLE
334 #define OPENTHREAD_CONFIG_ASSERT_ENABLE 1
335 #endif
336 
337 /**
338  * @def OPENTHREAD_CONFIG_ASSERT_CHECK_API_POINTER_PARAM_FOR_NULL
339  *
340  * Define as 1 to enable assert check of pointer-type API input parameters against null.
341  *
342  * Enabling this feature can increase code-size significantly due to many assert checks added for all API pointer
343  * parameters. It is recommended to enable and use this feature during debugging only.
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 #ifndef OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH
377 #define OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH "tmp"
378 #endif
379 
380 /**
381  * @def OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE
382  *
383  * Define to 1 to enable otPlatFlash* APIs to support non-volatile storage.
384  *
385  * When defined to 1, the platform MUST implement the otPlatFlash* APIs instead of the otPlatSettings* APIs.
386  */
387 #ifndef OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE
388 #define OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE 0
389 #endif
390 
391 /**
392  * @def OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS
393  *
394  * This setting configures the number of consecutive MCPS.DATA-Confirms having Status NO_ACK
395  * that cause a Child-to-Parent link to be considered broken.
396  */
397 #ifndef OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS
398 #define OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS 4
399 #endif
400 
401 /**
402  * @def OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE
403  *
404  * Specifies the value used in emitted Connectivity TLV "Rx-off Child Buffer Size" field which indicates the
405  * guaranteed buffer capacity for all IPv6 datagrams destined to a given rx-off-when-idle child.
406  *
407  * Changing this config does not automatically adjust message buffers. Vendors should ensure their device can support
408  * the specified value based on the message buffer model used:
409  *  - OT internal message pool (refer to `OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS` and `MESSAGE_BUFFER_SIZE`), or
410  *  - Heap allocated message buffers (refer to `OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE),
411  *  - Platform-specific message management (refer to`OPENTHREAD_CONFIG_PLATFORM_MESSAGE_MANAGEMENT`).
412  */
413 #ifndef OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE
414 #define OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE 1280
415 #endif
416 
417 /**
418  * @def OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT
419  *
420  * Specifies the value used in emitted Connectivity TLV "Rx-off Child Datagram Count" field which indicates the
421  * guaranteed queue capacity in number of IPv6 datagrams destined to a given rx-off-when-idle child.
422  *
423  * Similar to `OPENTHREAD_CONFIG_DEFAULT_SED_BUFFER_SIZE`, vendors should ensure their device can support the specified
424  * value based on the message buffer model used.
425  */
426 #ifndef OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT
427 #define OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT 1
428 #endif
429 
430 /**
431  * @def OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT
432  *
433  * Define to 1 to support proprietary radio configurations defined by platform.
434  *
435  * @note If this setting is set to 1, the channel range is defined by the platform. Choosing this option requires
436  * the following configuration options to be defined by Platform:
437  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_PAGE,
438  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MIN,
439  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MAX and,
440  * OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MASK.
441  *
442  * @def OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
443  *
444  * Define to 1 to support OQPSK modulation in 915MHz frequency band. The physical layer parameters are defined in
445  * section 6 of IEEE802.15.4-2006.
446  *
447  * @note If this setting is set to 1, the IEEE 802.15.4 channel range is 1 to 10.
448  *
449  * @def OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
450  *
451  * Define to 1 to support OQPSK modulation in 2.4GHz frequency band. The physical layer parameters are defined in
452  * section 6 of IEEE802.15.4-2006.
453  *
454  * @note If this settings is set to 1, the IEEE 802.15.4 channel range is 11 to 26.
455  *
456  * @note At least one of these settings must be set to 1. The platform must support the modulation and frequency
457  *       band configured by the setting.
458  */
459 #ifndef OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT
460 #ifndef OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
461 #ifndef OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
462 #define OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_SUPPORT 0
463 #define OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT 0
464 #define OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT 1
465 #endif
466 #endif
467 #endif
468 
469 /**
470  * @def OPENTHREAD_CONFIG_DEFAULT_CHANNEL
471  *
472  * The default IEEE 802.15.4 channel.
473  */
474 #ifndef OPENTHREAD_CONFIG_DEFAULT_CHANNEL
475 #if OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
476 #define OPENTHREAD_CONFIG_DEFAULT_CHANNEL 11
477 #else
478 #if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
479 #define OPENTHREAD_CONFIG_DEFAULT_CHANNEL 1
480 #endif // OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
481 #endif // OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
482 #endif // OPENTHREAD_CONFIG_DEFAULT_CHANNEL
483 
484 /**
485  * @def OPENTHREAD_CONFIG_DEFAULT_WAKEUP_CHANNEL
486  *
487  * The default IEEE 802.15.4 wake-up channel.
488  */
489 #ifndef OPENTHREAD_CONFIG_DEFAULT_WAKEUP_CHANNEL
490 #define OPENTHREAD_CONFIG_DEFAULT_WAKEUP_CHANNEL 11
491 #endif
492 
493 /**
494  * @def OPENTHREAD_CONFIG_OTNS_ENABLE
495  *
496  * Define to 1 to enable OTNS interactions.
497  */
498 #ifndef OPENTHREAD_CONFIG_OTNS_ENABLE
499 #define OPENTHREAD_CONFIG_OTNS_ENABLE 0
500 #endif
501 
502 /**
503  * @def OPENTHREAD_CONFIG_DUA_ENABLE
504  *
505  * Define as 1 to support Thread 1.2 Domain Unicast Address feature.
506  */
507 #ifndef OPENTHREAD_CONFIG_DUA_ENABLE
508 #define OPENTHREAD_CONFIG_DUA_ENABLE 0
509 #endif
510 
511 /**
512  * @def OPENTHREAD_CONFIG_MLR_ENABLE
513  *
514  * Define as 1 to support Thread 1.2 Multicast Listener Registration feature.
515  */
516 #ifndef OPENTHREAD_CONFIG_MLR_ENABLE
517 #define OPENTHREAD_CONFIG_MLR_ENABLE 0
518 #endif
519 
520 /**
521  * @def OPENTHREAD_CONFIG_NEIGHBOR_DISCOVERY_AGENT_ENABLE
522  *
523  * Define as 1 to enable support for Neighbor Discover Agent.
524  */
525 #ifndef OPENTHREAD_CONFIG_NEIGHBOR_DISCOVERY_AGENT_ENABLE
526 #define OPENTHREAD_CONFIG_NEIGHBOR_DISCOVERY_AGENT_ENABLE 0
527 #endif
528 
529 /**
530  * @def OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE
531  *
532  * Define to 1 to enable multiple static instance support.
533  */
534 #ifndef OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE
535 #define OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE 0
536 #endif
537 
538 /**
539  * @def OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_NUM
540  *
541  * Define number of OpenThread instance for static allocation buffer.
542  */
543 #ifndef OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_NUM
544 #define OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_NUM 3
545 #endif
546 
547 /**
548  * @def OPENTHREAD_CONFIG_ALLOW_EMPTY_NETWORK_NAME
549  *
550  * Define as 1 to enable support for an empty network name (zero-length: "")
551  */
552 #ifndef OPENTHREAD_CONFIG_ALLOW_EMPTY_NETWORK_NAME
553 #define OPENTHREAD_CONFIG_ALLOW_EMPTY_NETWORK_NAME 0
554 #endif
555 
556 /**
557  * @def OPENTHREAD_CONFIG_OPERATIONAL_DATASET_AUTO_INIT
558  *
559  * Define as 1 to enable support for locally initializing an Active Operational Dataset.
560  *
561  * @note This functionality is deprecated and not recommended.
562  */
563 #ifndef OPENTHREAD_CONFIG_OPERATIONAL_DATASET_AUTO_INIT
564 #define OPENTHREAD_CONFIG_OPERATIONAL_DATASET_AUTO_INIT 0
565 #endif
566 
567 /**
568  * @def OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
569  *
570  * Define to 1 to enable TCAT over BLE support.
571  */
572 #ifndef OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
573 #define OPENTHREAD_CONFIG_BLE_TCAT_ENABLE 0
574 #endif
575 
576 /**
577  * @def OPENTHREAD_CONFIG_PLATFORM_LOG_CRASH_DUMP_ENABLE
578  *
579  * Define to 1 to enable crash dump logging.
580  *
581  * On platforms that support crash dump logging, this feature will log a crash dump using the OT Debug Log service.
582  *
583  * Logging a crash dump requires the platform to implement the `otPlatLogCrashDump()` function.
584  */
585 #ifndef OPENTHREAD_CONFIG_PLATFORM_LOG_CRASH_DUMP_ENABLE
586 #define OPENTHREAD_CONFIG_PLATFORM_LOG_CRASH_DUMP_ENABLE 0
587 #endif
588 
589 /**
590  * @}
591  */
592 
593 #endif // CONFIG_MISC_H_
594