1# Copyright (c) 2023 Trackunit Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig MODEM_MODULES
5	bool "Modem modules"
6	select EXPERIMENTAL
7
8if MODEM_MODULES
9
10config MODEM_CHAT
11	bool "Modem chat module"
12	select RING_BUFFER
13	select MODEM_PIPE
14
15if MODEM_CHAT
16
17config MODEM_CHAT_LOG_BUFFER_SIZE
18	int "Modem chat log buffer size in bytes"
19	default 128
20
21endif
22
23config MODEM_CMUX
24	bool "Modem CMUX module"
25	select MODEM_PIPE
26	select RING_BUFFER
27	select EVENTS
28	select CRC
29
30if MODEM_CMUX
31
32config MODEM_CMUX_DEFAULT_MTU_127
33	bool
34	help
35	  Hint that the default MODEM_CMUX_MTU size should be 127 bytes.
36
37config MODEM_CMUX_MTU
38	int "CMUX MTU size in bytes"
39	range 16 1500
40	default 127 if MODEM_CMUX_DEFAULT_MTU_127
41	default 31
42	help
43	  Maximum Transmission Unit (MTU) size for the CMUX module.
44	  Linux ldattach defaults to 127 bytes, 3GPP TS 27.010 to 31.
45
46config MODEM_CMUX_WORK_BUFFER_SIZE
47	int "CMUX module work buffer size in bytes"
48	range 23 1507
49	default 134 if MODEM_CMUX_DEFAULT_MTU_127
50	default 38
51	help
52	  Size of the work buffer used by the CMUX module.
53	  Recommended size is MODEM_CMUX_MTU + 7 (CMUX header size).
54
55module = MODEM_CMUX
56module-str = modem_cmux
57source "subsys/logging/Kconfig.template.log_config"
58
59endif
60
61config MODEM_PIPE
62	bool "Modem pipe module"
63	select EVENTS
64
65config MODEM_PIPELINK
66	bool "Modem pipelink module"
67	depends on MODEM_PIPE
68
69config MODEM_PPP
70	bool "Modem PPP module"
71	depends on NET_L2_PPP
72	select MODEM_PIPE
73	select RING_BUFFER
74	select CRC
75
76if MODEM_PPP
77
78config MODEM_PPP_NET_BUF_FRAG_SIZE
79	int "Network buffer fragment size"
80	default NET_BUF_DATA_SIZE if NET_BUF_FIXED_DATA_SIZE
81	default 128
82
83endif
84
85config MODEM_STATS
86	bool "Modem statistics"
87	depends on SHELL
88	help
89	  Enables modem statistics shell commands which track the usage of
90	  buffers across the modem modules. The statistics are useful for
91	  scaling buffer sizes, as these are application specific.
92
93config MODEM_STATS_BUFFER_NAME_SIZE
94	int "Maximum string size of modem stats buffer name"
95	default 32
96	range 8 64
97
98config MODEM_UBX
99	bool "Modem U-BLOX module"
100	select RING_BUFFER
101	select MODEM_PIPE
102	help
103	  Enable Modem U-BLOX module.
104
105if MODEM_UBX
106
107config MODEM_UBX_LOG_BUFFER
108	int "Modem U-BLOX log buffer size"
109	default 128
110
111endif
112
113module = MODEM_MODULES
114module-str = modem_modules
115source "subsys/logging/Kconfig.template.log_config"
116
117rsource "backends/Kconfig"
118
119endif
120