summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/TcpDxe/TcpTimer.c
diff options
context:
space:
mode:
Diffstat (limited to 'NetworkPkg/TcpDxe/TcpTimer.c')
-rw-r--r--NetworkPkg/TcpDxe/TcpTimer.c138
1 files changed, 61 insertions, 77 deletions
diff --git a/NetworkPkg/TcpDxe/TcpTimer.c b/NetworkPkg/TcpDxe/TcpTimer.c
index 04caf8e509..5d2e124977 100644
--- a/NetworkPkg/TcpDxe/TcpTimer.c
+++ b/NetworkPkg/TcpDxe/TcpTimer.c
@@ -9,7 +9,7 @@
#include "TcpMain.h"
-UINT32 mTcpTick = 1000;
+UINT32 mTcpTick = 1000;
/**
Connect timeout handler.
@@ -19,7 +19,7 @@ UINT32 mTcpTick = 1000;
**/
VOID
TcpConnectTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
);
/**
@@ -30,7 +30,7 @@ TcpConnectTimeout (
**/
VOID
TcpRexmitTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
);
/**
@@ -41,7 +41,7 @@ TcpRexmitTimeout (
**/
VOID
TcpProbeTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
);
/**
@@ -52,7 +52,7 @@ TcpProbeTimeout (
**/
VOID
TcpKeepaliveTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
);
/**
@@ -63,7 +63,7 @@ TcpKeepaliveTimeout (
**/
VOID
TcpFinwait2Timeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
);
/**
@@ -74,10 +74,10 @@ TcpFinwait2Timeout (
**/
VOID
Tcp2MSLTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
);
-TCP_TIMER_HANDLER mTcpTimerHandler[TCP_TIMER_NUMBER] = {
+TCP_TIMER_HANDLER mTcpTimerHandler[TCP_TIMER_NUMBER] = {
TcpConnectTimeout,
TcpRexmitTimeout,
TcpProbeTimeout,
@@ -94,7 +94,7 @@ TCP_TIMER_HANDLER mTcpTimerHandler[TCP_TIMER_NUMBER] = {
**/
VOID
TcpClose (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
NetbufFreeList (&Tcb->SndQue);
@@ -111,7 +111,7 @@ TcpClose (
**/
VOID
TcpBackoffRto (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
//
@@ -121,16 +121,14 @@ TcpBackoffRto (
//
if ((Tcb->LossTimes >= TCP_FOLD_RTT) && (Tcb->SRtt != 0)) {
Tcb->RttVar += Tcb->SRtt >> 2;
- Tcb->SRtt = 0;
+ Tcb->SRtt = 0;
}
Tcb->Rto <<= 1;
if (Tcb->Rto < TCP_RTO_MIN) {
-
Tcb->Rto = TCP_RTO_MIN;
} else if (Tcb->Rto > TCP_RTO_MAX) {
-
Tcb->Rto = TCP_RTO_MAX;
}
}
@@ -143,14 +141,14 @@ TcpBackoffRto (
**/
VOID
TcpConnectTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
if (!TCP_CONNECTED (Tcb->State)) {
DEBUG (
(DEBUG_ERROR,
- "TcpConnectTimeout: connection closed because connection timer timeout for TCB %p\n",
- Tcb)
+ "TcpConnectTimeout: connection closed because connection timer timeout for TCB %p\n",
+ Tcb)
);
if (EFI_ABORTED == Tcb->Sk->SockError) {
@@ -160,19 +158,17 @@ TcpConnectTimeout (
if (TCP_SYN_RCVD == Tcb->State) {
DEBUG (
(DEBUG_WARN,
- "TcpConnectTimeout: send reset because connection timer timeout for TCB %p\n",
- Tcb)
+ "TcpConnectTimeout: send reset because connection timer timeout for TCB %p\n",
+ Tcb)
);
TcpResetConnection (Tcb);
-
}
TcpClose (Tcb);
}
}
-
/**
Timeout handler for TCP retransmission timer.
@@ -181,15 +177,15 @@ TcpConnectTimeout (
**/
VOID
TcpRexmitTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
UINT32 FlightSize;
DEBUG (
(DEBUG_WARN,
- "TcpRexmitTimeout: transmission timeout for TCB %p\n",
- Tcb)
+ "TcpRexmitTimeout: transmission timeout for TCB %p\n",
+ Tcb)
);
//
@@ -197,19 +193,18 @@ TcpRexmitTimeout (
// amount of data that has been sent but not
// yet ACKed.
//
- FlightSize = TCP_SUB_SEQ (Tcb->SndNxt, Tcb->SndUna);
- Tcb->Ssthresh = MAX ((UINT32) (2 * Tcb->SndMss), FlightSize / 2);
+ FlightSize = TCP_SUB_SEQ (Tcb->SndNxt, Tcb->SndUna);
+ Tcb->Ssthresh = MAX ((UINT32)(2 * Tcb->SndMss), FlightSize / 2);
- Tcb->CWnd = Tcb->SndMss;
- Tcb->LossRecover = Tcb->SndNxt;
+ Tcb->CWnd = Tcb->SndMss;
+ Tcb->LossRecover = Tcb->SndNxt;
Tcb->LossTimes++;
if ((Tcb->LossTimes > Tcb->MaxRexmit) && !TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_CONNECT)) {
-
DEBUG (
(DEBUG_ERROR,
- "TcpRexmitTimeout: connection closed because too many timeouts for TCB %p\n",
- Tcb)
+ "TcpRexmitTimeout: connection closed because too many timeouts for TCB %p\n",
+ Tcb)
);
if (EFI_ABORTED == Tcb->Sk->SockError) {
@@ -217,7 +212,7 @@ TcpRexmitTimeout (
}
TcpClose (Tcb);
- return ;
+ return;
}
TcpBackoffRto (Tcb);
@@ -237,7 +232,7 @@ TcpRexmitTimeout (
**/
VOID
TcpProbeTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
//
@@ -247,10 +242,9 @@ TcpProbeTimeout (
// the probe timer, since retransmit timer is on.
//
if ((TcpDataToSend (Tcb, 1) != 0) && (TcpToSendData (Tcb, 1) > 0)) {
-
ASSERT (TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_REXMIT) != 0);
Tcb->ProbeTimerOn = FALSE;
- return ;
+ return;
}
TcpSendZeroProbe (Tcb);
@@ -265,7 +259,7 @@ TcpProbeTimeout (
**/
VOID
TcpKeepaliveTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
Tcb->KeepAliveProbes++;
@@ -274,13 +268,12 @@ TcpKeepaliveTimeout (
// Too many Keep-alive probes, drop the connection
//
if (Tcb->KeepAliveProbes > Tcb->MaxKeepAlive) {
-
if (EFI_ABORTED == Tcb->Sk->SockError) {
SOCK_ERROR (Tcb->Sk, EFI_TIMEOUT);
}
TcpClose (Tcb);
- return ;
+ return;
}
TcpSendZeroProbe (Tcb);
@@ -295,13 +288,13 @@ TcpKeepaliveTimeout (
**/
VOID
TcpFinwait2Timeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
DEBUG (
(DEBUG_WARN,
- "TcpFinwait2Timeout: connection closed because FIN_WAIT2 timer timeouts for TCB %p\n",
- Tcb)
+ "TcpFinwait2Timeout: connection closed because FIN_WAIT2 timer timeouts for TCB %p\n",
+ Tcb)
);
TcpClose (Tcb);
@@ -315,13 +308,13 @@ TcpFinwait2Timeout (
**/
VOID
Tcp2MSLTimeout (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
DEBUG (
(DEBUG_WARN,
- "Tcp2MSLTimeout: connection closed because TIME_WAIT timer timeouts for TCB %p\n",
- Tcb)
+ "Tcp2MSLTimeout: connection closed because TIME_WAIT timer timeouts for TCB %p\n",
+ Tcb)
);
TcpClose (Tcb);
@@ -336,7 +329,7 @@ Tcp2MSLTimeout (
**/
VOID
TcpUpdateTimer (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
UINT16 Index;
@@ -349,11 +342,10 @@ TcpUpdateTimer (
TCP_CLEAR_FLG (Tcb->CtrlFlag, TCP_CTRL_TIMER_ON);
for (Index = 0; Index < TCP_TIMER_NUMBER; Index++) {
-
if (TCP_TIMER_ON (Tcb->EnabledTimer, Index) &&
TCP_TIME_LT (Tcb->Timer[Index], mTcpTick + Tcb->NextExpire)
- ) {
-
+ )
+ {
Tcb->NextExpire = TCP_SUB_TIME (Tcb->Timer[Index], mTcpTick);
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_TIMER_ON);
}
@@ -370,9 +362,9 @@ TcpUpdateTimer (
**/
VOID
TcpSetTimer (
- IN OUT TCP_CB *Tcb,
- IN UINT16 Timer,
- IN UINT32 TimeOut
+ IN OUT TCP_CB *Tcb,
+ IN UINT16 Timer,
+ IN UINT32 TimeOut
)
{
TCP_SET_TIMER (Tcb->EnabledTimer, Timer);
@@ -390,8 +382,8 @@ TcpSetTimer (
**/
VOID
TcpClearTimer (
- IN OUT TCP_CB *Tcb,
- IN UINT16 Timer
+ IN OUT TCP_CB *Tcb,
+ IN UINT16 Timer
)
{
TCP_CLEAR_TIMER (Tcb->EnabledTimer, Timer);
@@ -406,7 +398,7 @@ TcpClearTimer (
**/
VOID
TcpClearAllTimer (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
Tcb->EnabledTimer = 0;
@@ -421,22 +413,19 @@ TcpClearAllTimer (
**/
VOID
TcpSetProbeTimer (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
if (!Tcb->ProbeTimerOn) {
Tcb->ProbeTime = Tcb->Rto;
Tcb->ProbeTimerOn = TRUE;
-
} else {
Tcb->ProbeTime <<= 1;
}
if (Tcb->ProbeTime < TCP_RTO_MIN) {
-
Tcb->ProbeTime = TCP_RTO_MIN;
} else if (Tcb->ProbeTime > TCP_RTO_MAX) {
-
Tcb->ProbeTime = TCP_RTO_MAX;
}
@@ -451,12 +440,11 @@ TcpSetProbeTimer (
**/
VOID
TcpSetKeepaliveTimer (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
if (TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE)) {
- return ;
-
+ return;
}
//
@@ -468,13 +456,11 @@ TcpSetKeepaliveTimer (
//
if (!TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_KEEPALIVE) ||
(Tcb->Idle < Tcb->KeepAliveIdle)
- ) {
-
+ )
+ {
TcpSetTimer (Tcb, TCP_TIMER_KEEPALIVE, Tcb->KeepAliveIdle);
Tcb->KeepAliveProbes = 0;
-
} else {
-
TcpSetTimer (Tcb, TCP_TIMER_KEEPALIVE, Tcb->KeepAlivePeriod);
}
}
@@ -488,13 +474,13 @@ TcpSetKeepaliveTimer (
VOID
EFIAPI
TcpTickingDpc (
- IN VOID *Context
+ IN VOID *Context
)
{
- LIST_ENTRY *Entry;
- LIST_ENTRY *Next;
- TCP_CB *Tcb;
- INT16 Index;
+ LIST_ENTRY *Entry;
+ LIST_ENTRY *Next;
+ TCP_CB *Tcb;
+ INT16 Index;
mTcpTick++;
mTcpGlobalIss += TCP_ISS_INCREMENT_2;
@@ -503,14 +489,14 @@ TcpTickingDpc (
// Don't use LIST_FOR_EACH, which isn't delete safe.
//
for (Entry = mTcpRunQue.ForwardLink; Entry != &mTcpRunQue; Entry = Next) {
+ Next = Entry->ForwardLink;
- Next = Entry->ForwardLink;
-
- Tcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List);
+ Tcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List);
if (Tcb->State == TCP_CLOSED) {
continue;
}
+
//
// The connection is doing RTT measurement.
//
@@ -524,7 +510,7 @@ TcpTickingDpc (
TcpSendAck (Tcb);
}
- if (Tcb->IpInfo->IpVersion == IP_VERSION_6 && Tcb->Tick > 0) {
+ if ((Tcb->IpInfo->IpVersion == IP_VERSION_6) && (Tcb->Tick > 0)) {
Tcb->Tick--;
}
@@ -532,7 +518,6 @@ TcpTickingDpc (
// No timer is active or no timer expired
//
if (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_TIMER_ON) || ((--Tcb->NextExpire) > 0)) {
-
continue;
}
@@ -540,7 +525,6 @@ TcpTickingDpc (
// Call the timeout handler for each expired timer.
//
for (Index = 0; Index < TCP_TIMER_NUMBER; Index++) {
-
if (TCP_TIMER_ON (Tcb->EnabledTimer, Index) && TCP_TIME_LEQ (Tcb->Timer[Index], mTcpTick)) {
//
// disable the timer before calling the handler
@@ -578,8 +562,8 @@ TcpTickingDpc (
VOID
EFIAPI
TcpTicking (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
QueueDpc (TPL_CALLBACK, TcpTickingDpc, Context);