diff options
author | tye1 <tye1@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-08-27 07:57:45 +0000 |
---|---|---|
committer | tye1 <tye1@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-08-27 07:57:45 +0000 |
commit | ac8cca2a4dd777970811fb727c396e2585c2bba1 (patch) | |
tree | bb88e55fb68461de5cbd24e916b084beb80e0498 /MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c | |
parent | 8730386e6d669ded738c6f846aa26bf1c96228bf (diff) | |
download | edk2-platforms-ac8cca2a4dd777970811fb727c396e2585c2bba1.tar.xz |
The patch acknowledges the TCP zero window probe message, either the format with 1 byte new data, or no new data. It also increases exponentially the interval between successive probes when performing TCP zero window probe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10831 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c')
-rw-r--r-- | MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c b/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c index 86f47ede98..a8e4a933cf 100644 --- a/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c +++ b/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Timer.c @@ -1,7 +1,7 @@ /** @file
TCP timer related functions.
-Copyright (c) 2005 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -212,6 +212,7 @@ TcpProbeTimeout ( if ((TcpDataToSend (Tcb, 1) != 0) && (TcpToSendData (Tcb, 1) > 0)) {
ASSERT (TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_REXMIT) != 0);
+ Tcb->ProbeTimerOn = FALSE;
return ;
}
@@ -387,8 +388,9 @@ TcpSetProbeTimer ( IN OUT TCP_CB *Tcb
)
{
- if (!TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_PROBE)) {
- Tcb->ProbeTime = Tcb->Rto;
+ if (!Tcb->ProbeTimerOn) {
+ Tcb->ProbeTime = Tcb->Rto;
+ Tcb->ProbeTimerOn = TRUE;
} else {
Tcb->ProbeTime <<= 1;
|