Quantcast
Channel: VMware Communities : All Content - Workstation Pro
Viewing all articles
Browse latest Browse all 18268

PXE "firmware" BUG

$
0
0

I think I have discovered a bug in VMware's PXE "firmware" layer.

 

The current test scenario is:

Host OS:    Windows 8 Pro

VMware:     Workstation 9

PXE server: Serva


When PXE installing guests OSs like Vista, 7, 8 the TFTP server transfers a Boot.wim of about 200Mb
That transfer presents a consistent TFTP error pattern that can be seen on Serva's Log like :

 

run#1

[10/26 16:15:38.723] TFTP Inf: Read file <\WIA_WDS\s2012_R2\_SERVA_\boot\ServaBoot.wim>. Mode octet

[10/26 16:15:43.553] TFTP Err: timeout waiting for ack blk 16#24032     #24032

[10/26 16:15:49.675] TFTP Err: timeout waiting for ack blk 16#56792     #56792

[10/26 16:15:55.696] TFTP Err: timeout waiting for ack blk 16#24016     #89552

[10/26 16:16:01.583] TFTP Err: timeout waiting for ack blk 16#56776     #122312

[10/26 16:16:06.391] TFTP Inf: <\WIA_WDS\s2012_R2\_SERVA_\boot\ServaBoot.wim>: sent blks=152873 blkSz=1456, Total 222629455 bytes in 28s, err recovery=4

 

 

run#2

[10/26 16:16:42.533] TFTP Inf: Read file <\WIA_WDS\s2012_R2\_SERVA_\boot\ServaBoot.wim>. Mode octet

[10/26 16:16:48.524] TFTP Err: timeout waiting for ack blk 16#32112     #32112

[10/26 16:16:54.341] TFTP Err: timeout waiting for ack blk 16#64872     #64872

[10/26 16:17:00.202] TFTP Err: timeout waiting for ack blk 16#32096     #97632

[10/26 16:17:06.009] TFTP Err: timeout waiting for ack blk 16#64856     #130392

[10/26 16:17:09.371] TFTP Inf: <\WIA_WDS\s2012_R2\_SERVA_\boot\ServaBoot.wim>: sent blks=152873 blkSz=1456, Total 222629455 bytes in 27s, err recovery=4

 

 

run#3

[10/26 16:17:59.439] TFTP Inf: Read file <\WIA_WDS\s2012_R2\_SERVA_\boot\ServaBoot.wim>. Mode octet

[10/26 16:18:01.620] TFTP Err: timeout waiting for ack blk 16#7424       #7424

[10/26 16:18:07.492] TFTP Err: timeout waiting for ack blk 16#40184     #40184

[10/26 16:18:13.389] TFTP Err: timeout waiting for ack blk 16#7408       #72944

[10/26 16:18:19.262] TFTP Err: timeout waiting for ack blk 16#40168     #105704

[10/26 16:18:25.374] TFTP Err: timeout waiting for ack blk 16#7392       #138464

[10/26 16:18:27.630] TFTP Inf: <\WIA_WDS\s2012_R2\_SERVA_\boot\ServaBoot.wim>: sent blks=152873 blkSz=1456, Total 222641103 bytes in 28s, err recovery=5

 

Serva TFTP windowsize = 16 8 for the tests above

 

The error pattern is as follow:

There's an initial error on a random block # < 6553532767, next the error periodically repeats in this case every 32760 blocks.
The period changes slightly if the windowsize is changed.
The error consists of the client not sending the corresponding ACK for a perfectly sent block (Wireshark),

The TFTP server recovers the errors and the file gets finally transferred with some delay.

 

The error pattern is only present when the net traffic uses virtual NICs only.
i.e. between Host and Workstation Guests running on the same hardware.
if the TFTP traffic "touches" a real Ethernet wire the error is not seen.

 

I have used other PXE servers (3com) and the pattern is also there

I have used different Host OS (Vista) and the pattern is also there

I have used old Workstation versions (6 and 8) and the pattern is also there

I've been reported from people using ESX experiencing the same problem.

I have tested changing the TFTP transfer inter-packet-delay and the pattern is not affected.

 

Initially the TFTP protocol only allowed sending max 32767 ACK but that is not enforced now.

I think you guys have some uninitialized (random value) short counter variable (2 bytes) triggering the first error when
changing its sign then doing it again periodically when the counter variable changes its sign again.

 

If you need more info let me know.

Patrick


Viewing all articles
Browse latest Browse all 18268

Trending Articles