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