summaryrefslogtreecommitdiff
path: root/subsys/net/ip/Kconfig
blob: 7fba563540a1f8695931c82a4c0aa9a62ae00137 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
# Kconfig - IP stack config

#
# Copyright (c) 2016 Intel Corporation.
#
# SPDX-License-Identifier: Apache-2.0
#

menu "IP stack"
	depends on NETWORKING

# Hidden option
config NET_L2_RAW_CHANNEL
	bool
	default n

if !NET_L2_RAW_CHANNEL

config NET_INIT_PRIO
	int
	default 90
	help
	Network initialization priority level. This number tells how
	early in the boot the network stack is initialized.

source "subsys/net/ip/Kconfig.debug"

source "subsys/net/ip/Kconfig.ipv6"

source "subsys/net/ip/Kconfig.ipv4"

config NET_SHELL
	bool "Enable network shell utilities"
	default n
	select CONSOLE_SHELL
	help
	Activate shell module that provides network commands like
	ping to the console.

config NET_IP_ADDR_CHECK
	bool "Check IP address validity before sending IP packet"
	default y
	help
	Check that either the source or destination address is
	correct before sending either IPv4 or IPv6 network packet.

config NET_MAX_ROUTERS
	int "How many routers are supported"
	default 2 if NET_IPV4 && NET_IPV6
	default 1 if NET_IPV4 && !NET_IPV6
	default 1 if !NET_IPV4 && NET_IPV6
	range 1 254
	help
	The value depends on your network needs.

config NET_ROUTE
	bool
	depends on NET_IPV6
	default n
	default y if NET_IPV6

config	NET_MAX_ROUTES
	int "Max number of routing entries stored."
	default NET_IPV6_MAX_NEIGHBORS
	depends on NET_ROUTE
	help
	This determines how many entries can be stored in routing table.

config	NET_MAX_NEXTHOPS
	int "Max number of next hop entries stored."
	default NET_MAX_ROUTES
	depends on NET_ROUTE
	help
	This determines how many entries can be stored in nexthop table.

config NET_ROUTE_MCAST
	bool
	depends on NET_ROUTE
	default n

config	NET_MAX_MCAST_ROUTES
	int "Max number of multicast routing entries stored."
	default 1
	depends on NET_ROUTE_MCAST
	help
	This determines how many entries can be stored in multicast
	routing table.

config NET_TCP
	bool "Enable TCP"
	default n
	help
	The value depends on your network needs.

config NET_DEBUG_TCP
	bool "Debug TCP"
	default n
	depends on NET_TCP && NET_LOG
	help
	Enables TCP handler output debug messages

config NET_TCP_TIME_WAIT
	bool "Enable TCP TIME_WAIT timeouts"
	default n
	help
	Officially, the TCP standard requires a 4 minute timeout on
	connection close before that particular port pair can be used
	again.  This requires that the net_context and net_tcp structs
	persist for the full duration, so has non-trivial memory costs
	and is optional.  Modern systems with well-randomized sequence
	numbers don't need this, but it is present for specification
	compliance where needed.

config NET_UDP
	bool "Enable UDP"
	default y
	help
	The value depends on your network needs.

config NET_DEBUG_UDP
	bool "Debug UDP"
	default n
	depends on NET_UDP && NET_LOG
	help
	Enables UDP handler output debug messages

config NET_MAX_CONN
	int "How many network connections are supported"
	depends on NET_UDP || NET_TCP
	default 4
	default 8 if NET_IPV6 && NET_IPV4
	help
	The value depends on your network needs. The value
	should include both UDP and TCP connections.

config NET_CONN_CACHE
	bool "Cache network connections"
	depends on NET_UDP || NET_TCP
	default n
	help
	Caching takes slight more memory but will speedup connection
	handling of UDP and TCP connections.

config NET_MAX_CONTEXTS
	int "Number of network contexts to allocate"
	default 6
	help
	Each network context is used to describe a network 5-tuple that
	is used when listening or sending network traffic. This is very
	similar as one could call a network socket in some other systems.

config NET_CONTEXT_SYNC_RECV
	bool "Support synchronous functionality in net_context_recv() API"
	default y
	help
	You can disable sync support to save some memory if you are calling
	net_context_recv() in async way only when timeout is set to 0.

config NET_CONTEXT_CHECK
	bool "Check options when calling various net_context functions"
	default y
	help
	If you know that the options passed to net_context...() functions
	are ok, then you can disable the checks to save some memory.

choice
	prompt "Use SLIP connectivity with QEMU"
	optional
	default NET_SLIP_TUN
	help
	The SLIP support is only used when the application is
	run inside QEMU and the network peer is run in your
	host.
	The SLIP support is only used when the application is
	run inside QEMU and the network peer is run in your
	host. The host needs to have tunslip running in order
	to receive and send network packets via the SLIP driver.
	The SLIP driver Kconfig options can be tweaked in drivers
	section.
	Options are provided to communicate with QEMU via a TUN driver,
	the default, as it requires less configuration in the host side,
	or via a TAP driver.
config NET_SLIP_TUN
	bool "TUN SLIP driver"
	select SLIP
	select UART_PIPE
	select UART_INTERRUPT_DRIVEN
	select NET_L2_DUMMY
	help
	The host needs to have tunslip running in order
	to receive and send network packets via the SLIP driver.
	Choose this if unsure.
config NET_SLIP_TAP
	bool "TAP SLIP driver"
	select SLIP
	select UART_PIPE
	select UART_INTERRUPT_DRIVEN
	select SLIP_TAP
	help
	SLIP TAP support is necessary when testing IPv4/ARP. The host
	needs to have tunslip with TAP support running in order to
	communicate via the SLIP driver.
endchoice

config NET_TRICKLE
	bool "Enable Trickle library"
	default n
	help
	Normally this is enabled automatically if needed,
	so say 'n' if unsure.

config NET_DEBUG_TRICKLE
	bool "Debug Trickle algorithm"
	default n
	depends on NET_TRICKLE && NET_LOG
	help
	Enables Trickle library output debug messages

endif # NET_L2_RAW_CHANNEL

config NET_NBUF_RX_COUNT
	int "How many network receives can be pending at the same time"
	default 4
	help
	Each RX buffer will occupy smallish amount of memory.
	See include/net/nbuf.h and the sizeof(struct nbuf)

config NET_NBUF_TX_COUNT
	int "How many network sends can be pending at the same time"
	default 2
	help
	Each TX buffer will occupy smallish amount of memory.
	See include/net/nbuf.h and the sizeof(struct nbuf)

config NET_NBUF_DATA_COUNT
	int "How many network data buffers are allocated"
	default 16
	help
	Each data buffer will occupy CONFIG_NBUF_DATA_SIZE + smallish
	header (sizeof(struct net_buf)) amount of data.

config NET_NBUF_DATA_SIZE
	int "Size of each network data fragment"
	default 128
	default 125 if NET_L2_IEEE802154
	help
	This value tells what is the size of the data fragment that is
	received from the network.
	Example: For IEEE 802.15.4, the network packet is 127 bytes long,
	which leaves in worst case 81 bytes for user data (MTU).
	In order to be able to receive at least full IPv6 packet which
	has a size of 1280 bytes, the one should allocate 16 fragments here.

config NET_NBUF_USER_DATA_SIZE
	int "Size of user_data reserved"
	default 0
	default 4 if NET_L2_BLUETOOTH
	help
	This is for drivers to set how much user_data shall be included in
	each network data fragment.
	Example: For Bluetooth, the user_data shall be at least 4 bytes as
	that is used for identifying the type of data they are carrying.

source "subsys/net/ip/Kconfig.stack"

source "subsys/net/ip/l2/Kconfig"

source "subsys/net/ip/Kconfig.mgmt"

source "subsys/net/ip/Kconfig.rpl"

source "subsys/net/ip/Kconfig.stats"

source "subsys/net/ip/Kconfig.samples"

endmenu