[ipxe-devel] SAN Boot Windows XP with USB-NIC.

Michael Brown mbrown at fensystems.co.uk
Fri Mar 18 10:42:40 UTC 2011

On Friday 18 Mar 2011 09:24:11 jerrycheng-hinet wrote:
> My NB has an on board NIC. It can successfully sanboot windows xp. I
> captured the wireshark trace of the successful case and compare it to
> USB-NIC case.
> Please open the attached wireshark trace files. For the same read command,
> frame 3 looks a bit different. Refer to the [Protocols in frame] field, the
> success case is "eth:ip:tcp:iscsi", the USB-NIC case is "eth:ip:tcp".
> Do you have idea about why server side respond different for the same read
> command? Thanks very much!

I see "eth:ip:tcp:data" for both; I think this is some kind of artefact in 
wireshark rather than a real problem.

However, I do notice something interesting regarding the TCP segment sizes:

In the trace "wireshark_ipxe_xp_ok_part", frame 2 is a 2962-byte frame 
containing bytes [1,2897) in the sequence space.  The ACK for this frame is 
split across frame 4, which ACKs [1,1449), and frame 5, which ACKs 
[1449,2897).  There is no logic within iPXE that would cause the ACK to be 
split in this way.

In the trace "wireshark_mtu1500_fail_part", frame 2 is also a 2962-byte frame, 
which should not be happening with an MTU of 1500.  Even more interestingly, 
the retransmissions of this frame (in frames 6, 7, and 8) are 1514-byte 

I am not convinced that wireshark is truly capturing the packets that are 
being sent out on the wire.  There appears to be some kind of TCP segmentation 
offload still in effect on the server side.

Could you try to establish the real MTU that your USB NIC is prepared to 

a) start up iPXE and enter the iPXE command line via Ctrl-B

b) type "dhcp" to acquire an IP address, and "route" to show the acquired 

c) ping iPXE from the server to check that it responds to pings

d) use the "-s <size>" option to try increasingly larger ping packets until 
you find the size at which iPXE stops responding.  (I would expect "-s 1472" to 
be the largest value that works, corresponding to an MTU of 1500 after 
allowing for 28 bytes of IP+ICMP header.)



More information about the ipxe-devel mailing list