1# Misc network drivers configuration options
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig NET_DRIVERS
5	bool "Network drivers"
6
7if NET_DRIVERS
8
9#
10# PPP options
11#
12menuconfig NET_PPP
13	bool "Point-to-point (PPP) UART based driver"
14	depends on NET_L2_PPP
15	depends on NET_NATIVE
16	select RING_BUFFER
17	select CRC
18
19if NET_PPP
20
21config NET_PPP_ASYNC_UART
22	bool "Asynchronous UART API is used"
23	depends on UART_ASYNC_API
24
25config NET_PPP_DRV_NAME
26	string "PPP Driver name"
27	default "ppp"
28	help
29	  This option sets the driver name
30
31config NET_PPP_MTU_MRU
32	int "PPP MTU and MRU"
33	default 1500
34	help
35	  This options sets MTU and MRU for PPP link.
36
37config NET_PPP_UART_BUF_LEN
38	int "Buffer length when reading from UART"
39	default 8
40	help
41	  This options sets the size of the UART buffer where data
42	  is being read to.
43
44config NET_PPP_RINGBUF_SIZE
45	int "PPP ring buffer size"
46	default 256
47	help
48	  PPP ring buffer size when passing data from RX ISR to worker
49	  thread that will pass the data to IP stack.
50
51config NET_PPP_RX_STACK_SIZE
52	int "Size of the stack allocated for receiving data from modem"
53	default 768
54	help
55	  Sets the stack size which will be used by the PPP RX workqueue.
56
57config NET_PPP_RX_PRIORITY
58	int "RX workqueue thread priority"
59	default 7
60	help
61	  Sets the priority of the RX workqueue thread.
62
63config NET_PPP_VERIFY_FCS
64	bool "Verify that received FCS is valid"
65	default y
66	help
67	  If you have a reliable link, then it might make sense
68	  to disable this as it takes some time to verify the received
69	  packet.
70
71config NET_PPP_CAPTURE
72	bool "Capture received PPP packets"
73	depends on NET_CAPTURE_COOKED_MODE
74	help
75	  This enables PPP packet capture. One needs to configure the
76	  packet capturing in core network stack to send the captured packets
77	  to outside system. This requires a non-PPP network connection
78	  where the captured packets are sent for processing. Note that you
79	  cannot use the PPP connection to sending packets as that would
80	  lead recursion.
81
82config NET_PPP_CAPTURE_BUF_SIZE
83	int "Capture buffer for storing full PPP packets"
84	depends on NET_PPP_CAPTURE
85	default 1500
86	help
87	  The captured PPP frames are temporarily stored into this buffer.
88
89config PPP_MAC_ADDR
90	string "MAC address for the interface"
91	help
92	  Specify a MAC address for the PPP interface in the form of
93	  six hex 8-bit chars separated by colons (e.g.:
94	  aa:33:cc:22:e2:c0).  The default is an empty string, which
95	  means the code will make 00:00:5E:00:53:XX, where XX will be
96	  random.
97
98config PPP_CLIENT_CLIENTSERVER
99	bool "Reply to the request CLIENT with CLIENTSERVER"
100	help
101	  This is only necessary if a ppp connection should be
102	  established with a Microsoft Windows PC.
103
104config PPP_NET_IF_NO_AUTO_START
105	bool "Disable PPP interface auto-start"
106	help
107	  This option allows user to disable autostarting of the PPP interface
108	  immediately after initialization.
109
110if NET_PPP_ASYNC_UART
111
112config NET_PPP_ASYNC_UART_TX_BUF_LEN
113	int "Length of the UART TX buffer to which data is written."
114	default 2048
115
116config NET_PPP_ASYNC_UART_TX_TIMEOUT
117	int "The timeout for UART transfers in milliseconds, or 0 for no timeout."
118	default 0
119
120config NET_PPP_ASYNC_UART_RX_RECOVERY_TIMEOUT
121	int "UART RX recovery timeout in milliseconds"
122	default 200
123	help
124	  The time that UART RX is in disabled state in case
125	  when we cannot receive more data from UART.
126
127config NET_PPP_ASYNC_UART_RX_ENABLE_TIMEOUT
128	int "A timeout for uart_rx_enable() in milliseconds"
129	default 100
130
131endif # NET_PPP_ASYNC_UART
132
133module = NET_PPP
134module-dep = LOG
135module-str = Log level for ppp driver
136module-help = Sets log level for ppp driver.
137source "subsys/net/Kconfig.template.log_config.net"
138
139endif # NET_PPP
140
141#
142# SLIP options
143#
144menuconfig SLIP
145	bool "SLIP driver" if !QEMU_TARGET
146	depends on NET_NATIVE
147	select UART_PIPE
148	select UART_INTERRUPT_DRIVEN
149
150if SLIP
151
152config SLIP_DRV_NAME
153	string "SLIP Driver name"
154	default "slip"
155	help
156	  This option sets the driver name
157
158module = SLIP
159module-dep = LOG
160module-str = Log level for slip driver
161module-help = Sets log level for slip driver.
162source "subsys/net/Kconfig.template.log_config.net"
163
164config SLIP_STATISTICS
165	bool "SLIP network connection statistics"
166	help
167	  This option enables statistics support for SLIP driver.
168
169config SLIP_TAP
170	bool "Use TAP interface to host"
171	default y
172	help
173	  In TAP the Ethernet frames are transferred over SLIP.
174
175config SLIP_MAC_ADDR
176	string "MAC address for the interface"
177	help
178	  Specify a MAC address for the SLIP interface in the form of
179	  six hex 8-bit chars separated by colons (e.g.:
180	  aa:33:cc:22:e2:c0).  The default is an empty string, which
181	  means the code will make 00:00:5E:00:53:XX, where XX will be
182	  random.
183
184endif
185
186#
187# Net loopback options
188#
189menuconfig NET_LOOPBACK
190	bool "Net loopback driver"
191	select NET_L2_DUMMY
192
193if NET_LOOPBACK
194
195config NET_LOOPBACK_SIMULATE_PACKET_DROP
196	bool "Controlable packet drop"
197	help
198	  Enable interface to have a controlable packet drop rate, only for
199	  testing, should not be enabled for normal applications
200
201config NET_LOOPBACK_MTU
202	int "MTU for loopback interface"
203	default 576
204	help
205	  This option sets the MTU for loopback interface.
206
207module = NET_LOOPBACK
208module-dep = LOG
209module-str = Log level for network loopback driver
210module-help = Sets log level for network loopback driver.
211source "subsys/net/Kconfig.template.log_config.net"
212
213endif
214
215#
216# CAN bus network driver options
217#
218menuconfig NET_CANBUS
219	bool "Controller Area Network (CAN) bus network driver"
220	help
221	  Enable the CAN bus network driver. This driver provides a network interface on top of the
222	  CAN controller driver API.
223
224if NET_CANBUS
225
226module = NET_CANBUS
227module-dep = LOG
228module-str = Log level for CAN bus network driver
229module-help = Sets log level CAN bus network driver.
230source "subsys/net/Kconfig.template.log_config.net"
231
232config NET_CANBUS_INIT_PRIORITY
233	int "CAN bus network device init priority"
234	default 81
235	help
236	  CAN bus network device initialization priority.
237
238	  The priority needs to be lower than the network stack and higher than the CAN controller
239	  driver.
240
241endif # NET_CAN
242
243#
244# Native simulator offloaded sockets
245#
246
247menuconfig NET_NATIVE_OFFLOADED_SOCKETS
248	bool "Native Simulator offloaded sockets"
249	depends on ARCH_POSIX
250	depends on NATIVE_LIBRARY
251	depends on NET_SOCKETS_OFFLOAD
252	help
253	  Offloaded sockets for Native Simulator utilize host BSD sockets API (like socket(),
254	  connect(), send(), recvfrom(), etc.) in order to provide networking capability.
255
256	  This driver main advantage is that it is possible to use this driver without any
257	  additional setup on the host side, unlike with the native TAP Ethernet driver.
258
259if NET_NATIVE_OFFLOADED_SOCKETS
260
261config NET_NATIVE_OFFLOADED_SOCKETS_EPOLL_WAIT_INTERVAL
262	int "Interval between epoll_wait() calls (in simulated microseconds)"
263	default 1000
264	help
265	  Number of simulated microseconds before next epoll_wait() call, when there were no pending
266	  events detected.
267
268	  Decrease that value when lower network traffic latency is expected, at the expense of more
269	  CPU processing overhead.
270
271endif # NET_NATIVE_OFFLOADED_SOCKETS
272
273endif # NET_DRIVERS
274