Explorar o código

net: Add option CONFIG_BOOTP_MAY_FAIL

This is useful if you want to look for a DHCP server, but try some
other settings if not available.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
Joe Hershberger %!s(int64=13) %!d(string=hai) anos
pai
achega
2c00e099fe
Modificáronse 2 ficheiros con 12 adicións e 0 borrados
  1. 7 0
      README
  2. 5 0
      net/bootp.c

+ 7 - 0
README

@@ -1592,10 +1592,17 @@ The following options need to be configured:
 		CONFIG_BOOTP_NTPSERVER
 		CONFIG_BOOTP_TIMEOFFSET
 		CONFIG_BOOTP_VENDOREX
+		CONFIG_BOOTP_MAY_FAIL
 
 		CONFIG_BOOTP_SERVERIP - TFTP server will be the serverip
 		environment variable, not the BOOTP server.
 
+		CONFIG_BOOTP_MAY_FAIL - If the DHCP server is not found
+		after the configured retry count, the call will fail
+		instead of starting over.  This can be used to fail over
+		to Link-local IP address configuration if the DHCP server
+		is not available.
+
 		CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS
 		serverip from a DHCP server, it is possible that more
 		than one DNS serverip is offered to the client.

+ 5 - 0
net/bootp.c

@@ -326,8 +326,13 @@ static void
 BootpTimeout(void)
 {
 	if (BootpTry >= TIMEOUT_COUNT) {
+#ifdef CONFIG_BOOTP_MAY_FAIL
+		puts("\nRetry count exceeded\n");
+		NetSetState(NETLOOP_FAIL);
+#else
 		puts("\nRetry count exceeded; starting again\n");
 		NetStartAgain();
+#endif
 	} else {
 		NetSetTimeout(TIMEOUT, BootpTimeout);
 		BootpRequest();