1#
2# Network configuration
3#
4
5menuconfig NET
6	bool "Networking support"
7	default y
8
9if NET
10
11config ARP_TIMEOUT
12	int "Milliseconds before trying ARP again"
13	default 5000
14
15config NET_RETRY_COUNT
16	int "Number of timeouts before giving up"
17	default 5
18	help
19	  This variable defines the number of retries for network operations
20	  like ARP, RARP, TFTP, or BOOTP before giving up the operation.
21
22config PROT_UDP
23	bool "Enable generic udp framework"
24	help
25	  Enable a generic udp framework that allows defining a custom
26	  handler for udp protocol.
27
28config BOOTDEV_ETH
29	bool "Enable bootdev for ethernet"
30	depends on BOOTSTD
31	default y
32	help
33	  Provide a bootdev for ethernet so that is it possible to boot
34	  an operationg system over the network, using the PXE (Preboot
35	  Execution Environment) protocol.
36
37config BOOTP_SEND_HOSTNAME
38	bool "Send hostname to DNS server"
39	help
40	  Some DHCP servers are capable to do a dynamic update of a
41	  DNS server. To do this, they need the hostname of the DHCP
42	  requester.
43	  If CONFIG_BOOTP_SEND_HOSTNAME is defined, the content
44          of the "hostname" environment variable is passed as
45          option 12 to the DHCP server.
46
47config NET_RANDOM_ETHADDR
48	bool "Random ethaddr if unset"
49	help
50	  Selecting this will allow the Ethernet interface to function even
51	  when the ethaddr variable for that interface is unset.  In this case,
52	  a random MAC address in the locally administered address space is
53	  generated. It will be saved to the appropriate environment variable,
54	  too.
55
56config NETCONSOLE
57	bool "NetConsole support"
58	help
59	  Support the 'nc' input/output device for networked console.
60	  See README.NetConsole for details.
61
62config IP_DEFRAG
63	bool "Support IP datagram reassembly"
64	help
65	  Selecting this will enable IP datagram reassembly according
66	  to the algorithm in RFC815.
67
68config NET_MAXDEFRAG
69	int "Size of buffer used for IP datagram reassembly"
70	depends on IP_DEFRAG
71	default 16384
72	range 1024 65536
73	help
74	  This defines the size of the statically allocated buffer
75	  used for reassembly, and thus an upper bound for the size of
76	  IP datagrams that can be received.
77
78config SYS_FAULT_ECHO_LINK_DOWN
79	bool "Echo the inverted Ethernet link state to the fault LED"
80	help
81	  Echo the inverted Ethernet link state to the fault LED.  Note, if
82	  this option is active, then CONFIG_SYS_FAULT_MII_ADDR also needs to
83	  be configured.
84
85config TFTP_BLOCKSIZE
86	int "TFTP block size"
87	default 1468
88	help
89	  Default TFTP block size.
90	  The MTU is typically 1500 for ethernet, so a TFTP block of
91	  1468 (MTU minus eth.hdrs) provides a good throughput with
92	  almost-MTU block sizes.
93	  You can also activate CONFIG_IP_DEFRAG to set a larger block.
94
95config TFTP_PORT
96	bool "Set TFTP UDP source/destination ports via the environment"
97	help
98	  If this is defined, the environment variable tftpsrcp is used to
99	  supply the TFTP UDP source port value.  If tftpsrcp isn't defined,
100	  the normal pseudo-random port number generator is used.
101
102	  Also, the environment variable tftpdstp is used to supply the TFTP
103	  UDP destination port value.  If tftpdstp isn't defined, the normal
104	  port 69 is used.
105
106	  The purpose for tftpsrcp is to allow a TFTP server to blindly start
107	  the TFTP transfer using the pre-configured target IP address and UDP
108	  port. This has the effect of "punching through" the (Windows XP)
109	  firewall, allowing the remainder of the TFTP transfer to proceed
110	  normally.  A better solution is to properly configure the firewall,
111	  but sometimes that is not allowed.
112
113config TFTP_WINDOWSIZE
114	int "TFTP window size"
115	default 1
116	help
117	  Default TFTP window size.
118	  RFC7440 defines an optional window size of transmits,
119	  before an ack response is required.
120	  The default TFTP implementation implies a window size of 1.
121
122config TFTP_TSIZE
123	bool "Track TFTP transfers based on file size option"
124	depends on CMD_TFTPBOOT
125	default y if (ARCH_OMAP2PLUS || ARCH_K3)
126	help
127	  By default, TFTP progress bar is increased for each received UDP
128	  frame, which can lead into long time being spent for sending
129	  data over the UART. Enabling this option, TFTP queries the file
130	  size from server, and if supported, limits the progress bar to
131	  50 characters total which fits on single line.
132
133config SERVERIP_FROM_PROXYDHCP
134	bool "Get serverip value from Proxy DHCP response"
135	help
136	  Allows bootfile config to be fetched from Proxy DHCP server
137		while IP is obtained from main DHCP server.
138
139config SERVERIP_FROM_PROXYDHCP_DELAY_MS
140	int "# of additional milliseconds to wait for ProxyDHCP response"
141	default 100
142	help
143	  Amount of additional time to wait for ProxyDHCP response after
144		receiving response from main DHCP server. Has no effect if
145		SERVERIP_FROM_PROXYDHCP is false.
146
147config KEEP_SERVERADDR
148	bool "Write the server's MAC address to 'serveraddr'"
149	default y if SANDBOX
150	help
151	  Keeps the server's MAC address, in the env 'serveraddr'
152	  for passing to bootargs (like Linux's netconsole option). If this is
153	  enabled, when an ARP reply is received, the server's IP address is
154	  written there.
155
156config UDP_CHECKSUM
157	bool "Check the UDP checksum"
158	default y if SANDBOX
159	help
160	  Enable this to verify the checksum on UDP packets. If the checksum
161	  is wrong then the packet is discarded and an error is shown, like
162	  "UDP wrong checksum 29374a23 30ff3826"
163
164config BOOTP_SERVERIP
165	bool "Use the 'serverip' env var for tftp, not bootp"
166	help
167	  Enable this if the TFTP server will be the 'serverip' environment
168	  variable, not the BOOTP server. This affects the operation of both
169	  bootp and tftp.
170
171config BOOTP_MAX_ROOT_PATH_LEN
172	int "Option 17 root path length"
173	default 64
174	help
175	  Select maximal length of option 17 root path.
176
177config USE_GATEWAYIP
178	bool "Set a default 'gateway' value in the environment"
179	help
180	  Defines a default value for the IP address of the default router
181	  where packets to other networks are sent to.  (Environment variable
182	  "gatewayip")
183
184config GATEWAYIP
185	string "Value of the default 'gateway' value in the environment"
186	depends on USE_GATEWAYIP
187
188config USE_IPADDR
189	bool "Set a default 'ipaddr' value in the environment"
190	help
191	  Define a default value for the IP address to use for the default
192	  Ethernet interface, in case this is not determined through e.g.
193	  bootp.  (Environment variable "ipaddr")
194
195config IPADDR
196	string "Value of the default 'ipaddr' value in the environment"
197	depends on USE_IPADDR
198
199config USE_NETMASK
200	bool "Set a default 'netmask' value in the environment"
201	help
202	  Defines a default value for the subnet mask (or routing prefix) which
203	  is used to determine if an IP address belongs to the local subnet or
204	  needs to be forwarded through a router.  (Environment variable "netmask")
205
206config NETMASK
207	string "Value of the default 'netmask' value in the environment"
208	depends on USE_NETMASK
209
210config USE_ROOTPATH
211	bool "Set a default 'rootpath' value in the environment"
212
213config ROOTPATH
214	string "Value of the default 'rootpath' value in the environment"
215	depends on USE_ROOTPATH
216	default "/opt/nfsroot"
217
218config USE_SERVERIP
219	bool "Set a default 'serverip' value in the environment"
220	help
221	  Defines a default value for the IP address of a TFTP server to
222	  contact when using the "tftboot" command.  (Environment variable
223	  "serverip")
224
225config SERVERIP
226	string "Value of the default 'serverip' value in the environment"
227	depends on USE_SERVERIP
228
229config PROT_TCP
230	bool "TCP stack"
231	help
232	  Enable a generic tcp framework that allows defining a custom
233	  handler for tcp protocol.
234
235config PROT_TCP_SACK
236	bool "TCP SACK support"
237	depends on PROT_TCP
238	help
239	  TCP protocol with SACK. SACK means selective acknowledgements.
240	  By turning this option on TCP will learn what segments are already
241	  received. So that it improves TCP's retransmission efficiency.
242	  This option should be turn on if you want to achieve the fastest
243	  file transfer possible.
244
245config IPV6
246	bool "IPv6 support"
247	help
248	  Enable IPv6 support. It includes Neighbour Discovery protocol, ICMPv6
249	  and auxiliary stuff to make it work. Since it is enabled u-boot
250	  network subsystem can get and handle incoming packets and send packets
251	  through IPv6 network. It allows to use environment variables such as
252	  ip6addr, serverip6. If a u-boot command is capable to parse an IPv6
253	  address and find it, it will force using IPv6 in the network stack.
254
255endif   # if NET
256
257config SYS_RX_ETH_BUFFER
258	int "Number of receive packet buffers"
259	default 4
260	help
261	  Defines the number of Ethernet receive buffers. On some Ethernet
262	  controllers it is recommended to set this value to 8 or even higher,
263	  since all buffers can be full shortly after enabling the interface on
264	  high Ethernet traffic.
265