audk/MdeModulePkg/Universal/Network/Tcp4Dxe
Fu Siyuan 977528bad7 MdeModulePkg: Fix bug in TCP which not sending out ACK in certain circumstance.
Consider the situation as shown in below chart. The last ACK message has
acknowledged the Tcb->RcvWl2, and all the segments until Tcb->RcvNxt have
been received by TCP driver. The Tcb->RcvNxt is not acknowledged due to the
delayed ACK. In this case an incoming segment (Seg->Seq, Seg->End) should
not be accepted by TCP driver, and an immediate ACK is required.

Current TcpSeqAcceptable() thought it’s an acceptable segment incorrectly, it
continues the TcpInput() process instead of sending out an ACK and droping the
segment immediately.

Tcb->RcvWl2                       Tcb->RcvNxt        Tcb->RcvWl2 + Tcb->RcvWnd
        Seg->Seq       Seg->End         |                          |
    |     |               |             |                          |
 ---+-----+---------------+-------------+--------------------------+-----------
           <income segment>             <----Acceptable Range--- -->

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-By: Eugene Cohen <eugene@hp.com>
Reviewed-By: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-By: Ye Ting <ting.ye@intel.com>
2016-07-18 10:08:43 +08:00
..
ComponentName.c Initialize data and correct faulty logic in TcpComponentNameGetControllerName(). 2015-02-04 06:43:34 +00:00
SockImpl.c 1. Fix a bug in PXE driver that the PXE boot do not restart if a new boot option on the different IP stack is selected. 2012-10-17 08:23:41 +00:00
SockImpl.h
SockInterface.c MdeModulePkg: Fix incorrect status check for SockProcessRcvToken 2016-05-26 16:14:40 +08:00
Socket.h 1. Add EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() support. 2012-12-13 06:47:06 +00:00
Tcp4Dispatcher.c MdeModulePkg: Source fixes and cleanup for ARMGCC compiles 2014-12-04 00:32:24 +00:00
Tcp4Driver.c MdeModulePkg: Fix typos in comments and variables 2016-07-11 10:29:48 +08:00
Tcp4Driver.h MdeModulePkg: Fix typos in comments and variables 2016-07-11 10:29:48 +08:00
Tcp4Dxe.inf MdeModulePkg: INF/DEC file updates to EDK II packages 2014-08-28 06:34:06 +00:00
Tcp4Dxe.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Tcp4DxeExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Tcp4Func.h 1. Mark the network volatile variables as deprecated in code comments and remove related code to set/get these variable. 2014-05-07 06:17:31 +00:00
Tcp4Input.c MdeModulePkg: Fix bug in TCP which not sending out ACK in certain circumstance. 2016-07-18 10:08:43 +08:00
Tcp4Io.c
Tcp4Main.c
Tcp4Main.h 1. Add EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() support. 2012-12-13 06:47:06 +00:00
Tcp4Misc.c Save initial TSVal from TCP connection initiation packets. 2015-04-13 01:39:29 +00:00
Tcp4Option.c
Tcp4Option.h
Tcp4Output.c MdeModulePkg: Fix typos in comments and variables 2016-07-11 10:29:48 +08:00
Tcp4Proto.h
Tcp4Timer.c