I could. My original problem was with cisco rommon tftpdnld command as client 
failing talking to tftpd. I just notice the tftp client problem while testing 
locally. After this I intend to go back and make tftpd work with whatever cisco 
client is doing. Since that’s a two byte field in the rfc there is no way I 
know of that tftpd or any other server can get more than 65536 in there so all 
they can do is rollover. The only thing I can think is maybe cisco client 
starts at 1 rather than 0. A tcpdump will tell me in a little while. This is 
more of a learning experience for me. I want to go through motions of getting 
source, debugging some issue with gdb, updating the code, build and all that. 
I've done that many times in windows world but not in any unix like Oses. So 
far the exercise is a success in that I learned a ton and if that diff was 
worth anything to anyone, even better. Thanks for the tip tho James, its good 
advice.

J
-----Original Message-----
From: James A. Peltier [mailto:jpelt...@sfu.ca] 
Sent: Monday, October 20, 2014 5:34 PM
To: Justin Mayes
Cc: misc@openbsd.org
Subject: Re: Making tftp download large files from tftpd

----- Original Message -----
| I will spare you all the backstory but I found that tftp could not 
| download files over 32 mb by default from tftpd. I know you can pass 
| blocksize to tftpd to handle much larger files but I was originally 
| working with a client where this wasn't possible. Tftp protocol has 2 
| bytes for block number which put a
| 65535 limit on that. tftpd data doesn't care and will just roll that 
| over back to 0 and keep sending data. Tftp client fails when there is 
| block number roll over because it is tracking all the blocks with an 
| int so ends up comparing its block counter which is now at 65536 to 
| what comes off the network, 0 and quits. I updated the tftp client 
| code to use same data type as the network side structs are using  - 
| u_int16_t. Now tftp counter rolls along with server and can send file 
| of any size with or without a blocksize change. I feel like this is 
| mostly pointless but doesn't hurt anything. Will gladly provide the 
| actuall diffs. I have to look into that process for openbsd but just 
| wanted to check with the group first in case there was a reason an int 
| was used that I do not understand.
| 
| J

Or you could chainload iPXE to allow for the downloading of your file over HTTP 
which is much faster than TFTP to begin with.  This is indeed what we do.

--
James A. Peltier
IT Services - Research Computing Group
Simon Fraser University - Burnaby Campus
Phone   : 778-782-6573
Fax     : 778-782-3045
E-Mail  : jpelt...@sfu.ca
Website : http://www.sfu.ca/itservices
Twitter : @sfu_rcg
Powering Engagement Through Technology

Reply via email to