257 lines
7.2 KiB
Plaintext
257 lines
7.2 KiB
Plaintext
# 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
|