[ipxe-devel] Failed file transfers for iSCSI protocol

Heinrich Schuchardt xypron.glpk at gmx.de
Sun Dec 15 04:19:39 UTC 2019


Hello Michael,

when the system running iPXE is slower than the iSCSI server the
transfer of large file reproducibly fails.

The failure starts when the receive buffer is filled up. No message is
sent by iPXE for a few seconds. Afterwords a new login to the iSCSI
server occurs.

Here is some of the information gathered with Wireshark while executing
sanboot --drive 0x81 --no-describe --filename \EFI\debian\grubaa64.efi

A File of 1.6 MB shall be read. iPXE passes this request to the file
system implementation of U-Boot which passes it on to the block IO
driver in iPXE. iPXE tries to fulfill the request using a buffer of
64768 bytes.

iPXE: Read(10) LUN: 0x01 (LBA: 0x000052a4, Len: 3306)
Server: [ACK] Seq=22077 Ack=1709 Win=64768 Len=7240 TSval=2898868755
Server: Data In LUN: 0x01 (Read(10) Response Data)
Server: [ACK] Seq=30317 Ack=1709 Win=64768 Len=5792 TSval=2898868755
iPXE: [ACK] Seq=1709 Ack=29317 Win=64128 Len=0 TSval=1807285931
Server: Data In LUN: 0x01 (Read(10) Response Data)

Here the server is filling the 64768 receive buffer of iPXE. After some
packages the buffer is full.

iPXE:  [ACK] Seq=1709 Ack=472709 Win=0 Len=0 TSval=1807286148
Server: [ACK] Seq=472708 Ack=1709 Win=64768 Len=0 TSval=2898869200

iPXE keeps sending that the buffer is full and the server is sending
keep alives for about 15 seconds.

iPXE: [PSH, ACK] Seq=1 Ack=1 Win=64256 Len=48 TSval=1807300920
Server [ACK] Seq=1 Ack=49 Win=65152 Len=0 TSval=2898883747
iPXE: Login Command

After some minutes of retries

** Unable to read file /EFI/debian/grubaa64.efi **
Boot from SAN device 0x81 failed: Error 0x7f22208e
(http://ipxe.org/7f22208e)
Could not boot: Error 0x7f22208e (http://ipxe.org/7f22208e)

When using a system that is faster than the iSCSI server I do not
observe the problem.

The block IO protocol installed by iPXE should work irrespective of the
number of blocks requested.

What would you suggest to better understand the problem?

Best regards

Heinrich



More information about the ipxe-devel mailing list