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