[syslinux] pxelinux implementation questions

Alexander Sack aps at holmeister.net
Mon Jun 23 07:36:02 PDT 2003


> Alexander Sack <aps at holmeister.net> schrieb am 20.06.03 18:57:30:
> > I've been looking at the pxelinux code and I was wondering a couple of
> > things:
> 
> > 2)  How big of an image can pxelinux download (minus memory constraints)?  
> > My understanding is that tftp packet numbers are from 0-65535 yielding a 
> > maximum size of 32MB.  Yet, from the revision history, it seems pxelinux 
> > can handle bigger images?  (I don't see any wrap around handling though
> > I maybe not looking hard enough in seachdir() - from the looks of it,
> > the only way I can see pxelinux downloading a bigger image is if the
> > tftp_blksize is negotiated greater than 512, right?)
> 
> One thing to add: tftp is UDP, so the server sends exactly one packet,
> the client acks this packet, then the server sends the next and so on.
> TCP is quite different, but it's also much more complicated to implement.

Thanks.  Yea, I've read the RFC (the lock step!), I was just wondering
if I could send a RRQ, read the packet, and then drop the connection
using the PXE stuff by creating some form of error packet.  I'm on the
wrong path anyway at this point for my purposes...

> > 3)  Why does pxelinux require tsize?  Does it make a difference what
> > size the file is as long as the last packet returns < 512?
> 
> Just a hint: The linux kernel and initrd aren't just put one after
> the other into the memory. The linux kernel spreads in various places
> (real memory <1M, above 1M), and the initrd even gets put somewhere
> else. So for keeping it simple syslinux needs to know how much to transfer
> before actually doing it. The overhead on the network side is two packets
> (OACK, ACK 0), and it's much less overhead on the client. Just keep in
> mind that pxelinux still needs all network services from the pxe rom,
> and can't do it on itself.

Ahh.  Thank you.  I had no idea that the kernel was spread out.  Yes,
then it would make a lot of sense to use tsize.

> There are quite much tftp servers that support tsize, and it sholdn't
> hurt the server since this should be running a real operating system
> instead of a rom-based network stack.

Yes, hpa lists a bunch in the README.  I wasn't really complaining about
it (I reread my post and I could see how it could be interpreted that
way), just trying to understand why pxelinux was using it.

Thanks a whole lot for the explanations.  

-aps

-- 
"Drawing on my fine command of language, I said nothing."
-Anonymous



More information about the Syslinux mailing list