]> git.sur5r.net Git - u-boot/commitdiff
tftp: adjust settings to be suitable for 100Mbit ethernet
authorPavel Machek <pavel@denx.de>
Tue, 18 Aug 2015 12:34:26 +0000 (14:34 +0200)
committerJoe Hershberger <joe.hershberger@ni.com>
Fri, 21 Aug 2015 21:31:00 +0000 (16:31 -0500)
Adjust timouts and retry counts to be suitable for loaded ethernet
network. With 5 seconds timeout, 10 retries maximum, tftp is
impossible even on local network with single full-speed TCP
connection.

100msec timeout should be suitable for most networks tftp is used on,
that is local ethernets. Timeout count really needs to be way higher,
as lost packets are normal when TCP is running over the same network.

Enforce 10msec minimum.

Signed-off-by: Pavel Machek <pavel@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
net/tftp.c

index 89be32a26bd8cfaca738bda523cc400830088fa4..18ce84c20214ccec75036d135ed0da246e485c5b 100644 (file)
 /* Well known TFTP port # */
 #define WELL_KNOWN_PORT        69
 /* Millisecs to timeout for lost pkt */
-#define TIMEOUT                5000UL
+#define TIMEOUT                100UL
 #ifndef        CONFIG_NET_RETRY_COUNT
 /* # of timeouts before giving up */
-# define TIMEOUT_COUNT 10
+# define TIMEOUT_COUNT 1000
 #else
 # define TIMEOUT_COUNT  (CONFIG_NET_RETRY_COUNT * 2)
 #endif
@@ -711,10 +711,10 @@ void tftp_start(enum proto_t protocol)
        if (ep != NULL)
                timeout_ms = simple_strtol(ep, NULL, 10);
 
-       if (timeout_ms < 1000) {
-               printf("TFTP timeout (%ld ms) too low, set min = 1000 ms\n",
+       if (timeout_ms < 10) {
+               printf("TFTP timeout (%ld ms) too low, set min = 10 ms\n",
                       timeout_ms);
-               timeout_ms = 1000;
+               timeout_ms = 10;
        }
 
        debug("TFTP blocksize = %i, timeout = %ld ms\n",