[ipxe-devel] Failed file transfers for iSCSI protocol

Geert Stappers stappers at stappers.nl
Sun Dec 15 09:33:43 UTC 2019


On Sun, Dec 15, 2019 at 05:19:39AM +0100, Heinrich Schuchardt wrote:
> Hello Michael,

Hello Mailinglist,


> 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

aa64


> 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.

two abstraction layers


> 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)

Title of that webpage:   Error: Platform-generated error
It has these additional notes:


 * Make sure that the image/device that you are trying to boot are
   compatible with EFI booting
 * There must be a FAT32 or other EFI compatible partition and filesystem
 * There must be a EFI executable named correctly on this partition,
   (usually /efi/boot/bootx64.efi)

 Note it is your system Firmware that fails to run the boot process of
 the device, not iPXE.


> 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?

Let go to idea that speed is the only factor.



Groeten
Geert Stappers
-- 
Leven en laten leven
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20191215/1683a774/attachment.sig>


More information about the ipxe-devel mailing list