1# OpenThread stack features selection
2
3# Copyright (c) 2020 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6choice OPENTHREAD_STACK_VERSION
7	prompt "OpenThread stack version"
8	default OPENTHREAD_THREAD_VERSION_1_1
9	help
10	  This option selects version of Thread stack
11
12config OPENTHREAD_THREAD_VERSION_1_1
13	bool "Version 1.1"
14config OPENTHREAD_THREAD_VERSION_1_2
15	bool "Version 1.2"
16config OPENTHREAD_THREAD_VERSION_1_3
17	bool "Version 1.3"
18config OPENTHREAD_THREAD_VERSION_1_3_1
19	bool "Version 1.3.1"
20endchoice # OPENTHREAD_STACK_VERSION
21
22config OPENTHREAD_THREAD_VERSION
23	string
24	default "1.1" if OPENTHREAD_THREAD_VERSION_1_1
25	default "1.2" if OPENTHREAD_THREAD_VERSION_1_2
26	default "1.3" if OPENTHREAD_THREAD_VERSION_1_3
27	default "1.3.1" if OPENTHREAD_THREAD_VERSION_1_3_1
28	default "unknown"
29
30config OPENTHREAD_ANYCAST_LOCATOR
31	bool "Anycast locator support"
32
33config OPENTHREAD_BACKBONE_ROUTER
34	bool "Backbone Router functionality"
35
36config OPENTHREAD_BACKBONE_ROUTER_DUA_NDPROXYING
37	bool "BBR DUA ND Proxy support"
38
39config OPENTHREAD_BACKBONE_ROUTER_MULTICAST_ROUTING
40	bool "BBR MR support"
41
42config OPENTHREAD_BLE_TCAT
43	bool "BLE TCAT support"
44	select EXPERIMENTAL
45
46config OPENTHREAD_BORDER_AGENT
47	bool "Border Agent support"
48
49config OPENTHREAD_BORDER_AGENT_EPHEMERAL_KEY_ENABLE
50	bool "Border agent ephemeral PSKc"
51
52config OPENTHREAD_BORDER_ROUTER
53	bool "Border Router support"
54
55config OPENTHREAD_BORDER_ROUTING
56	bool "Border routing support"
57
58config OPENTHREAD_BORDER_ROUTING_COUNTERS
59	bool "Border routing counters support"
60
61config OPENTHREAD_BORDER_ROUTING_DHCP6_PD
62	bool "DHCPv6-PD support in border routing"
63
64config OPENTHREAD_CHANNEL_MONITOR
65	bool "Channel monitor support"
66
67config OPENTHREAD_CHANNEL_MANAGER
68	bool "Channel manager support"
69	depends on OPENTHREAD_CHANNEL_MONITOR
70
71config OPENTHREAD_CHANNEL_MANAGER_CSL
72	bool "Channel manager for CSL channel"
73
74config OPENTHREAD_COAP
75	bool "OpenThread CoAP support"
76	help
77	  Enable CoAP API for the application with use of OpenThread stack
78
79config OPENTHREAD_COAP_BLOCK
80	bool "CoAP Block-wise option support"
81
82config OPENTHREAD_COAP_OBSERVE
83	bool "CoAP Observe option support"
84
85config OPENTHREAD_COAPS
86	bool "Secure CoAP API support"
87	depends on OPENTHREAD_COAP
88
89config OPENTHREAD_COMMISSIONER
90	bool "Commissioner functions support"
91	help
92	  Enable commissioner capability in OpenThread stack. Note, that DTLS
93	  handshake used in the commissioning procedure requires a larger
94	  mbedTLS heap than the default value. A minimum recommended value of
95	  CONFIG_MBEDTLS_HEAP_SIZE for the commissioning is 10KB.
96
97config OPENTHREAD_CSL_DEBUG
98	bool "CSL debugging"
99
100config OPENTHREAD_CSL_RECEIVER
101	bool "CSL Receiver support"
102	help
103	  Enable CSL Receiver support for Thread 1.2
104
105config OPENTHREAD_CSL_RECEIVER_LOCAL_TIME_SYNC
106	bool "Use local time for CSL synchronization"
107	help
108	  Use host time rather than radio platform time to track elapsed time
109	  since last CSL synchronization. This reduces the usage of radio API
110	  calls, and it is useful for platforms in which those are costly.
111
112config OPENTHREAD_DEVICE_PROP_LEADER_WEIGHT
113	bool "Device props for leader weight"
114	default n if (OPENTHREAD_THREAD_VERSION_1_1 || \
115		      OPENTHREAD_THREAD_VERSION_1_2 || \
116		      OPENTHREAD_THREAD_VERSION_1_3)
117	default y
118	help
119	  Enable the device properties which are then used to determine and set
120	  the Leader Weight.
121
122config OPENTHREAD_DATASET_UPDATER
123	bool "Dataset updater"
124
125config OPENTHREAD_DHCP6_CLIENT
126	bool "DHCPv6 client support"
127
128config OPENTHREAD_DHCP6_SERVER
129	bool "DHCPv6 server support"
130
131config OPENTHREAD_DIAG
132	bool "Diagnostic functions support"
133	help
134	  Enable OpenThread CLI diagnostic commands
135
136config OPENTHREAD_DNS_CLIENT
137	bool "DNS client support"
138
139config OPENTHREAD_DNS_CLIENT_OVER_TCP
140	bool "DNS query over tcp"
141
142config OPENTHREAD_DNS_DSO
143	bool "DNS Stateful Operations (DSO) support"
144
145config OPENTHREAD_DNS_UPSTREAM_QUERY
146	bool "Forwarding DNS queries to upstream"
147	help
148	  Enable forwarding DNS queries to platform DNS upstream API
149
150config OPENTHREAD_DNSSD_SERVER
151	bool "DNS-SD server support"
152
153config OPENTHREAD_DUA
154	bool "Domain Unicast Address support"
155	help
156	  Enable Domain Unicast Address feature for Thread 1.2
157
158config OPENTHREAD_ECDSA
159	bool "ECDSA support"
160
161config OPENTHREAD_ENABLE_SERVICE
162	bool "Service support"
163	help
164	  Enable Thread Services capability in OpenThread stack
165
166config OPENTHREAD_EXTERNAL_HEAP
167	bool "External heap support"
168
169config OPENTHREAD_FIREWALL
170	bool "Firewall support"
171
172config OPENTHREAD_FULL_LOGS
173	bool "OpenThread full logs"
174
175config OPENTHREAD_IP6_FRAGM
176	bool "IPv6 fragmentation support"
177
178config OPENTHREAD_JAM_DETECTION
179	bool "Jam detection support"
180
181config OPENTHREAD_JOINER
182	bool "Joiner functions support"
183	help
184	  Enable joiner capability in OpenThread stack. Note, that DTLS
185	  handshake used in the commissioning procedure requires a larger
186	  mbedTLS heap than the default value. A minimum recommended value of
187	  CONFIG_MBEDTLS_HEAP_SIZE for the commissioning is 10KB.
188
189config OPENTHREAD_LEGACY
190	bool "Legacy network support"
191
192config OPENTHREAD_LINK_METRICS_INITIATOR
193	bool "Link Metrics initiator"
194
195config OPENTHREAD_LINK_METRICS_MANAGER
196	bool "Link Metrics manager"
197
198config OPENTHREAD_LINK_METRICS_SUBJECT
199	bool "Link Metrics subject"
200
201config OPENTHREAD_PLATFORM_LOG_CRASH_DUMP
202	bool "Platform log crash dump"
203
204config OPENTHREAD_LOG_LEVEL_DYNAMIC
205	bool "Dynamic log level control"
206
207config OPENTHREAD_MAC_FILTER
208	bool "MAC filter support"
209
210config OPENTHREAD_MULTICAST_DNS
211	bool "Multicast DNS (mDNS)"
212
213config OPENTHREAD_MESH_DIAG
214	bool "Mesh Diagnostics"
215	depends on OPENTHREAD_FTD
216	help
217	  Enable Mesh Diagnostics
218
219config OPENTHREAD_MESSAGE_USE_HEAP
220	bool "Heap allocator for message buffers"
221
222config OPENTHREAD_MLE_LONG_ROUTES
223	bool "MLE long routes extension (experimental)"
224	select EXPERIMENTAL
225	help
226	  Enable MLE long routes extension (experimental, breaks Thread conformance)
227
228config OPENTHREAD_MLR
229	bool "Multicast Listener Registration support"
230	help
231	  Enable Multicast Listener Registration support for Thread 1.2
232
233config OPENTHREAD_MULTIPAN_RCP
234	bool "OpenThread multipan rcp"
235
236config OPENTHREAD_MULTIPLE_INSTANCE
237	bool "OpenThread multiple instances"
238
239config OPENTHREAD_NAT64_BORDER_ROUTING
240	bool "Border routing NAT64 support"
241
242config OPENTHREAD_NAT64_TRANSLATOR
243	bool "NAT64 translator support"
244
245config OPENTHREAD_NETDIAG_CLIENT
246	bool "TMF network diagnostics on client"
247
248config OPENTHREAD_NEIGHBOR_DISCOVERY_AGENT
249	bool "Neighbor discovery agent support"
250
251config OPENTHREAD_NETDATA_PUBLISHER
252	bool "Thread Network Data publisher"
253
254config OPENTHREAD_OPERATIONAL_DATASET_AUTO_INIT
255	bool "Operational dataset auto init"
256	default y
257
258config OPENTHREAD_OTNS
259	bool "OTNS support"
260
261config OPENTHREAD_PING_SENDER
262	bool "Ping sender support"
263
264config OPENTHREAD_PLATFORM_KEY_REF
265	bool "Platform cryptographic key reference support"
266	help
267	  Enable usage of cryptographic key references instead of literal keys.
268	  This requires a crypto backend library that supports key references.
269
270choice OPENTHREAD_PLATFORM_BOOTLOADER_MODE_CHOICE
271	prompt "Platform bootloader mode configuration"
272	optional
273
274config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_RETENTION
275	bool "Bootloader mode support with boot mode retention API"
276	depends on RETENTION_BOOT_MODE && REBOOT
277	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
278
279config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_GPIO
280	bool "Bootloader mode support with GPIO pin trigger"
281	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
282endchoice # OPENTHREAD_PLATFORM_BOOTLOADER_MODE
283
284config OPENTHREAD_PLATFORM_BOOTLOADER_MODE
285	bool
286	help
287	  Platform bootloader mode support
288
289config OPENTHREAD_PLATFORM_NETIF
290	bool "Platform netif support"
291
292config OPENTHREAD_PLATFORM_UDP
293	bool "Platform UDP support"
294
295choice OPENTHREAD_POWER_SUPPLY_CHOICE
296	prompt "Power supply configuration"
297	default OPENTHREAD_POWER_SUPPLY_EXTERNAL
298
299config OPENTHREAD_POWER_SUPPLY_BATTERY
300	bool "OT_POWER_SUPPLY_BATTERY"
301
302config OPENTHREAD_POWER_SUPPLY_EXTERNAL
303	bool "OT_POWER_SUPPLY_EXTERNAL"
304
305config OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
306	bool "OT_POWER_SUPPLY_EXTERNAL_STABLE"
307
308config OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
309	bool "OT_POWER_SUPPLY_EXTERNAL_UNSTABLE"
310endchoice # OPENTHREAD_POWER_SUPPLY_CHOICE
311
312config OPENTHREAD_POWER_SUPPLY
313	string
314	prompt "Power supply configuration"
315	default "BATTERY" if OPENTHREAD_POWER_SUPPLY_BATTERY
316	default "EXTERNAL" if OPENTHREAD_POWER_SUPPLY_EXTERNAL
317	default "EXTERNAL_STABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
318	default "EXTERNAL_UNSTABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
319	default ""
320
321config OPENTHREAD_RADIO_STATS
322	bool "Support for Radio Statistics"
323
324config OPENTHREAD_RAW
325	bool "Raw Link support"
326
327config OPENTHREAD_REFERENCE_DEVICE
328	bool "Reference Device support"
329	help
330	  Enable Thread Certification reference device support in OpenThread stack
331
332config OPENTHREAD_SETTINGS_RAM
333	bool "Volatile-only storage of settings"
334
335config OPENTHREAD_SLAAC
336	bool "SLAAC support"
337
338config OPENTHREAD_SNTP_CLIENT
339	bool "SNTP Client support"
340
341config OPENTHREAD_SRP_ADV_PROXY
342	bool "SRP Server Advertising Proxy support"
343	depends on OPENTHREAD_SRP_SERVER
344	depends on OPENTHREAD_BORDER_ROUTING
345
346config OPENTHREAD_SRP_CLIENT
347	bool "SRP Client support"
348	select OPENTHREAD_ECDSA
349
350config OPENTHREAD_SRP_SERVER
351	bool "SRP Server support"
352	select OPENTHREAD_NETDATA_PUBLISHER
353	select OPENTHREAD_ECDSA
354
355config OPENTHREAD_TIME_SYNC
356	bool "The time synchronization service feature [EXPERIMENTAL]"
357	select EXPERIMENTAL
358
359config OPENTHREAD_TREL
360	bool "TREL radio link for Thread over Infrastructure feature"
361
362config OPENTHREAD_TX_BEACON_PAYLOAD
363	bool "TX beacon payload support"
364
365config OPENTHREAD_TX_QUEUE_STATISTICS
366	bool "TX queue statistics support"
367
368config OPENTHREAD_UDP_FORWARD
369	bool "UDP forward support"
370
371config OPENTHREAD_UPTIME
372	bool "Openthread uptime counter"
373	default y if OPENTHREAD_FTD
374
375config OPENTHREAD_VERHOEFF_CHECKSUM
376	bool "Verhoeff checksum"
377