| # CoAP implementation for Zephyr |
| |
| # Copyright (c) 2017 Intel Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config COAP |
| bool "CoAP Support" |
| help |
| This option enables the CoAP implementation. |
| |
| |
| if COAP |
| |
| # This setting is only used by unit test. Do not enable it in applications |
| config COAP_TEST_API_ENABLE |
| bool "Test API for CoAP unit tests" |
| help |
| Do not enable this for normal use. |
| |
| config COAP_WELL_KNOWN_BLOCK_WISE |
| bool "CoAP ./well-known/core services block wise support" |
| help |
| This option enables the block wise support of CoAP response |
| to ./well-known/core request. Without this option all resource's |
| information will be sent in a single IP packet (can be multiple |
| fragments depends on MTU size). This will be useful in mesh kind |
| of networks. |
| |
| config COAP_WELL_KNOWN_BLOCK_WISE_SIZE |
| int "CoAP ./well-known/core services block wise support" |
| default 32 |
| depends on COAP_WELL_KNOWN_BLOCK_WISE |
| help |
| Maximum size of CoAP block. Valid values are 16, 32, 64, 128, |
| 256, 512 and 1024. |
| |
| config COAP_EXTENDED_OPTIONS_LEN |
| bool "Support for CoAP extended options" |
| help |
| This option enables the parsing of extended CoAP options length. |
| CoAP extended options length can be 2 byte value, which |
| requires more memory. User can save memory by disabling this. |
| That means only length of maximum 12 bytes are supported by default. |
| Enable this if length field going to bigger that 12. |
| |
| config COAP_EXTENDED_OPTIONS_LEN_VALUE |
| int "CoAP extended options length value" |
| default 13 |
| depends on COAP_EXTENDED_OPTIONS_LEN |
| help |
| This option specifies the maximum value of length field when |
| COAP_EXTENDED_OPTIONS_LEN is enabled. Define the value according to |
| user requirement. |
| |
| config COAP_INIT_ACK_TIMEOUT_MS |
| int "base length of the random generated initial ACK timeout in ms" |
| default 2000 |
| range 1000 100000 |
| help |
| This value is used as a base value to retry pending CoAP packets. |
| |
| config COAP_RANDOMIZE_ACK_TIMEOUT |
| bool "Randomize initial ACK timeout, as specified in RFC 7252" |
| default y |
| help |
| If enabled, the initial ACK timeout will be randomized, as specified |
| in RFC 7252, i.e. will be a random number between ACK_TIMEOUT and |
| ACK_TIMEOUT * ACK_RANDOM_FACTOR (where ACK_TIMEOUT is specified by |
| COAP_INIT_ACK_TIMEOUT_MS option). Otherwise, the initial ACK timeout |
| will be fixed to the value of COAP_INIT_ACK_TIMEOUT_MS option. |
| |
| config COAP_ACK_RANDOM_PERCENT |
| int "Random factor for ACK timeout described as percentage" |
| default 150 |
| depends on COAP_RANDOMIZE_ACK_TIMEOUT |
| help |
| Factor described as percentage to extend CoAP ACK timeout. A value |
| of 150 means a factor of 1.50. |
| |
| config COAP_MAX_RETRANSMIT |
| int "Max retransmission of a CoAP packet" |
| default 4 |
| range 1 100 |
| |
| config COAP_BACKOFF_PERCENT |
| int "Retransmission backoff factor for ACK timeout described as percentage" |
| default 200 |
| help |
| Factor described as percentage to extend CoAP ACK timeout for retransmissions. |
| A value of 200 means a factor of 2.0. |
| |
| config COAP_URI_WILDCARD |
| bool "Wildcards in CoAP resource path" |
| default y |
| help |
| This option enables MQTT-style wildcards in path. Disable it if |
| resource path may contain plus or hash symbol. |
| |
| config COAP_KEEP_USER_DATA |
| bool "Keeping user data in the CoAP packet" |
| help |
| This option enables keeping application-specific user data |
| |
| config COAP_CLIENT |
| bool "CoAP client support [EXPERIMENTAL]" |
| select EXPERIMENTAL |
| help |
| This option enables the API for CoAP-client for sending CoAP requests |
| |
| if COAP_CLIENT |
| |
| config COAP_CLIENT_THREAD_PRIORITY |
| int "Coap client thread priority" |
| default NUM_PREEMPT_PRIORITIES |
| help |
| Priority of receive thread of the CoAP client. |
| |
| config COAP_CLIENT_BLOCK_SIZE |
| int "LWM2M CoAP block-wise transfer size" |
| default 256 |
| range 64 1024 |
| help |
| CoAP block size used by CoAP client when performing block-wise |
| transfers. Possible values: 64, 128, 256, 512 and 1024. |
| |
| config COAP_CLIENT_MESSAGE_SIZE |
| int "Message payload size" |
| default COAP_CLIENT_BLOCK_SIZE |
| help |
| CoAP client message payload size. Can't be smaller than COAP_CLIENT_BLOCK_SIZE. |
| |
| config COAP_CLIENT_MESSAGE_HEADER_SIZE |
| int "Room for CoAP header data" |
| default 48 |
| range 24 128 |
| help |
| Extra room allocated to handle CoAP header data |
| |
| config COAP_CLIENT_STACK_SIZE |
| int "Stack size of the CoAP client thread" |
| default 1024 |
| |
| config COAP_CLIENT_MAX_INSTANCES |
| int "Maximum number of CoAP clients" |
| default 2 |
| help |
| Maximum number of CoAP clients |
| |
| config COAP_CLIENT_MAX_REQUESTS |
| int "Maximum number of simultaneous requests per client" |
| default 2 |
| help |
| Maximum number of CoAP requests a single client can handle at a time |
| |
| endif # COAP_CLIENT |
| |
| config COAP_SERVER |
| bool "CoAP server support [EXPERIMENTAL]" |
| select EXPERIMENTAL |
| select NET_SOCKETS |
| select NET_SOCKETPAIR |
| help |
| This option enables the API for CoAP-services to register resources. |
| |
| if COAP_SERVER |
| |
| config COAP_SERVER_STACK_SIZE |
| int "CoAP server thread stack size" |
| default 4096 |
| help |
| CoAP server thread stack size for processing RX/TX events. |
| |
| config COAP_SERVER_BLOCK_SIZE |
| int "CoAP server block-wise transfer size" |
| default 256 |
| range 64 1024 |
| help |
| CoAP block size used by CoAP server resources when performing block-wise |
| transfers. Possible values: 64, 128, 256, 512 and 1024. |
| |
| config COAP_SERVER_MESSAGE_SIZE |
| int "CoAP server message payload size" |
| default COAP_SERVER_BLOCK_SIZE |
| help |
| CoAP server message payload size. Can't be smaller than COAP_SERVER_BLOCK_SIZE. |
| |
| config COAP_SERVER_MESSAGE_OPTIONS |
| int "CoAP server message options" |
| default 16 |
| help |
| CoAP server message maximum number of options to parse. |
| |
| config COAP_SERVER_WELL_KNOWN_CORE |
| bool "CoAP server support ./well-known/core service" |
| default y |
| help |
| Enable responding to the ./well-known/core service resource. |
| |
| config COAP_SERVICE_PENDING_MESSAGES |
| int "CoAP service pending messages" |
| default 10 |
| help |
| Maximum number of pending CoAP messages to retransmit per active service. |
| |
| config COAP_SERVICE_OBSERVERS |
| int "CoAP service observers" |
| default 3 |
| help |
| Maximum number of CoAP observers per active service. |
| |
| choice COAP_SERVER_PENDING_ALLOCATOR |
| prompt "Pending data allocator" |
| default COAP_SERVER_PENDING_ALLOCATOR_STATIC |
| |
| config COAP_SERVER_PENDING_ALLOCATOR_NONE |
| bool "No pending packets" |
| help |
| Never allocate data for pending requests, this disables retransmits for confirmable |
| packets. |
| |
| config COAP_SERVER_PENDING_ALLOCATOR_STATIC |
| bool "Static reserved memory" |
| help |
| Static memory will be reserved for pending messages. The total size is equal to |
| COAP_SERVER_PENDING_ALLOCATOR_STATIC_BLOCKS * COAP_SERVER_MESSAGE_SIZE. |
| |
| config COAP_SERVER_PENDING_ALLOCATOR_SYSTEM_HEAP |
| bool "System heap allocator" |
| depends on HEAP_MEM_POOL_SIZE > 0 |
| help |
| Use k_malloc/k_free for pending data. |
| |
| endchoice |
| |
| config COAP_SERVER_PENDING_ALLOCATOR_STATIC_BLOCKS |
| int "Number of pending data blocks" |
| default COAP_SERVICE_PENDING_MESSAGES |
| depends on COAP_SERVER_PENDING_ALLOCATOR_STATIC |
| help |
| The number of data blocks to reserve for pending messages to retransmit. |
| |
| config COAP_SERVER_SHELL |
| bool "CoAP service shell commands" |
| depends on SHELL |
| help |
| Enable CoAP service shell commands. |
| |
| endif |
| |
| module = COAP |
| module-dep = NET_LOG |
| module-str = Log level for CoAP |
| module-help = Enables CoAP debug messages. |
| source "subsys/net/Kconfig.template.log_config.net" |
| |
| endif # COAP |