1# Copyright (c) 2017 Linaro Limited
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig LWM2M
5	bool "OMA LwM2M protocol stack"
6	select COAP
7	select HTTP_PARSER_URL
8	select NET_SOCKETS
9	help
10	  This option adds logic for managing OMA LwM2M data
11
12if LWM2M
13
14module = LWM2M
15module-dep = LOG
16module-str = Log level for LwM2M library
17source "subsys/net/Kconfig.template.log_config.net"
18
19menu "Protocol versions"
20
21choice
22	prompt "LwM2M protocol version"
23	default LWM2M_VERSION_1_0
24	help
25	  Select which version of the LwM2M protocol is used
26
27config LWM2M_VERSION_1_0
28	bool "LwM2M version 1.0"
29	imply LWM2M_RW_OMA_TLV_SUPPORT
30
31config LWM2M_VERSION_1_1
32	bool "LwM2M version 1.1"
33	imply LWM2M_RW_CBOR_SUPPORT
34	imply ZCBOR
35
36endchoice # "LwM2M protocol version"
37
38choice
39	prompt "LwM2M Security object version"
40	default LWM2M_SECURITY_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0
41	default LWM2M_SECURITY_OBJECT_VERSION_1_1 if LWM2M_VERSION_1_1
42	help
43	  Select which version of the security object should be used.
44
45config LWM2M_SECURITY_OBJECT_VERSION_1_0
46	bool "Security object version 1.0"
47
48config LWM2M_SECURITY_OBJECT_VERSION_1_1
49	bool "Security object version 1.1"
50
51endchoice # "LwM2M Security object version"
52
53choice
54	prompt "LwM2M Server object version"
55	default LWM2M_SERVER_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0
56	default LWM2M_SERVER_OBJECT_VERSION_1_1 if LWM2M_VERSION_1_1
57	help
58	  Select which version of the Server object should be used.
59
60config LWM2M_SERVER_OBJECT_VERSION_1_0
61	bool "Server object version 1.0"
62
63config LWM2M_SERVER_OBJECT_VERSION_1_1
64	bool "Server object version 1.1"
65
66endchoice # "LwM2M Server object version"
67
68endmenu # "Protocol versions"
69
70menu "Engine features"
71
72config LWM2M_DTLS_SUPPORT
73	bool "DTLS support in the LwM2M client"
74
75
76config LWM2M_DNS_SUPPORT
77	bool "DNS support in the LwM2M client"
78	default y if DNS_RESOLVER
79
80config LWM2M_COAP_BLOCK_TRANSFER
81	bool "CoAP block transfer support for big outgoing LwM2M messages [EXPERIMENTAL]"
82	select EXPERIMENTAL
83	help
84	  LwM2M messages with a big body that exceed the block size will be split
85	  into blocks for sending.
86	  To append CoAP ETag option into outgoing block transfers, CONFIG_SYS_HASH_FUNC32 should
87	  be enabled.
88
89config LWM2M_CANCEL_OBSERVE_BY_PATH
90	bool "Use path matching as fallback for cancel-observe"
91	help
92	  Some ambiguous language in the LwM2M spec causes some LwM2M server
93	  implementations to implement cancel-observe by specifying the resource
94	  path rather than the token of the original observe request. Without
95	  this option, cancel-observe may not work properly when connecting to
96	  those servers.
97
98config LWM2M_QUEUE_MODE_ENABLED
99	bool "Queue Mode UDP binding"
100	help
101	  Set the transport binding to UDP with Queue Mode (UQ).
102
103config LWM2M_QUEUE_MODE_UPTIME
104	int "Specify time the LwM2M client should stay online in queue mode." if LWM2M_QUEUE_MODE_ENABLED
105	default 93
106	help
107	  This config specifies time (in seconds) the device should stay online
108	  after sending a message to the server. Note, that LwM2M specification
109	  recommends this to be CoAP MAX_TRANSMIT_WAIT parameter (which
110	  defaults to 93 seconds, see RFC 7252), it does not forbid other
111	  values though.
112
113config LWM2M_QUEUE_MODE_NO_MSG_BUFFERING
114	bool "Disable buffering notifications and messages on queue mode"
115	select EXPERIMENTAL
116	help
117	  Messages are sent right away instead of waiting for next registration update.
118	  This might not be supported on all servers.
119
120config LWM2M_TLS_SESSION_CACHING
121	bool "TLS session caching"
122	help
123	  Enabling this only when feature is supported in TLS library.
124
125config LWM2M_DTLS_CID
126	bool "DTLS Connection Identifier support"
127	default y if MBEDTLS_SSL_DTLS_CONNECTION_ID
128	help
129	  Request TLS stack to enable DTLS Connection identifier. This requires stack that support it
130	  and actual effect depends on the target server as well.
131
132config LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP
133	bool "Bootstrap support"
134	help
135	  Enabling this setting allows the RD client to support bootstrap mode.
136
137config LWM2M_ENGINE_ALWAYS_REPORT_OBJ_VERSION
138	bool "LwM2M engine always report object version"
139	help
140	  According to LwM2M specification v1.0 and v1.1, non-core object versions other than 1.0
141	  'must' be provided, while all other versions 'may' be provided. With specification v1.2,
142	  a client 'can always attach Object Version Information'. Enable this configuration to
143	  always report all object versions.
144
145choice
146prompt "Socket handling at idle state"
147
148config LWM2M_RD_CLIENT_CLOSE_SOCKET_AT_IDLE
149	bool "Close socket when entering RX idle"
150
151config LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE
152	bool "Stop polling on RX idle and close only when resuming"
153
154config  LWM2M_RD_CLIENT_STOP_POLLING_AT_IDLE
155	bool "Stop polling the socket on RX idle"
156
157config  LWM2M_RD_CLIENT_LISTEN_AT_IDLE
158	bool "Keep open and listening"
159
160endchoice
161
162choice
163	prompt "LwM2M Engine operation mode"
164	default LWM2M_TICKLESS if NET_SOCKETPAIR
165	default LWM2M_INTERVAL if !NET_SOCKETPAIR
166
167config LWM2M_TICKLESS
168	bool "Tickless operation mode"
169	depends on NET_SOCKETPAIR
170
171config LWM2M_INTERVAL
172	bool "Interval based polling mode"
173
174endchoice
175
176config LWM2M_SERVER_DEFAULT_SSID
177	int "Default server ssid when using the lwm2m-client. (used for access control)"
178	default 101
179	help
180	  When bootstrap is not enabled, access control needs a default owner.
181
182config LWM2M_PEER_PORT
183	int "LWM2M server port"
184	default 5683
185	help
186	  This is the default server port to connect to for LwM2M communication.
187
188config LWM2M_FIRMWARE_PORT_NONSECURE
189	int "LWM2M firmware server port non-secure"
190	default 5683
191	help
192	  This is the default server port to connect to for LwM2M firmware downloads over coap.
193
194config LWM2M_FIRMWARE_PORT_SECURE
195	int "LWM2M firmware server port secure"
196	default 5684
197	help
198	  This is the default server port to connect to for LwM2M firmware downloads over coaps.
199
200config LWM2M_SERVER_DEFAULT_PMIN
201	int "Default server record PMIN"
202	default 0
203	help
204	  Default minimum amount of time in seconds the client must wait
205	  between notifications.  If a resource has to be notified during this
206	  minimum time period, the notification must be sent after the time
207	  period expires.
208
209config LWM2M_SERVER_DEFAULT_PMAX
210	int "Default server record PMAX"
211	default 0
212	help
213	  Default maximum amount of time in seconds the client may wait
214	  between notifications.  When this time period expires a notification
215	  must be sent.
216
217config LWM2M_RD_CLIENT_MAX_RETRIES
218	int "Specify maximum number of registration retries"
219	default 5
220	help
221	  Specify maximum number of registration retries, before the application
222	  is notified about the network failure. Once application is notified,
223	  it's up to the application to handle this situation in a way
224	  appropriate for the specific use-case (for instance by waiting for
225	  LTE link to be re-established).
226
227config LWM2M_RESOURCE_DATA_CACHE_SUPPORT
228	bool "Resource Time series data cache support"
229	depends on (LWM2M_RW_SENML_JSON_SUPPORT || LWM2M_RW_SENML_CBOR_SUPPORT)
230	depends on (POSIX_TIMERS && RING_BUFFER)
231	help
232	  Enable time series data storage.
233	  Requires time() to provide current Unix timestamp.
234
235if LWM2M_RESOURCE_DATA_CACHE_SUPPORT
236config LWM2M_MAX_CACHED_RESOURCES
237	int "Maximum # of cached resources"
238	default 4
239	help
240	  This settings define how many different resources may have cache enabled.
241	  This affects static memory usage of engine.
242choice
243	prompt "Cache full policy"
244	default LWM2M_CACHE_DROP_OLDEST
245
246config LWM2M_CACHE_DROP_LATEST
247	bool "Drop new data when cache is full"
248
249config LWM2M_CACHE_DROP_OLDEST
250	bool "Drop oldest data when cache is full"
251
252endchoice
253
254endif # LWM2M_RESOURCE_DATA_CACHE_SUPPORT
255
256endmenu # "Engine features"
257
258menu "Memory and buffer size configuration"
259
260config LWM2M_ENGINE_STACK_SIZE
261	int "LWM2M engine stack size"
262	default 2560 if NET_LOG
263	default 2048
264	help
265	  Set the stack size for the LwM2M library engine (used for handling
266	  OBSERVE and NOTIFY events)
267
268config LWM2M_ENGINE_MAX_MESSAGES
269	int "LWM2M engine max. message object"
270	default 10
271	help
272	  Set the maximum message objects for the LwM2M library client
273
274config LWM2M_COAP_BLOCK_SIZE
275	int "LWM2M CoAP block-wise transfer size"
276	default 256
277	range 64 1024
278	help
279	  CoAP block size used by LwM2M when performing block-wise
280	  transfers. Possible values: 64, 128, 256, 512 and 1024.
281
282config LWM2M_ENGINE_MESSAGE_HEADER_SIZE
283	int "Room for CoAP header data"
284	default 48
285	range 24 128
286	help
287	  Extra room allocated to handle CoAP header data
288
289config LWM2M_COAP_MAX_MSG_SIZE
290	int "LWM2M CoAP maximum message size"
291	default LWM2M_COAP_BLOCK_SIZE
292	help
293	  CoAP message size used by LWM2M. Minimum is the block size used
294	  in blockwise transfers.
295
296config LWM2M_ENGINE_VALIDATION_BUFFER_SIZE
297	int "Size of the validation buffer for the incoming data"
298	default 64
299	help
300	  LwM2M will use the validation buffer during the write operation, to
301	  decode the resource value before validating it (applies for resources
302	  for which validation callback has been registered). Set this value to
303	  the maximum expected size of the resources that need to be validated
304	  (and thus have validation callback registered).
305	  Setting the validation buffer size to 0 disables validation support.
306
307config LWM2M_ENGINE_MAX_PENDING
308	int "LWM2M engine max. pending objects"
309	default 5
310	help
311	  Set the maximum pending objects for the LwM2M library client
312
313config LWM2M_ENGINE_MAX_REPLIES
314	int "LWM2M engine max. reply objects"
315	default 5
316	help
317	  Set the maximum reply objects for the LwM2M library client
318
319config LWM2M_ENGINE_MAX_OBSERVER
320	int "Maximum # of observable LwM2M resources"
321	default 10
322	range 5 200
323	help
324	  This value sets the maximum number of resources which can be
325	  added to the observe notification list.
326
327config LWM2M_RD_CLIENT_ENDPOINT_NAME_MAX_LENGTH
328	int "Maximum length of client endpoint name"
329	default 33
330	help
331	  Default: room for 32 hexadecimal digits (UUID) + NULL
332
333config LWM2M_SECURITY_KEY_SIZE
334	int "Buffer size of the security key resources"
335	default 16
336	help
337	  This setting establishes the size of the key (pre-shared / public)
338	  resources in the security object instances.
339
340config LWM2M_SECURITY_DTLS_TLS_CIPHERSUITE_MAX
341	int "Maximum # of DTLS/TLS ciphersuite resource instances"
342	default 5
343	range 0 20
344	depends on LWM2M_SECURITY_OBJECT_VERSION_1_1
345	help
346	  This setting sets the maximum number of the resource instances of
347	  a security object defined in LwM2M version 1.1. Affects the resource
348	  0/X/16, where X is the object instance number.
349
350config LWM2M_SECURITY_INSTANCE_COUNT
351	int "Maximum # of LwM2M Security object instances"
352	default 2 if LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP
353	default 1
354	range 1 10
355	help
356	  This setting establishes the total count of LwM2M Security instances
357	  available to the client.
358
359config LWM2M_SERVER_INSTANCE_COUNT
360	int "Maximum # of LwM2M Server object instances"
361	default 2 if LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP
362	default 1
363	range 1 10
364	help
365	  This setting establishes the total count of LwM2M Server instances
366	  available to the client (including: bootstrap and regular servers).
367
368if LWM2M_COAP_BLOCK_TRANSFER
369config LWM2M_COAP_ENCODE_BUFFER_SIZE
370	int "LwM2M CoAP buffer size for encoding the full message for block-wise transfer"
371	default 1024
372	help
373	  Size of buffers for serializing big LwM2M CoAP messages that need to be
374	  split into blocks for sending.
375
376config LWM2M_NUM_OUTPUT_BLOCK_CONTEXT
377	int "Maximum # of LwM2M block contexts used for outgoing messages"
378	default 3
379	help
380	  Maximum number of CoAP block contexts needed to split messages into blocks for
381	  sending. This limits the number of messages that need block transfer that can be
382	  handled at the same time.
383
384config LWM2M_LOG_ENCODE_BUFFER_ALLOCATIONS
385	bool "Log allocations of encode buffers for block wise transfer"
386	select MEM_SLAB_TRACE_MAX_UTILIZATION
387	help
388	  The allocation of encode buffers can be tracked to analyse the usage and
389	  to optimize the configuration of number of block contexts and indirectly
390	  the number of available encode buffers.
391endif # LWM2M_COAP_BLOCK_TRANSFER
392
393config LWM2M_NUM_BLOCK1_CONTEXT
394	int "Maximum # of LwM2M block1 contexts"
395	default 3
396	help
397	  This value sets up the maximum number of block1 contexts for
398	  CoAP block-wise transfer we can handle at the same time.
399
400config LWM2M_SWMGMT_PACKAGE_URI_LEN
401	int "Maximum size of the software management object's download URI string"
402	default 128
403
404config LWM2M_COMPOSITE_PATH_LIST_SIZE
405	int "Maximum # of composite read and send operation URL path"
406	default 6
407	help
408	  Define path list size for Composite Read and send operation.
409
410config LWM2M_DEVICE_ERROR_CODE_SETTINGS
411	bool "Use settings to store error codes across device resets"
412	depends on SETTINGS
413	help
414	  Store the device error code list in settings. Ensures error list can
415	  be transferred to LwM2M server even if the device is reset.
416
417config LWM2M_DEVICE_PWRSRC_MAX
418	int "Maximum # of device power source records"
419	default 5
420	range 1 20
421	help
422	  This value sets the maximum number of power source data that a device
423	  can store.  These are displayed via the "Device" object /3/0/6,
424	  /3/0/7 and /3/0/8 resources.
425
426config LWM2M_DEVICE_ERROR_CODE_MAX
427	int "Maximum # of device obj error codes to store"
428	default 10
429	range 1 20
430	help
431	  This value sets the maximum number of error codes that the device
432	  object will store before ignoring new values.
433
434config LWM2M_DEVICE_EXT_DEV_INFO_MAX
435	int "Maximum # of device obj external device info to store"
436	default 5
437	range 1 20
438	help
439	  This value sets the maximum number of external device info that the
440	  device object will store before ignoring new values.
441
442config LWM2M_NUM_ATTR
443	int "Maximum # of LwM2M attributes"
444	default 20
445	help
446	  This value sets up the maximum number of LwM2M attributes that
447	  we can handle at the same time.
448
449endmenu # "Memory and buffer size configuration"
450
451menu "Content format supports"
452config LWM2M_RW_OMA_TLV_SUPPORT
453	bool "TLV data format"
454	help
455	  Include support for write / parse TLV data
456
457config LWM2M_RW_JSON_SUPPORT
458	bool "support for JSON writer"
459	depends on JSON_LIBRARY
460	help
461	  Include support for writing JSON data
462
463
464config LWM2M_RW_SENML_JSON_SUPPORT
465	bool "SENML JSON data format"
466	depends on BASE64
467	depends on JSON_LIBRARY
468	help
469	  Include support for write / parse SENML JSON data
470
471config LWM2M_RW_CBOR_SUPPORT
472	bool "support for CBOR writer"
473	depends on ZCBOR
474	help
475	  Include support for writing CBOR data
476
477config LWM2M_RW_SENML_CBOR_SUPPORT
478	bool "support for SenML CBOR writer"
479	depends on ZCBOR
480	depends on ZCBOR_CANONICAL
481	help
482	  Include support for writing SenML CBOR data
483
484config LWM2M_RW_SENML_CBOR_RECORDS
485	int "Maximum # of SenML records packed into a CBOR binary"
486	depends on LWM2M_RW_SENML_CBOR_SUPPORT
487	default 30
488	help
489	  The CBOR library requires you to set an upper limit for the records when encoder
490	  and decoder do get generated.
491
492endmenu # "Content format supports"
493
494config LWM2M_ENGINE_DEFAULT_LIFETIME
495	int "LWM2M engine default server connection lifetime"
496	default 30
497	range 15 $(UINT32_MAX)
498	help
499	  Set the default lifetime (in seconds) for the LwM2M library engine.
500	  This is also a minimum lifetime that client accepts. If server sets lifetime
501	  less than this value, client automatically raises it.
502
503config LWM2M_UPDATE_PERIOD
504	int "LwM2M engine update period"
505	default 0
506	range 0 $(UINT32_MAX)
507	help
508	  Time period after the previous update or registration when to send the next update message.
509	  This allows modifying lifetime without affecting the update period.
510	  Set to zero, to allow LWM2M_SECONDS_TO_UPDATE_EARLY and lifetime to control when to
511	  send the update. When both values are set, smallest period will be used.
512
513config LWM2M_SECONDS_TO_UPDATE_EARLY
514	int "LWM2M Registration Update transmission time before timeout"
515	default 10
516	range 1 $(UINT32_MAX)
517	help
518	  Time in seconds before the registration timeout, when the LWM2M
519	  Registration Update is sent by the engine. In networks with large
520	  round trip times (like NB-IoT), it might be needed to set this value
521	  higher, in order to allow the response to arrive before timeout.
522
523config LWM2M_SHELL
524	bool "LwM2M shell utilities"
525	select SHELL
526	select CRC
527	help
528	  Activate shell module that provides LwM2M commands like
529	  send to the console.
530
531config LWM2M_ACCESS_CONTROL_ENABLE
532	bool "Access control support (ID 2)"
533	help
534	  Enabling this setting registers the access control object.
535
536config LWM2M_ACCESS_CONTROL_INSTANCE_COUNT
537	int "Maximum # of LwM2M Access Control object instances" if LWM2M_ACCESS_CONTROL_ENABLE
538	default 50
539	help
540	  This setting establishes the total count of LwM2M Access Control instances
541	  available to the client.
542
543config LWM2M_CONN_MON_OBJ_SUPPORT
544	bool "Connectivity Monitoring object support (ID 4)"
545	help
546	  Include support for LwM2M Connectivity Monitoring Object
547
548if LWM2M_CONN_MON_OBJ_SUPPORT
549choice
550	prompt "LwM2M Connectivity Monitor object version"
551	default LWM2M_CONNMON_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0
552	default LWM2M_CONNMON_OBJECT_VERSION_1_2 if LWM2M_VERSION_1_1
553	help
554	  Select Which version of the Connectivity Monitor object should be used.
555
556config LWM2M_CONNMON_OBJECT_VERSION_1_0
557	bool "Connectivity monitor object version 1.0"
558
559config LWM2M_CONNMON_OBJECT_VERSION_1_2
560	bool "Connectivity monitor object version 1.2"
561
562config LWM2M_CONNMON_OBJECT_VERSION_1_3
563	bool "Connectivity monitor object version 1.3"
564
565endchoice
566
567config LWM2M_CONN_MON_BEARER_MAX
568	int "Maximum # of available network bearer resource instances"
569	default 1
570	help
571	  This value sets the maximum number of available network bearer
572	  resource instances.  These are displayed via the
573	  "Connection Monitoring" object /4/0/1.
574
575config LWM2M_CONN_MON_APN_MAX
576	int "Maximum # of APN resource instances"
577	default 1
578	help
579	  This value sets the maximum number of APN resource instances.
580	  These are displayed via the "Connection Monitoring" object /4/0/7.
581endif # LWM2M_CONN_MON_OBJ_SUPPORT
582
583config LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
584	bool "Firmware Update object support (ID 5)"
585	default y
586	help
587	  Include support for LwM2M Firmware Update Object
588
589if LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
590config LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT_MULTIPLE
591	bool "Support multiple firmware update objects [EXPERIMENTAL]"
592	select EXPERIMENTAL
593	help
594	  Support multiple instances of LwM2M Firmware Update Object
595
596config LWM2M_FIRMWARE_UPDATE_OBJ_INSTANCE_COUNT
597	int "Maximum # of LwM2M Firmware update object instances"
598	default 1
599	help
600	  This setting establishes the total count of LwM2M Firmware update
601	  object instances available to the client.
602
603config LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT
604	bool "Firmware Update object pull support"
605	default y
606	depends on (HTTP_PARSER || HTTP_PARSER_URL)
607	help
608	  Include support for pulling a file from a remote server via
609	  block transfer and "FIRMWARE PACKAGE URI" resource.  This option
610	  adds another UDP context and packet handling.
611
612config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_SUPPORT
613	bool "Firmware Update object pull via CoAP-CoAP/HTTP proxy support"
614	depends on LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT
615	help
616	  Include support for pulling firmware file via a CoAP-CoAP/HTTP proxy.
617
618config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_ADDR
619	string "CoAP proxy network address"
620	depends on LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_SUPPORT
621	help
622	  Network address of the CoAP proxy server.
623
624endif # LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
625
626config LWM2M_LOCATION_OBJ_SUPPORT
627	bool "Location object support (ID 6)"
628	help
629	  Include support for LwM2M Location Object
630
631config LWM2M_SWMGMT_OBJ_SUPPORT
632	bool "Software management object support (ID 9)"
633	help
634	  Include support for LwM2M Software Management Object.
635
636if LWM2M_SWMGMT_OBJ_SUPPORT
637config LWM2M_SWMGMT_MAX_INSTANCE_COUNT
638	int "Maximum # of object instances"
639	depends on LWM2M_SWMGMT_OBJ_SUPPORT
640	default 1
641
642config LWM2M_SWMGMT_PACKAGE_NAME_LEN
643	int "Maximum size of the software management object's name string"
644	depends on LWM2M_SWMGMT_OBJ_SUPPORT
645	default 64
646
647config LWM2M_SWMGMT_PACKAGE_VERSION_LEN
648	int "Maximum size of the software management object's version string"
649	depends on LWM2M_SWMGMT_OBJ_SUPPORT
650	default 64
651endif # LWM2M_SWMGMT_OBJ_SUPPORT
652
653config LWM2M_PORTFOLIO_OBJ_SUPPORT
654	bool "LwM2M Portfolio object ID support (ID 16)"
655	help
656	  Include support for LwM2M Portfolio Object.
657
658config LWM2M_BINARYAPPDATA_OBJ_SUPPORT
659	bool "LwM2M BinaryAppDataContainer Object (ID 19)"
660	help
661	  Include support for LwM2M BinaryAppDataContainer Object
662
663config LWM2M_EVENT_LOG_OBJ_SUPPORT
664	bool "LwM2M Event Log Object (ID 20)"
665	help
666	  Include support for LwM2M Event Log Object
667
668config LWM2M_GATEWAY_OBJ_SUPPORT
669	bool "LwM2M Gateway Object (ID 25) [EXPERIMENTAL]"
670	select EXPERIMENTAL
671
672if LWM2M_GATEWAY_OBJ_SUPPORT
673
674config LWM2M_GATEWAY_MAX_INSTANCES
675	int "Maximum number of bridged devices"
676	default 1
677	help
678	  This setting establishes the total count of LwM2M Gateway
679	  instances available to the LwM2M client.
680
681config LWM2M_GATEWAY_DEFAULT_DEVICE_ID
682	string "Identifies the IoT Device bridged to the LwM2M Gateway"
683	default "Node"
684
685config LWM2M_GATEWAY_DEVICE_ID_MAX_STR_SIZE
686	int "Maximum string size for device ID"
687	default 32
688
689config LWM2M_GATEWAY_DEFAULT_DEVICE_PREFIX
690	string "Used for access to LwM2M Objects of this IoT Device"
691	default "n"
692	help
693	  Defaults are n0, n1, n2, ..., n<max instances - 1>
694
695config LWM2M_GATEWAY_PREFIX_MAX_STR_SIZE
696	int "Max string size for prefix"
697	default 32
698
699config LWM2M_GATEWAY_DEFAULT_IOT_DEVICE_OBJECTS
700	string "Contains the Objects and Object Instances exposed by Gateway"
701	default ""
702	help
703	  It uses the same CoreLnk format as Registration Interface.
704	  This must be populated by Gateway.
705	  Example:
706	    </3>;ver=1.0,</3/0>,</4>;ver=1.0,</4/0>,
707	    </5>;ver=1.0,</5/0>,</9>;ver=1.0,</9/0>,</3303/0>
708
709config LWM2M_GATEWAY_IOT_DEVICE_OBJECTS_MAX_STR_SIZE
710	int "Maximum string size for IoT device objects"
711	default 128
712
713endif # LWM2M_GATEWAY_OBJ_SUPPORT
714
715source "subsys/net/lib/lwm2m/Kconfig.ipso"
716
717source "subsys/net/lib/lwm2m/Kconfig.ucifi"
718
719menu "Deprecated flags"
720config LWM2M_RD_CLIENT_SUPPORT
721	bool "DEPRECATED: client bootstrap/registration state machine"
722	select DEPRECATED
723	help
724	  Deprecated flag. RD state machine is always part of engine. It cannot be disabled.
725endmenu # "Deprecated flags"
726
727endif # LWM2M
728