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