[syslinux] blocksize and tsize at TFTP transfer

Philippe Auphelle pauphelle at gmail.com
Sun May 31 00:17:54 PDT 2009


>  At packet 15 you have your TFTP server returning a
> malformed OACK blksize packet (one extra zero, from the
> looks of it.

Yes, since WireShark points it out, I too noticed that extraneous
ending zero in the OACK. But since that has never reportedly created
problem, I didn't bother too much about it. And since it happens in
the OACK that the TFTP precisely doesn't send out when pxelinux fails,
I sorted it in the minor bugs list so far.

> However your TFTP service doesn't honor blksize from pxelinux,
> which seems very odd.

That's what I mentioned before: It only recognizes blksize when it's
the first option. That's why it does honor that of the PXE firmware,
and not that from pxelinux: the leading tsize parm prevents it from
seeing blksize. Talk about a dumb minimalist option parser...

>  You're also sending your ERROR messages with the wrong byte order.

That's one I had not spotted before. Thanks.

> Part of me wonders if pxelinux.0 was correctly downloaded... if not, it
> would obviously have disastrous conseqences at any random time.
> Perhaps a selfcheck would be a good idea.

But there is nothing random here: It fails 100% of the time.
Adding a checksum to pxelinux.0 would sure add some security: I'm not
sure that a wire corruption is so likely with the enet / IP / udp
checksum proctection, but that would detect an upstream accidental
corruption of the disk file.
This is not likely to be the case here, though, as I saw the same
problem with the pxelinux.0 images from both 3.80 and 3.81 (and the
pxelinux.bin files too, when I think of it). And I don't see it with
3.6x, that give the error message about the TFTP server not supporting
tsize.

The crash reproduces here 100% of the cases, and I don't expect that
our TFTP server would specifically corrupt pxelinux everytime either:
It might handle options quite poorly, but it has been running for
quite a while and served some zillions boots already with files of
various formats and sizes, so I would think a corrupting behavior
would have been caught long ago.




More information about the Syslinux mailing list