| # Copyright (c) 2017 Linaro Limited |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menuconfig LWM2M |
| bool "OMA LWM2M protocol stack" |
| select COAP |
| select HTTP_PARSER_URL |
| select NET_SOCKETS |
| select NET_SOCKETS_POSIX_NAMES |
| help |
| This option adds logic for managing OMA LWM2M data |
| |
| if LWM2M |
| |
| module = LWM2M |
| module-dep = LOG |
| module-str = Log level for LWM2M library |
| source "subsys/net/Kconfig.template.log_config.net" |
| |
| choice |
| prompt "LwM2M protocol version" |
| default LWM2M_VERSION_1_0 |
| help |
| Select which version of the LwM2M protocol is used |
| |
| config LWM2M_VERSION_1_0 |
| bool "LwM2M version 1.0" |
| imply LWM2M_RW_OMA_TLV_SUPPORT |
| |
| config LWM2M_VERSION_1_1 |
| bool "LwM2M version 1.1" |
| imply LWM2M_RW_CBOR_SUPPORT |
| imply ZCBOR |
| |
| endchoice |
| |
| config LWM2M_SHELL |
| bool "LwM2M shell utilities" |
| select SHELL |
| help |
| Activate shell module that provides LwM2M commands like |
| send to the console. |
| |
| config LWM2M_DTLS_SUPPORT |
| bool "DTLS support in the LwM2M client" |
| |
| choice |
| prompt "LwM2M Security object version" |
| default LWM2M_SECURITY_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0 |
| default LWM2M_SECURITY_OBJECT_VERSION_1_1 if LWM2M_VERSION_1_1 |
| help |
| Select which version of the security object should be used. |
| |
| config LWM2M_SECURITY_OBJECT_VERSION_1_0 |
| bool "Security object version 1.0" |
| |
| config LWM2M_SECURITY_OBJECT_VERSION_1_1 |
| bool "Security object version 1.1" |
| |
| endchoice |
| |
| choice |
| prompt "LwM2M Server object version" |
| default LWM2M_SERVER_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0 |
| default LWM2M_SERVER_OBJECT_VERSION_1_1 if LWM2M_VERSION_1_1 |
| help |
| Select which version of the Server object should be used. |
| |
| config LWM2M_SERVER_OBJECT_VERSION_1_0 |
| bool "Server object version 1.0" |
| |
| config LWM2M_SERVER_OBJECT_VERSION_1_1 |
| bool "Server object version 1.1" |
| |
| endchoice |
| |
| config LWM2M_DNS_SUPPORT |
| bool "DNS support in the LWM2M client" |
| default y if DNS_RESOLVER |
| |
| config LWM2M_ENGINE_STACK_SIZE |
| int "LWM2M engine stack size" |
| default 2560 if NET_LOG |
| default 2048 |
| help |
| Set the stack size for the LWM2M library engine (used for handling |
| OBSERVE and NOTIFY events) |
| |
| config LWM2M_ENGINE_MAX_MESSAGES |
| int "LWM2M engine max. message object" |
| default 10 |
| help |
| Set the maximum message objects for the LWM2M library client |
| |
| config LWM2M_COAP_BLOCK_SIZE |
| int "LWM2M CoAP block-wise transfer size" |
| default 256 |
| range 64 1024 |
| help |
| CoAP block size used by LWM2M when performing block-wise |
| transfers. Possible values: 64, 128, 256, 512 and 1024. |
| |
| config LWM2M_ENGINE_MESSAGE_HEADER_SIZE |
| int "Room for CoAP header data" |
| default 48 |
| range 24 128 |
| help |
| Extra room allocated to handle CoAP header data |
| |
| config LWM2M_COAP_MAX_MSG_SIZE |
| int "LWM2M CoAP maximum message size" |
| default LWM2M_COAP_BLOCK_SIZE |
| help |
| CoAP message size used by LWM2M. Minimum is the block size used |
| in blockwise transfers. |
| |
| config LWM2M_ENGINE_VALIDATION_BUFFER_SIZE |
| int "Size of the validation buffer for the incoming data" |
| default 64 |
| help |
| LwM2M will use the validation buffer during the write operation, to |
| decode the resource value before validating it (applies for resources |
| for which validation callback has been registered). Set this value to |
| the maximum expected size of the resources that need to be validated |
| (and thus have validation callback registered). |
| Setting the validation buffer size to 0 disables validation support. |
| |
| config LWM2M_ENGINE_MAX_PENDING |
| int "LWM2M engine max. pending objects" |
| default 5 |
| help |
| Set the maximum pending objects for the LWM2M library client |
| |
| config LWM2M_ENGINE_MAX_REPLIES |
| int "LWM2M engine max. reply objects" |
| default 5 |
| help |
| Set the maximum reply objects for the LWM2M library client |
| |
| config LWM2M_ENGINE_MAX_OBSERVER |
| int "Maximum # of observable LWM2M resources" |
| default 10 |
| range 5 200 |
| help |
| This value sets the maximum number of resources which can be |
| added to the observe notification list. |
| |
| config LWM2M_CANCEL_OBSERVE_BY_PATH |
| bool "Use path matching as fallback for cancel-observe" |
| help |
| Some ambiguous language in the LwM2M spec causes some LwM2M server |
| implementations to implement cancel-observe by specifying the resource |
| path rather than the token of the original observe request. Without |
| this option, cancel-observe may not work properly when connecting to |
| those servers. |
| |
| config LWM2M_ENGINE_DEFAULT_LIFETIME |
| int "LWM2M engine default server connection lifetime" |
| default 30 |
| range 15 4294967295 |
| help |
| Set the default lifetime (in seconds) for the LWM2M library engine |
| |
| config LWM2M_SECONDS_TO_UPDATE_EARLY |
| int "LWM2M Registration Update transmission time before timeout" |
| default 6 |
| range 1 4294967295 |
| help |
| Time in seconds before the registration timeout, when the LWM2M |
| Registration Update is sent by the engine. In networks with large |
| round trip times (like NB-IoT), it might be needed to set this value |
| higher, in order to allow the response to arrive before timeout. |
| |
| config LWM2M_QUEUE_MODE_ENABLED |
| bool "Queue Mode UDP binding" |
| help |
| Set the transport binding to UDP with Queue Mode (UQ). |
| |
| config LWM2M_QUEUE_MODE_UPTIME |
| int "Specify time the LWM2M client should stay online in queue mode." |
| default 93 |
| help |
| This config specifies time (in seconds) the device should stay online |
| after sending a message to the server. Note, that LWM2M specification |
| recommends this to be CoAP MAX_TRANSMIT_WAIT parameter (which |
| defaults to 93 seconds, see RFC 7252), it does not forbid other |
| values though. |
| |
| config LWM2M_TLS_SESSION_CACHING |
| bool "TLS session caching" |
| help |
| Enabling this only when feature is supported in TLS library. |
| |
| config LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE |
| bool "Socket close is skipped at RX_ON_IDLE state" |
| depends on LWM2M_RD_CLIENT_SUPPORT |
| help |
| This config suspend socket handler which skip socket polling process. |
| |
| config LWM2M_RD_CLIENT_SUPPORT |
| bool "support for LWM2M client bootstrap/registration state machine" |
| default y |
| help |
| Client will use registration state machine to locate and connect to |
| LWM2M servers (including bootstrap server support) |
| |
| config LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP |
| bool "Bootstrap support" |
| help |
| Enabling this setting allows the RD client to support bootstrap mode. |
| |
| config LWM2M_RD_CLIENT_ENDPOINT_NAME_MAX_LENGTH |
| int "Maximum length of client endpoint name" |
| depends on LWM2M_RD_CLIENT_SUPPORT |
| default 33 |
| help |
| Default: room for 32 hexadecimal digits (UUID) + NULL |
| |
| config LWM2M_RD_CLIENT_MAX_RETRIES |
| int "Specify maximum number of registration retries" |
| default 5 |
| help |
| Specify maximum number of registration retries, before the application |
| is notified about the network failure. Once application is notified, |
| it's up to the application to handle this situation in a way |
| appropriate for the specific use-case (for instance by waiting for |
| LTE link to be re-established). |
| |
| config LWM2M_ACCESS_CONTROL_ENABLE |
| bool "Access control support" |
| help |
| Enabling this setting registers the access control object (obj_id 2). |
| |
| config LWM2M_ACCESS_CONTROL_INSTANCE_COUNT |
| int "Maximum # of LWM2M Access Control object instances" |
| default 50 |
| help |
| This setting establishes the total count of LWM2M Access Control instances |
| available to the client. |
| |
| config LWM2M_SERVER_DEFAULT_SSID |
| int "Default server ssid when using the lwm2m-client. (used for access control)" |
| default 101 |
| help |
| When bootstrap is not enabled, access control needs a default owner. |
| |
| config LWM2M_PEER_PORT |
| int "LWM2M server port" |
| depends on LWM2M_RD_CLIENT_SUPPORT |
| default 5683 |
| help |
| This is the default server port to connect to for LWM2M communication. |
| |
| config LWM2M_FIRMWARE_PORT_NONSECURE |
| int "LWM2M firmware server port non-secure" |
| default 5683 |
| help |
| This is the default server port to connect to for LwM2M firmware downloads over coap. |
| |
| config LWM2M_FIRMWARE_PORT_SECURE |
| int "LWM2M firmware server port secure" |
| default 5684 |
| help |
| This is the default server port to connect to for LwM2M firmware downloads over coaps. |
| |
| config LWM2M_SECURITY_INSTANCE_COUNT |
| int "Maximum # of LWM2M Security object instances" |
| default 2 if LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP |
| default 1 |
| range 1 10 |
| help |
| This setting establishes the total count of LWM2M Security instances |
| available to the client. |
| |
| config LWM2M_SECURITY_KEY_SIZE |
| int "Buffer size of the security key resources" |
| default 16 |
| range 16 256 |
| help |
| This setting establishes the size of the key (pre-shared / public) |
| resources in the security object instances. |
| |
| config LWM2M_SECURITY_DTLS_TLS_CIPHERSUITE_MAX |
| int "Maximum # of DTLS/TLS ciphersuite resource instances" |
| default 5 |
| range 0 20 |
| depends on LWM2M_SECURITY_OBJECT_VERSION_1_1 |
| help |
| This setting sets the maximum number of the resource instances of |
| a security object defined in LWM2M version 1.1. Affects the resource |
| 0/X/16, where X is the object instance number. |
| |
| config LWM2M_SERVER_DEFAULT_PMIN |
| int "Default server record PMIN" |
| default 0 |
| help |
| Default minimum amount of time in seconds the client must wait |
| between notifications. If a resource has to be notified during this |
| minimum time period, the notification must be sent after the time |
| period expires. |
| |
| config LWM2M_SERVER_DEFAULT_PMAX |
| int "Default server record PMAX" |
| default 0 |
| help |
| Default maximum amount of time in seconds the client may wait |
| between notifications. When this time period expires a notification |
| must be sent. |
| |
| config LWM2M_SERVER_INSTANCE_COUNT |
| int "Maximum # of LWM2M Server object instances" |
| default 2 if LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP |
| default 1 |
| range 1 10 |
| help |
| This setting establishes the total count of LWM2M Server instances |
| available to the client (including: bootstrap and regular servers). |
| |
| config LWM2M_CONN_MON_OBJ_SUPPORT |
| bool "Connectivity Monitoring object support" |
| help |
| Include support for LWM2M Connectivity Monitoring Object (ID 4) |
| |
| choice |
| prompt "LwM2M Connectivity Monitor object version" |
| default LWM2M_CONNMON_OBJECT_VERSION_1_0 if LWM2M_VERSION_1_0 |
| default LWM2M_CONNMON_OBJECT_VERSION_1_2 if LWM2M_VERSION_1_1 |
| depends on LWM2M_CONN_MON_OBJ_SUPPORT |
| help |
| Select Which version of the Connectivity Monitor object should be used. |
| |
| config LWM2M_CONNMON_OBJECT_VERSION_1_0 |
| bool "Connectivity monitor object version 1.0" |
| |
| config LWM2M_CONNMON_OBJECT_VERSION_1_2 |
| bool "Connectivity monitor object version 1.2" |
| |
| endchoice |
| |
| config LWM2M_CONN_MON_BEARER_MAX |
| int "Maximum # of available network bearer resource instances" |
| depends on LWM2M_CONN_MON_OBJ_SUPPORT |
| default 1 |
| help |
| This value sets the maximum number of available network bearer |
| resource instances. These are displayed via the |
| "Connection Monitoring" object /4/0/1. |
| |
| config LWM2M_CONN_MON_APN_MAX |
| int "Maximum # of APN resource instances" |
| depends on LWM2M_CONN_MON_OBJ_SUPPORT |
| default 1 |
| help |
| This value sets the maximum number of APN resource instances. |
| These are displayed via the "Connection Monitoring" object /4/0/7. |
| |
| config LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT |
| bool "Firmware Update object support" |
| default y |
| help |
| Include support for LWM2M Firmware Update Object (ID 5) |
| |
| config LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT_MULTIPLE |
| bool "Support multiple firmware update objects [EXPERIMENTAL]" |
| depends on LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT |
| select EXPERIMENTAL |
| help |
| Support multiple instances of LWM2M Firmware Update Object (ID 5) |
| |
| config LWM2M_FIRMWARE_UPDATE_OBJ_INSTANCE_COUNT |
| int "Maximum # of LWM2M Firmware update object instances" |
| default 1 |
| depends on LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT_MULTIPLE |
| help |
| This setting establishes the total count of LWM2M Firmware update |
| object instances available to the client. |
| |
| config LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT |
| bool "Firmware Update object pull support" |
| default y |
| depends on LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT |
| depends on (HTTP_PARSER || HTTP_PARSER_URL) |
| help |
| Include support for pulling a file from a remote server via |
| block transfer and "FIRMWARE PACKAGE URI" resource. This option |
| adds another UDP context and packet handling. |
| |
| config LWM2M_SWMGMT_OBJ_SUPPORT |
| bool "Software management object support" |
| help |
| Include support for LWM2M Software Management Object (ID 9) |
| |
| config LWM2M_PORTFOLIO_OBJ_SUPPORT |
| bool "LwM2M Portfolio object ID support for Conformance test" |
| help |
| Include support for LWM2M Portfolio Object (ID 16). |
| |
| config LWM2M_SWMGMT_MAX_INSTANCE_COUNT |
| int "Maximum # of object instances" |
| depends on LWM2M_SWMGMT_OBJ_SUPPORT |
| default 1 |
| |
| config LWM2M_SWMGMT_PACKAGE_NAME_LEN |
| int "Maximum size of the software management object's name string" |
| depends on LWM2M_SWMGMT_OBJ_SUPPORT |
| default 64 |
| |
| config LWM2M_SWMGMT_PACKAGE_VERSION_LEN |
| int "Maximum size of the software management object's version string" |
| depends on LWM2M_SWMGMT_OBJ_SUPPORT |
| default 64 |
| |
| config LWM2M_SWMGMT_PACKAGE_URI_LEN |
| int "Maximum size of the software management object's download URI string" |
| depends on (LWM2M_SWMGMT_OBJ_SUPPORT || LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT) |
| default 128 |
| |
| config LWM2M_NUM_BLOCK1_CONTEXT |
| int "Maximum # of LWM2M block1 contexts" |
| default 3 |
| help |
| This value sets up the maximum number of block1 contexts for |
| CoAP block-wise transfer we can handle at the same time. |
| |
| config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_SUPPORT |
| bool "Firmware Update object pull via CoAP-CoAP/HTTP proxy support" |
| depends on LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT |
| help |
| Include support for pulling firmware file via a CoAP-CoAP/HTTP proxy. |
| |
| config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_ADDR |
| string "CoAP proxy network address" |
| depends on LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_SUPPORT |
| help |
| Network address of the CoAP proxy server. |
| |
| config LWM2M_RW_OMA_TLV_SUPPORT |
| bool "TLV data format" |
| help |
| Include support for write / parse TLV data |
| |
| config LWM2M_RW_JSON_SUPPORT |
| bool "support for JSON writer" |
| depends on JSON_LIBRARY |
| help |
| Include support for writing JSON data |
| |
| |
| config LWM2M_RW_SENML_JSON_SUPPORT |
| bool "SENML JSON data format" |
| depends on BASE64 |
| depends on JSON_LIBRARY |
| help |
| Include support for write / parse SENML JSON data |
| |
| config LWM2M_COMPOSITE_PATH_LIST_SIZE |
| int "Maximum # of composite read and send operation URL path" |
| default 6 |
| help |
| Define path list size for Composite Read and send operation. |
| |
| config LWM2M_RW_CBOR_SUPPORT |
| bool "support for CBOR writer" |
| depends on ZCBOR |
| help |
| Include support for writing CBOR data |
| |
| config LWM2M_RW_SENML_CBOR_SUPPORT |
| bool "support for SenML CBOR writer" |
| depends on ZCBOR |
| depends on ZCBOR_CANONICAL |
| help |
| Include support for writing SenML CBOR data |
| |
| config LWM2M_RW_SENML_CBOR_RECORDS |
| int "Maximum # of SenML records packed into a CBOR binary" |
| depends on LWM2M_RW_SENML_CBOR_SUPPORT |
| default 30 |
| help |
| The CBOR library requires you to set an upper limit for the records when encoder |
| and decoder do get generated. |
| |
| config LWM2M_DEVICE_PWRSRC_MAX |
| int "Maximum # of device power source records" |
| default 5 |
| range 1 20 |
| help |
| This value sets the maximum number of power source data that a device |
| can store. These are displayed via the "Device" object /3/0/6, |
| /3/0/7 and /3/0/8 resources. |
| |
| config LWM2M_DEVICE_ERROR_CODE_MAX |
| int "Maximum # of device obj error codes to store" |
| default 10 |
| range 1 20 |
| help |
| This value sets the maximum number of error codes that the device |
| object will store before ignoring new values. |
| |
| config LWM2M_DEVICE_EXT_DEV_INFO_MAX |
| int "Maximum # of device obj external device info to store" |
| default 5 |
| range 1 20 |
| help |
| This value sets the maximum number of external device info that the |
| device object will store before ignoring new values. |
| |
| config LWM2M_NUM_ATTR |
| int "Maximum # of LWM2M attributes" |
| default 20 |
| help |
| This value sets up the maximum number of LwM2M attributes that |
| we can handle at the same time. |
| |
| config LWM2M_LOCATION_OBJ_SUPPORT |
| bool "Location object support" |
| help |
| Include support for LWM2M Location Object (ID 6) |
| |
| config LWM2M_GATEWAY_OBJ_SUPPORT |
| bool "LwM2M Gateway Object (25) [EXPERIMENTAL]" |
| |
| config LWM2M_EVENT_LOG_OBJ_SUPPORT |
| bool "LwM2M Event Log Object (20)" |
| help |
| Include support for LWM2M Event Log Object (ID 20) |
| |
| if LWM2M_GATEWAY_OBJ_SUPPORT |
| |
| config LWM2M_GATEWAY_MAX_INSTANCES |
| int "Maximum number of bridged devices" |
| default 1 |
| help |
| This setting establishes the total count of LwM2M Gateway |
| instances available to the LWM2M client. |
| |
| config LWM2M_GATEWAY_DEFAULT_DEVICE_ID |
| string "Identifies the IoT Device bridged to the LwM2M Gateway" |
| default "Node" |
| |
| config LWM2M_GATEWAY_DEVICE_ID_MAX_STR_SIZE |
| int "Maximum string size for device ID" |
| default 32 |
| |
| config LWM2M_GATEWAY_DEFAULT_DEVICE_PREFIX |
| string "Used for access to LwM2M Objects of this IoT Device" |
| default "n" |
| help |
| Defaults are n0, n1, n2, ..., n<max instances - 1> |
| |
| config LWM2M_GATEWAY_PREFIX_MAX_STR_SIZE |
| int "Max string size for prefix" |
| default 32 |
| |
| config LWM2M_GATEWAY_DEFAULT_IOT_DEVICE_OBJECTS |
| string "Contains the Objects and Object Instances exposed by Gateway" |
| default "" |
| help |
| It uses the same CoreLnk format as Registration Interface. |
| This must be populated by Gateway. |
| Example: |
| </3>;ver=1.0,</3/0>,</4>;ver=1.0,</4/0>, |
| </5>;ver=1.0,</5/0>,</9>;ver=1.0,</9/0>,</3303/0> |
| |
| config LWM2M_GATEWAY_IOT_DEVICE_OBJECTS_MAX_STR_SIZE |
| int "Maximum string size for IoT device objects" |
| default 128 |
| |
| endif # LWM2M_GATEWAY_OBJ_SUPPORT |
| |
| menu "IPSO Alliance Smart Object Support" |
| |
| source "subsys/net/lib/lwm2m/Kconfig.ipso" |
| |
| endmenu |
| |
| menu "uCIFI Alliance Object Support" |
| |
| source "subsys/net/lib/lwm2m/Kconfig.ucifi" |
| |
| endmenu |
| |
| endif # LWM2M |