On 04/09/15 14:39, BALATON Zoltan wrote: > with http transfer commencing normally after this, while with OVMF and > syslinux.efi I get the following: > > TCP 1654 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=64 TSval=1039 TSecr=0 > TCP http > 1654 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=64 > TSval=1151334911 TSecr=1039 > TCP 1654 > http [ACK] Seq=1 Ack=1 Win=2097152 Len=0 TSval=1039 TSecr=0 > TCP http > 1654 [RST] Seq=1 Win=0 Len=0
After reading up on TSEcr a little bit in <http://tools.ietf.org/html/rfc1323>, I think TSecr=0 is wrong in the third packet (ie. the ACK that is sent by MdeModulePkg/Universal/Network/Tcp4Dxe). I think it should be TSecr=1151334911. Since it is not, I believe the server (FreeBSD) rightfully rejects the packet, and resets the connection. I found some hits for TSEcr in "MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Option.c", but (very superficially) those don't look related to outgoing packages. The RFC says, The Timestamp Echo Reply field (TSecr) is only valid if the ACK bit is set in the TCP header; if it is valid, it echos a times- tamp value that was sent by the remote TCP in the TSval field of a Timestamps option. When TSecr is not valid, its value must be zero. The TSecr value will generally be from the most recent Timestamp option that was received; however, there are exceptions that are explained below. I didn't find anything that would qualify the ACK in question as "exceptional". I believe the above language may have been misunderstood as "if you set TSecr to 0, that's okay, it will simple be considered invalid" -- I think the wording means, "if timestamping is present, and you send an ACK, you *must* set TSecr correctly -- subject to some exceptions. Otherwise, set TSecr to 0". So this could be a genuine issue in "MdeModulePkg/Universal/Network/Tcp4Dxe", but I can't really tell. CC'ing Siyuan (see Maintainers.txt). Thanks Laszlo ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel