summaryrefslogtreecommitdiff
path: root/nuttx/net/Kconfig
blob: 05feed11f0c92025ec13fd3fa6077c3377cf3f2a (plain) (blame)
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
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

config ARCH_HAVE_NET
	bool
	default n

config ARCH_HAVE_PHY
	bool
	default n

config NET
	bool "Networking support"
	default n
	select ARCH_HAVE_NET
	---help---
		Enable or disable all network features

if NET

config NET_NOINTS
	bool "Not interrupt driven"
	default n
	---help---
		NET_NOINT indicates that uIP is not called from the interrupt level.
		If NET_NOINTS is defined, critical sections will be managed with semaphores;
		Otherwise, it assumed that uIP will be called from interrupt level handling
		and critical sections will be managed by enabling and disabling interrupts.

config NET_MULTIBUFFER
	bool "Use multiple device-side I/O buffers"
	default n
	---help---
		Traditionally, uIP has used a single buffer for all incoming and
		outgoing traffic.  If this configuration is selected, then the
		driver can manage multiple I/O buffers and can, for example,
		be filling one input buffer while sending another output buffer.
		Or, as another example, the driver may support queuing of concurrent
		input/ouput and output transfers for better performance.

config NET_PROMISCUOUS
	bool "Promiscuous mode"
	default n
	---help---
		Force the Ethernet driver to operate in promiscuous mode (if supported
		by the Ethernet driver).

config NET_IPv6
	bool "IPv6"
	default n
	depends on EXPERIMENTAL
	---help---
		Build in support for IPv6.  Not fully implemented.

config NSOCKET_DESCRIPTORS
	int "Number of socket descriptor"
	default 8
	---help---
		Maximum number of socket descriptors per task/thread.

config NET_NACTIVESOCKETS
	int "Max socket operations"
	default 16
	---help---
		Maximum number of concurrent socket operations (recv, send, etc.).
		Default: 16

config NET_SOCKOPTS
	bool "Socket options"
	default n
	---help---
		Enable or disable support for socket options

if NET_SOCKOPTS

config NET_SOLINGER
	bool "SO_LINGER socket option"
	default n
	---help---
		Enable or disable support for the SO_LINGER socket option.

endif # NET_SOCKOPTS

config NET_BUFSIZE
	int "Network packet buffer size (MTU)"
	default 1294 if !NET_SLIP && NET_IPv6
	default 590 if !NET_SLIP && !NET_IPv6
	default 296 if NET_SLIP && !NET_IPv6
	---help---
		Packet buffer size.  This size includes the TCP/UDP payload plus the
		size of TCP/UDP header, the IP header, and the Ethernet header
		(assuming that the Ethernet transport is used).  This value is
		normally referred to as the MTU (Maximum Transmission Unit); the
		payload is the MSS (Maximum Segment Size).

		IPv4 hosts are required to be able to handle an MSS of at least
		536 octets, resulting in a minimum buffer size of 536+20+20+14 =
		590 (For SLIP 256+20+20 = 296).

		IPv6 hosts are required to be able to handle an MSS of 1220 octets,
		resulting in a minimum buffer size of of 1220+20+40+14 = 1294

config NET_RECEIVE_WINDOW
	int "Receive window size"
	default 1220 if !NET_SLIP && NET_IPv6
	default 536 if !NET_SLIP && !NET_IPv6
	default 256 if NET_SLIP && !NET_IPv6
	---help---
		The size of the advertised receiver's window.   Should be set low
		(i.e., to the size of the MSS) if the application is slow to process
		incoming data, or high (32768 bytes) if the application processes
		data quickly.

config NET_GUARDSIZE
	int "Driver I/O guard size"
	default 2
	---help---
		Network drivers often receive packets with garbage at the end and
		are longer than the size of packet in the TCP header.  The following
		"fudge" factor increases the size of the I/O buffering by a small
		amount to allocate slightly oversize packets.  After receipt, the
		packet size will be chopped down to the size indicated in the TCP
		header.

source "net/pkt/Kconfig"
source "net/tcp/Kconfig"
source "net/udp/Kconfig"
source "net/icmp/Kconfig"
source "net/igmp/Kconfig"
source "net/arp/Kconfig"
source "net/iob/Kconfig"

config NET_STATISTICS
	bool "Collect network statistics"
	default n
	---help---
		uIP statistics on or off

config NET_ROUTE
	bool "Routing table suport"
	default n
	---help---
		Build in support for a routing table.  See include/net/route.h

config NET_MAXROUTES
	int "Routing table size"
	default 4
	depends on NET_ROUTE
	---help---
		The size of the routing table (in entries).

config NET_MULTICAST
	bool "Multi-cast Tx support"
	default n
	---help---
		Outgoing multi-cast address support

# Select Transport (should be a choice)

config NET_ETHERNET
	bool
	default y if !NET_SLIP
	default n if NET_SLIP
	---help---
		If NET_SLIP is not selected, then Ethernet will be used (there is
		no need to define anything special in the configuration file to use
		Ethernet -- it is the default).

config NET_SLIP
	bool "SLIP support"
	default n
	---help---
		Enables building of the SLIP driver. SLIP requires
		at least one IP protocol selected and the following additional
		network settings: NET_NOINTS and NET_MULTIBUFFER.

		NET_BUFSIZE *must* be set to 296.  Other optional configuration
		settings that affect the SLIP driver: NET_STATISTICS.
		Default: Ethernet

		SLIP supports point-to-point IP communications over a serial port.
		The default data link layer for uIP is Ethernet. If NET_SLIP is
		defined in the NuttX configuration file, then SLIP will be supported.
		The basic differences between the SLIP and Ethernet configurations is
		that when SLIP is selected:

			* The link level header (that comes before the IP header) is omitted.
			* All MAC address processing is suppressed.
			* ARP is disabled.

		If NET_SLIP is not selected, then Ethernet will be used (there is
		no need to define anything special in the configuration file to use
		Ethernet -- it is the default).

if NET_SLIP

config SLIP_NINTERFACES
	int "Number of SLIP interfaces"
	default 1
	---help---
		Selects the number of physical SLIP
		interfaces to support.
		Default: 1

config SLIP_STACKSIZE
	int "SLIP stack size"
	default 2048
	---help---
		Select the stack size of the SLIP RX and TX tasks.  Default: 2048

config SLIP_DEFPRIO
	int "SLIP priority"
	default 128
	---help---
		The priority of the SLIP RX and TX tasks. Default: 128

endif # NET_SLIP
endif # NET