1# Copyright Runtime.io 2018. All rights reserved.
2# Copyright Nordic Semiconductor ASA 2020-2022. All rights reserved.
3# SPDX-License-Identifier: Apache-2.0
4
5# The Kconfig file is dedicated to transport subdirectory of MCUmgr
6# subsystem and provides Kconfig options to control aspects of
7# transport, in general, that are not otherwise controlled by
8# options belonging to transport specifically.
9#
10# Options defined in this file should be prefixed:
11#  MCUMGR_TRANSPORT_ -- general transport options;
12#  MCUMGR_TRANSPORT_WORKQUEUE -- for workqueue configuration;
13#  MCUMGR_TRANSPORT_NETBUF -- for Net Buf related configuration.
14
15config MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE
16	int "MCUmgr transport workqueue stack size"
17	default 2048
18	help
19	  Stack size of the MCUmgr for transport subsystem work queue.
20
21config MCUMGR_TRANSPORT_WORKQUEUE_THREAD_PRIO
22	int "MCUmgr transport workqueue thread priority"
23	default 3
24	help
25	  Scheduling priority of the MCUmgr transport subsystem work queue.
26
27config MCUMGR_TRANSPORT_REASSEMBLY
28	bool
29	help
30	  Enable structures and functions needed for packet reassembly by SMP backend.
31
32config MCUMGR_TRANSPORT_NETBUF_COUNT
33	int "Number of mcumgr buffers"
34	default 2 if MCUMGR_TRANSPORT_UDP
35	default 4
36	help
37	  The number of net_bufs to allocate for mcumgr.  These buffers are
38	  used for both requests and responses.
39
40config MCUMGR_TRANSPORT_NETBUF_SIZE
41	int "Size of each mcumgr buffer"
42	default 2048 if MCUMGR_TRANSPORT_UDP
43	default 384
44	help
45	  The size, in bytes, of each mcumgr buffer.  This value must satisfy
46	  the following relation:
47	  MCUMGR_TRANSPORT_NETBUF_SIZE >= transport-specific-MTU + transport-overhead
48	  In case when MCUMGR_TRANSPORT_SHELL is enabled this value should be set to
49	  at least MCUMGR_GRP_SHELL_BACKEND_DUMMY_BUF_SIZE + 32.
50
51config MCUMGR_TRANSPORT_NETBUF_MIN_USER_DATA_SIZE
52	int
53	default 24 if MCUMGR_TRANSPORT_UDP && NET_IPV6
54	default 8 if MCUMGR_TRANSPORT_UDP && MCUMGR_TRANSPORT_UDP_IPV4
55	default 8 if MCUMGR_TRANSPORT_BT
56	default 4
57	help
58	  Hidden option to determine minimum user data size.
59
60config MCUMGR_TRANSPORT_NETBUF_USER_DATA_SIZE
61	int "Size of mcumgr buffer user data"
62	range MCUMGR_TRANSPORT_NETBUF_MIN_USER_DATA_SIZE 128
63	default MCUMGR_TRANSPORT_NETBUF_MIN_USER_DATA_SIZE
64	help
65	  The size, in bytes, of user data to allocate for each mcumgr buffer.
66
67	  Different mcumgr transports impose different requirements for this
68	  setting. A value of 4 is sufficient for UART and shell, a value of 8
69	  is sufficient for Bluetooth. For UDP, the userdata must be large
70	  enough to hold IPv4/IPv6 addresses.
71
72module = MCUMGR_TRANSPORT
73module-str = mcumgr_transport
74source "subsys/logging/Kconfig.template.log_config"
75
76rsource "Kconfig.dummy"
77
78rsource "Kconfig.bluetooth"
79
80rsource "Kconfig.shell"
81
82rsource "Kconfig.uart"
83
84rsource "Kconfig.udp"
85