[syslinux] syslinux6 EFI fail to boot via pxe

Michael Szerencsits
2013-06-25T11:51:52Z

>
> Have you tried 5.10 in your environment on a BIOS machine to see whether
> that works and which port numbers it uses?
>
> --
> Matt Fleming, Intel Open Source Technology Center
>

Hi Matt,

I think I've found the problem.
In /core/fs/pxe/tftp.c in function tftp_open:
First you do a core_udp_connect to port 69 (TFTP) at line 264. -> source port
= x
After that you sent the filerequest at line 265
You receive the fileinfo and also the used port (y) for the transfer in line 273
Than you perform a core_udp_disconnect at line 286
Now you perform a new core_udp_connect to port y which set the source port to x
+ 1 at line 287

for example:
               Client   |   Server
TFTP get file    2900   >       69
Response tsize   2900   <     7012
ACK blk 0        2901   >     7012  <-- wrong source port

Now the TFTP is failing, because he expect the filetransfer client port as the
same as the initial filerequest.

Maybe that help to solve the problem

Regards
Michael