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 UDP transport of MCUmgr
6# subsystem and provides Kconfig options to control aspects of
7# the transport.
8#
9# Options defined in this file should be prefixed:
10#  MCUMGR_TRANSPORT_UDP_
11
12menuconfig MCUMGR_TRANSPORT_UDP
13	bool "UDP mcumgr SMP transport"
14	depends on NET_UDP
15	depends on NET_SOCKETS
16	select NET_SOCKETS_POSIX_NAMES if !POSIX_API
17	select NET_CONNECTION_MANAGER
18	help
19	  Enables handling of SMP commands received over UDP.
20	  Will start a thread for listening on the configured UDP port.
21
22if MCUMGR_TRANSPORT_UDP
23
24config MCUMGR_TRANSPORT_UDP_IPV4
25	bool "UDP SMP using IPv4"
26	depends on NET_IPV4
27	default y
28	help
29	  Enable SMP UDP using IPv4 addressing.
30	  Can be enabled alongside IPv6 addressing.
31
32config MCUMGR_TRANSPORT_UDP_IPV6
33	bool "UDP SMP using IPv6"
34	depends on NET_IPV6
35	help
36	  Enable SMP UDP using IPv6 addressing.
37	  Can be enabled alongside IPv4 addressing.
38
39config MCUMGR_TRANSPORT_UDP_PORT
40	int "UDP SMP port"
41	default 1337
42	help
43	  UDP port that SMP server will listen for SMP commands on.
44
45config MCUMGR_TRANSPORT_UDP_STACK_SIZE
46	int "UDP SMP stack size"
47	default 512
48	help
49	  Stack size of the SMP UDP listening thread
50
51config MCUMGR_TRANSPORT_UDP_THREAD_PRIO
52	int "UDP SMP thread priority"
53	default 0
54	help
55	  Scheduling priority of the SMP UDP listening thread.
56
57config MCUMGR_TRANSPORT_UDP_MTU
58	int "UDP SMP MTU"
59	default 1500
60	help
61	  Maximum size of SMP frames sent and received over UDP, in bytes.
62	  This value must satisfy the following relation:
63	  MCUMGR_TRANSPORT_UDP_MTU <= MCUMGR_TRANSPORT_NETBUF_SIZE + SMP msg overhead - address size
64	  where address size is determined by IPv4/IPv6 selection.
65
66config MCUMGR_TRANSPORT_UDP_AUTOMATIC_INIT
67	bool "UDP SMP autostart"
68	default y
69	help
70	  Enable starting the UDP SMP transport at boot time without needing
71	  any code in the application to do this, otherwise will need the user
72	  application to manually start and stop the transport using
73	  `smp_udp_open` and `smp_udp_close`.
74
75endif # MCUMGR_TRANSPORT_UDP
76