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 LWM2M_VERSION
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 ZVFS_EVENTFD_MAX > 1
165	default LWM2M_INTERVAL
166
167config LWM2M_TICKLESS
168	bool "Tickless operation mode"
169	depends on ZVFS_EVENTFD
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 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 512
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	  When adjusting the value, ensure that LWM2M_COAP_MAX_MSG_SIZE is large enough
282	  to fit all CoAP headers and full block size.
283
284config LWM2M_COAP_MAX_MSG_SIZE
285	int "LWM2M CoAP maximum message size"
286	default 1232 if !LWM2M_DTLS_SUPPORT
287	default 1195 if LWM2M_DTLS_SUPPORT && !LWM2M_DTLS_CID
288	default 1187 if LWM2M_DTLS_SUPPORT && LWM2M_DTLS_CID
289	help
290	  CoAP message size used by LWM2M. Default is the maximum
291	  packet size for IPv6 network (MTU(1280)-IPv6(40)-UDP(8)-DTLS(29..53)).
292	  If the network has a smaller MTU, this value should be adjusted accordingly.
293	  If CoAP block-wise transfer is enabled, this value should be larger than
294	  the block size and estimated CoAP header sizes.
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
449config LWM2M_MAX_NOTIFIED_NUMERICAL_RES_TRACKED
450	int "Maximum # of resources that can track last notified value for gt/lt/st"
451	default 4
452	help
453	  This value specifies the maximum number of numerical LwM2M resources
454	  that can track the last notified resource value for gt/lt/st attribute
455	  handling.
456
457endmenu # "Memory and buffer size configuration"
458
459menu "Content format supports"
460config LWM2M_RW_OMA_TLV_SUPPORT
461	bool "TLV data format"
462	help
463	  Include support for write / parse TLV data
464
465config LWM2M_RW_JSON_SUPPORT
466	bool "support for JSON writer"
467	depends on JSON_LIBRARY
468	help
469	  Include support for writing JSON data
470
471
472config LWM2M_RW_SENML_JSON_SUPPORT
473	bool "SENML JSON data format"
474	depends on BASE64
475	depends on JSON_LIBRARY
476	help
477	  Include support for write / parse SENML JSON data
478
479config LWM2M_RW_CBOR_SUPPORT
480	bool "support for CBOR writer"
481	depends on ZCBOR
482	help
483	  Include support for writing CBOR data
484
485config LWM2M_RW_SENML_CBOR_SUPPORT
486	bool "support for SenML CBOR writer"
487	depends on ZCBOR
488	depends on ZCBOR_CANONICAL
489	help
490	  Include support for writing SenML CBOR data
491
492config LWM2M_RW_SENML_CBOR_RECORDS
493	int "Maximum # of SenML records packed into a CBOR binary"
494	depends on LWM2M_RW_SENML_CBOR_SUPPORT
495	default 30
496	help
497	  The CBOR library requires you to set an upper limit for the records when encoder
498	  and decoder do get generated.
499
500endmenu # "Content format supports"
501
502config LWM2M_ENGINE_DEFAULT_LIFETIME
503	int "LWM2M engine default server connection lifetime"
504	default 30
505	range 15 $(UINT32_MAX)
506	help
507	  Set the default lifetime (in seconds) for the LwM2M library engine.
508	  This is also a minimum lifetime that client accepts. If server sets lifetime
509	  less than this value, client automatically raises it.
510
511config LWM2M_UPDATE_PERIOD
512	int "LwM2M engine update period"
513	default 0
514	range 0 $(UINT32_MAX)
515	help
516	  Time period after the previous update or registration when to send the next update message.
517	  This allows modifying lifetime without affecting the update period.
518	  Set to zero, to allow LWM2M_SECONDS_TO_UPDATE_EARLY and lifetime to control when to
519	  send the update. When both values are set, smallest period will be used.
520
521config LWM2M_SECONDS_TO_UPDATE_EARLY
522	int "LWM2M Registration Update transmission time before timeout"
523	default 10
524	range 1 $(UINT32_MAX)
525	help
526	  Time in seconds before the registration timeout, when the LWM2M
527	  Registration Update is sent by the engine. In networks with large
528	  round trip times (like NB-IoT), it might be needed to set this value
529	  higher, in order to allow the response to arrive before timeout.
530
531config LWM2M_SERVER_BOOTSTRAP_ON_FAIL
532	bool "Bootstrap on Registration Failure"
533	default y
534	help
535	  If set to true, the LwM2M client will attempt to re-bootstrap if the registration fails.
536
537config LWM2M_SHELL
538	bool "LwM2M shell utilities"
539	select SHELL
540	select CRC
541	help
542	  Activate shell module that provides LwM2M commands like
543	  send to the console.
544
545config LWM2M_ACCESS_CONTROL_ENABLE
546	bool "Access control support (ID 2)"
547	help
548	  Enabling this setting registers the access control object.
549
550config LWM2M_ACCESS_CONTROL_INSTANCE_COUNT
551	int "Maximum # of LwM2M Access Control object instances" if LWM2M_ACCESS_CONTROL_ENABLE
552	default 50
553	help
554	  This setting establishes the total count of LwM2M Access Control instances
555	  available to the client.
556
557config LWM2M_CONN_MON_OBJ_SUPPORT
558	bool "Connectivity Monitoring object support (ID 4)"
559	help
560	  Include support for LwM2M Connectivity Monitoring Object
561
562if LWM2M_CONN_MON_OBJ_SUPPORT
563choice
564	prompt "LwM2M Connectivity Monitor object version"
565	default LWM2M_CONNMON_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0
566	default LWM2M_CONNMON_OBJECT_VERSION_1_2 if LWM2M_VERSION_1_1
567	help
568	  Select Which version of the Connectivity Monitor object should be used.
569
570config LWM2M_CONNMON_OBJECT_VERSION_1_0
571	bool "Connectivity monitor object version 1.0"
572
573config LWM2M_CONNMON_OBJECT_VERSION_1_2
574	bool "Connectivity monitor object version 1.2"
575
576config LWM2M_CONNMON_OBJECT_VERSION_1_3
577	bool "Connectivity monitor object version 1.3"
578
579endchoice
580
581config LWM2M_CONN_MON_BEARER_MAX
582	int "Maximum # of available network bearer resource instances"
583	default 1
584	help
585	  This value sets the maximum number of available network bearer
586	  resource instances.  These are displayed via the
587	  "Connection Monitoring" object /4/0/1.
588
589config LWM2M_CONN_MON_APN_MAX
590	int "Maximum # of APN resource instances"
591	default 1
592	help
593	  This value sets the maximum number of APN resource instances.
594	  These are displayed via the "Connection Monitoring" object /4/0/7.
595endif # LWM2M_CONN_MON_OBJ_SUPPORT
596
597config LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
598	bool "Firmware Update object support (ID 5)"
599	default y
600	help
601	  Include support for LwM2M Firmware Update Object
602
603if LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
604config LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT_MULTIPLE
605	bool "Support multiple firmware update objects [EXPERIMENTAL]"
606	select EXPERIMENTAL
607	help
608	  Support multiple instances of LwM2M Firmware Update Object
609
610config LWM2M_FIRMWARE_UPDATE_OBJ_INSTANCE_COUNT
611	int "Maximum # of LwM2M Firmware update object instances"
612	default 1
613	help
614	  This setting establishes the total count of LwM2M Firmware update
615	  object instances available to the client.
616
617config LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT
618	bool "Firmware Update object pull support"
619	default y
620	depends on (HTTP_PARSER || HTTP_PARSER_URL)
621	help
622	  Include support for pulling a file from a remote server via
623	  block transfer and "FIRMWARE PACKAGE URI" resource.  This option
624	  adds another UDP context and packet handling.
625
626config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_SUPPORT
627	bool "Firmware Update object pull via CoAP-CoAP/HTTP proxy support"
628	depends on LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT
629	help
630	  Include support for pulling firmware file via a CoAP-CoAP/HTTP proxy.
631
632config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_ADDR
633	string "CoAP proxy network address"
634	depends on LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_SUPPORT
635	help
636	  Network address of the CoAP proxy server.
637
638endif # LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
639
640config LWM2M_LOCATION_OBJ_SUPPORT
641	bool "Location object support (ID 6)"
642	help
643	  Include support for LwM2M Location Object
644
645config LWM2M_SWMGMT_OBJ_SUPPORT
646	bool "Software management object support (ID 9)"
647	help
648	  Include support for LwM2M Software Management Object.
649
650if LWM2M_SWMGMT_OBJ_SUPPORT
651config LWM2M_SWMGMT_MAX_INSTANCE_COUNT
652	int "Maximum # of object instances"
653	depends on LWM2M_SWMGMT_OBJ_SUPPORT
654	default 1
655
656config LWM2M_SWMGMT_PACKAGE_NAME_LEN
657	int "Maximum size of the software management object's name string"
658	depends on LWM2M_SWMGMT_OBJ_SUPPORT
659	default 64
660
661config LWM2M_SWMGMT_PACKAGE_VERSION_LEN
662	int "Maximum size of the software management object's version string"
663	depends on LWM2M_SWMGMT_OBJ_SUPPORT
664	default 64
665endif # LWM2M_SWMGMT_OBJ_SUPPORT
666
667config LWM2M_PORTFOLIO_OBJ_SUPPORT
668	bool "LwM2M Portfolio object ID support (ID 16)"
669	help
670	  Include support for LwM2M Portfolio Object.
671
672config LWM2M_BINARYAPPDATA_OBJ_SUPPORT
673	bool "LwM2M BinaryAppDataContainer Object (ID 19)"
674	help
675	  Include support for LwM2M BinaryAppDataContainer Object
676
677if LWM2M_BINARYAPPDATA_OBJ_SUPPORT
678config LWM2M_BINARYAPPDATA_INSTANCE_COUNT
679	int "Maximum # of BinaryAppDataContainer object instances"
680	default 2
681	range 1 10
682	help
683	  This setting establishes the total count of BinaryAppDataContainer
684	  instances available to the client.
685
686config LWM2M_BINARYAPPDATA_DATA_INSTANCE_COUNT
687	int "Maximum # of BinaryAppDataContainer data resource instances"
688	default 2
689	range 1 10
690	help
691	  This setting establishes the total count of BinaryAppDataContainer
692	  data resource instances available to the client.
693endif # LWM2M_BINARYAPPDATA_OBJ_SUPPORT
694
695config LWM2M_EVENT_LOG_OBJ_SUPPORT
696	bool "LwM2M Event Log Object (ID 20)"
697	help
698	  Include support for LwM2M Event Log Object
699
700config LWM2M_GATEWAY_OBJ_SUPPORT
701	bool "LwM2M Gateway Object (ID 25) [EXPERIMENTAL]"
702	select EXPERIMENTAL
703
704if LWM2M_GATEWAY_OBJ_SUPPORT
705
706config LWM2M_GATEWAY_MAX_INSTANCES
707	int "Maximum number of bridged devices"
708	default 1
709	help
710	  This setting establishes the total count of LwM2M Gateway
711	  instances available to the LwM2M client.
712
713config LWM2M_GATEWAY_DEFAULT_DEVICE_ID
714	string "Identifies the IoT Device bridged to the LwM2M Gateway"
715	default "Node"
716
717config LWM2M_GATEWAY_DEVICE_ID_MAX_STR_SIZE
718	int "Maximum string size for device ID"
719	default 32
720
721config LWM2M_GATEWAY_DEFAULT_DEVICE_PREFIX
722	string "Used for access to LwM2M Objects of this IoT Device"
723	default "n"
724	help
725	  Defaults are n0, n1, n2, ..., n<max instances - 1>
726
727config LWM2M_GATEWAY_PREFIX_MAX_STR_SIZE
728	int "Max string size for prefix"
729	default 32
730
731config LWM2M_GATEWAY_DEFAULT_IOT_DEVICE_OBJECTS
732	string "Contains the Objects and Object Instances exposed by Gateway"
733	default ""
734	help
735	  It uses the same CoreLnk format as Registration Interface.
736	  This must be populated by Gateway.
737	  Example:
738	    </3>;ver=1.0,</3/0>,</4>;ver=1.0,</4/0>,
739	    </5>;ver=1.0,</5/0>,</9>;ver=1.0,</9/0>,</3303/0>
740
741config LWM2M_GATEWAY_IOT_DEVICE_OBJECTS_MAX_STR_SIZE
742	int "Maximum string size for IoT device objects"
743	default 128
744
745endif # LWM2M_GATEWAY_OBJ_SUPPORT
746
747source "subsys/net/lib/lwm2m/Kconfig.ipso"
748
749source "subsys/net/lib/lwm2m/Kconfig.ucifi"
750
751endif # LWM2M
752