summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/TcpDxe/TcpDispatcher.c
diff options
context:
space:
mode:
Diffstat (limited to 'NetworkPkg/TcpDxe/TcpDispatcher.c')
-rw-r--r--NetworkPkg/TcpDxe/TcpDispatcher.c476
1 files changed, 234 insertions, 242 deletions
diff --git a/NetworkPkg/TcpDxe/TcpDispatcher.c b/NetworkPkg/TcpDxe/TcpDispatcher.c
index a04646ce49..d5e5276ac9 100644
--- a/NetworkPkg/TcpDxe/TcpDispatcher.c
+++ b/NetworkPkg/TcpDxe/TcpDispatcher.c
@@ -32,11 +32,11 @@ Tcp4Route (
IN TCP4_ROUTE_INFO *RouteInfo
)
{
- IP_IO_IP_PROTOCOL Ip;
+ IP_IO_IP_PROTOCOL Ip;
Ip = Tcb->IpInfo->Ip;
- ASSERT (Ip.Ip4!= NULL);
+ ASSERT (Ip.Ip4 != NULL);
return Ip.Ip4->Routes (
Ip.Ip4,
@@ -45,7 +45,6 @@ Tcp4Route (
RouteInfo->SubnetMask,
RouteInfo->GatewayAddress
);
-
}
/**
@@ -62,15 +61,15 @@ Tcp4Route (
**/
EFI_STATUS
Tcp4GetMode (
- IN TCP_CB *Tcb,
- IN OUT TCP4_MODE_DATA *Mode
+ IN TCP_CB *Tcb,
+ IN OUT TCP4_MODE_DATA *Mode
)
{
- SOCKET *Sock;
- EFI_TCP4_CONFIG_DATA *ConfigData;
- EFI_TCP4_ACCESS_POINT *AccessPoint;
- EFI_TCP4_OPTION *Option;
- EFI_IP4_PROTOCOL *Ip;
+ SOCKET *Sock;
+ EFI_TCP4_CONFIG_DATA *ConfigData;
+ EFI_TCP4_ACCESS_POINT *AccessPoint;
+ EFI_TCP4_OPTION *Option;
+ EFI_IP4_PROTOCOL *Ip;
Sock = Tcb->Sk;
@@ -79,46 +78,45 @@ Tcp4GetMode (
}
if (Mode->Tcp4State != NULL) {
- *(Mode->Tcp4State) = (EFI_TCP4_CONNECTION_STATE) Tcb->State;
+ *(Mode->Tcp4State) = (EFI_TCP4_CONNECTION_STATE)Tcb->State;
}
if (Mode->Tcp4ConfigData != NULL) {
+ ConfigData = Mode->Tcp4ConfigData;
+ AccessPoint = &(ConfigData->AccessPoint);
+ Option = ConfigData->ControlOption;
- ConfigData = Mode->Tcp4ConfigData;
- AccessPoint = &(ConfigData->AccessPoint);
- Option = ConfigData->ControlOption;
+ ConfigData->TypeOfService = Tcb->Tos;
+ ConfigData->TimeToLive = Tcb->Ttl;
- ConfigData->TypeOfService = Tcb->Tos;
- ConfigData->TimeToLive = Tcb->Ttl;
-
- AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr;
+ AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr;
IP4_COPY_ADDRESS (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip);
IP4_COPY_ADDRESS (&AccessPoint->SubnetMask, &Tcb->SubnetMask);
- AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
+ AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
IP4_COPY_ADDRESS (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip);
- AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
- AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN);
+ AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
+ AccessPoint->ActiveFlag = (BOOLEAN)(Tcb->State != TCP_LISTEN);
if (Option != NULL) {
- Option->ReceiveBufferSize = GET_RCV_BUFFSIZE (Tcb->Sk);
- Option->SendBufferSize = GET_SND_BUFFSIZE (Tcb->Sk);
- Option->MaxSynBackLog = GET_BACKLOG (Tcb->Sk);
-
- Option->ConnectionTimeout = Tcb->ConnectTimeout / TCP_TICK_HZ;
- Option->DataRetries = Tcb->MaxRexmit;
- Option->FinTimeout = Tcb->FinWait2Timeout / TCP_TICK_HZ;
- Option->TimeWaitTimeout = Tcb->TimeWaitTimeout / TCP_TICK_HZ;
- Option->KeepAliveProbes = Tcb->MaxKeepAlive;
- Option->KeepAliveTime = Tcb->KeepAliveIdle / TCP_TICK_HZ;
- Option->KeepAliveInterval = Tcb->KeepAlivePeriod / TCP_TICK_HZ;
-
- Option->EnableNagle = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE));
- Option->EnableTimeStamp = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS));
- Option->EnableWindowScaling = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS));
+ Option->ReceiveBufferSize = GET_RCV_BUFFSIZE (Tcb->Sk);
+ Option->SendBufferSize = GET_SND_BUFFSIZE (Tcb->Sk);
+ Option->MaxSynBackLog = GET_BACKLOG (Tcb->Sk);
+
+ Option->ConnectionTimeout = Tcb->ConnectTimeout / TCP_TICK_HZ;
+ Option->DataRetries = Tcb->MaxRexmit;
+ Option->FinTimeout = Tcb->FinWait2Timeout / TCP_TICK_HZ;
+ Option->TimeWaitTimeout = Tcb->TimeWaitTimeout / TCP_TICK_HZ;
+ Option->KeepAliveProbes = Tcb->MaxKeepAlive;
+ Option->KeepAliveTime = Tcb->KeepAliveIdle / TCP_TICK_HZ;
+ Option->KeepAliveInterval = Tcb->KeepAlivePeriod / TCP_TICK_HZ;
+
+ Option->EnableNagle = (BOOLEAN)(!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE));
+ Option->EnableTimeStamp = (BOOLEAN)(!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS));
+ Option->EnableWindowScaling = (BOOLEAN)(!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS));
Option->EnableSelectiveAck = FALSE;
Option->EnablePathMtuDiscovery = FALSE;
@@ -145,15 +143,15 @@ Tcp4GetMode (
**/
EFI_STATUS
Tcp6GetMode (
- IN TCP_CB *Tcb,
- IN OUT TCP6_MODE_DATA *Mode
+ IN TCP_CB *Tcb,
+ IN OUT TCP6_MODE_DATA *Mode
)
{
- SOCKET *Sock;
- EFI_TCP6_CONFIG_DATA *ConfigData;
- EFI_TCP6_ACCESS_POINT *AccessPoint;
- EFI_TCP6_OPTION *Option;
- EFI_IP6_PROTOCOL *Ip;
+ SOCKET *Sock;
+ EFI_TCP6_CONFIG_DATA *ConfigData;
+ EFI_TCP6_ACCESS_POINT *AccessPoint;
+ EFI_TCP6_OPTION *Option;
+ EFI_IP6_PROTOCOL *Ip;
Sock = Tcb->Sk;
@@ -162,41 +160,40 @@ Tcp6GetMode (
}
if (Mode->Tcp6State != NULL) {
- *(Mode->Tcp6State) = (EFI_TCP6_CONNECTION_STATE) (Tcb->State);
+ *(Mode->Tcp6State) = (EFI_TCP6_CONNECTION_STATE)(Tcb->State);
}
if (Mode->Tcp6ConfigData != NULL) {
+ ConfigData = Mode->Tcp6ConfigData;
+ AccessPoint = &(ConfigData->AccessPoint);
+ Option = ConfigData->ControlOption;
- ConfigData = Mode->Tcp6ConfigData;
- AccessPoint = &(ConfigData->AccessPoint);
- Option = ConfigData->ControlOption;
-
- ConfigData->TrafficClass = Tcb->Tos;
- ConfigData->HopLimit = Tcb->Ttl;
+ ConfigData->TrafficClass = Tcb->Tos;
+ ConfigData->HopLimit = Tcb->Ttl;
- AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
- AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
- AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN);
+ AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
+ AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
+ AccessPoint->ActiveFlag = (BOOLEAN)(Tcb->State != TCP_LISTEN);
IP6_COPY_ADDRESS (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip);
IP6_COPY_ADDRESS (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip);
if (Option != NULL) {
- Option->ReceiveBufferSize = GET_RCV_BUFFSIZE (Tcb->Sk);
- Option->SendBufferSize = GET_SND_BUFFSIZE (Tcb->Sk);
- Option->MaxSynBackLog = GET_BACKLOG (Tcb->Sk);
-
- Option->ConnectionTimeout = Tcb->ConnectTimeout / TCP_TICK_HZ;
- Option->DataRetries = Tcb->MaxRexmit;
- Option->FinTimeout = Tcb->FinWait2Timeout / TCP_TICK_HZ;
- Option->TimeWaitTimeout = Tcb->TimeWaitTimeout / TCP_TICK_HZ;
- Option->KeepAliveProbes = Tcb->MaxKeepAlive;
- Option->KeepAliveTime = Tcb->KeepAliveIdle / TCP_TICK_HZ;
- Option->KeepAliveInterval = Tcb->KeepAlivePeriod / TCP_TICK_HZ;
-
- Option->EnableNagle = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE));
- Option->EnableTimeStamp = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS));
- Option->EnableWindowScaling = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS));
+ Option->ReceiveBufferSize = GET_RCV_BUFFSIZE (Tcb->Sk);
+ Option->SendBufferSize = GET_SND_BUFFSIZE (Tcb->Sk);
+ Option->MaxSynBackLog = GET_BACKLOG (Tcb->Sk);
+
+ Option->ConnectionTimeout = Tcb->ConnectTimeout / TCP_TICK_HZ;
+ Option->DataRetries = Tcb->MaxRexmit;
+ Option->FinTimeout = Tcb->FinWait2Timeout / TCP_TICK_HZ;
+ Option->TimeWaitTimeout = Tcb->TimeWaitTimeout / TCP_TICK_HZ;
+ Option->KeepAliveProbes = Tcb->MaxKeepAlive;
+ Option->KeepAliveTime = Tcb->KeepAliveIdle / TCP_TICK_HZ;
+ Option->KeepAliveInterval = Tcb->KeepAlivePeriod / TCP_TICK_HZ;
+
+ Option->EnableNagle = (BOOLEAN)(!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE));
+ Option->EnableTimeStamp = (BOOLEAN)(!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS));
+ Option->EnableWindowScaling = (BOOLEAN)(!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS));
Option->EnableSelectiveAck = FALSE;
Option->EnablePathMtuDiscovery = FALSE;
@@ -248,7 +245,6 @@ TcpBind (
// Check if a same endpoing is bound.
//
if (TcpFindTcbByPeer (&Local, *Port, IpVersion)) {
-
return EFI_INVALID_PARAMETER;
}
} else {
@@ -270,14 +266,14 @@ TcpBind (
if (Cycle) {
DEBUG (
(DEBUG_ERROR,
- "TcpBind: no port can be allocated for this pcb\n")
+ "TcpBind: no port can be allocated for this pcb\n")
);
return EFI_OUT_OF_RESOURCES;
}
*RandomPort = TCP_PORT_KNOWN + 1;
- Cycle = TRUE;
+ Cycle = TRUE;
}
}
@@ -295,14 +291,14 @@ TcpBind (
**/
VOID
TcpFlushPcb (
- IN OUT TCP_CB *Tcb
+ IN OUT TCP_CB *Tcb
)
{
- SOCKET *Sock;
+ SOCKET *Sock;
IpIoConfigIp (Tcb->IpInfo, NULL);
- Sock = Tcb->Sk;
+ Sock = Tcb->Sk;
if (SOCK_IS_CONFIGURED (Sock)) {
RemoveEntryList (&Tcb->List);
@@ -324,7 +320,7 @@ TcpFlushPcb (
NetbufFreeList (&Tcb->SndQue);
NetbufFreeList (&Tcb->RcvQue);
- Tcb->State = TCP_CLOSED;
+ Tcb->State = TCP_CLOSED;
Tcb->RemoteIpZero = FALSE;
}
@@ -358,13 +354,12 @@ TcpAttachPcb (
Tcb = AllocateZeroPool (sizeof (TCP_CB));
if (Tcb == NULL) {
-
DEBUG ((DEBUG_ERROR, "TcpConfigurePcb: failed to allocate a TCB\n"));
return EFI_OUT_OF_RESOURCES;
}
- ProtoData = (TCP_PROTO_DATA *) Sk->ProtoReserved;
+ ProtoData = (TCP_PROTO_DATA *)Sk->ProtoReserved;
IpIo = ProtoData->TcpService->IpIo;
//
@@ -372,7 +367,6 @@ TcpAttachPcb (
//
Tcb->IpInfo = IpIoAddIp (IpIo);
if (Tcb->IpInfo == NULL) {
-
FreePool (Tcb);
return EFI_OUT_OF_RESOURCES;
}
@@ -413,13 +407,13 @@ TcpAttachPcb (
**/
VOID
TcpDetachPcb (
- IN OUT SOCKET *Sk
+ IN OUT SOCKET *Sk
)
{
- TCP_PROTO_DATA *ProtoData;
- TCP_CB *Tcb;
+ TCP_PROTO_DATA *ProtoData;
+ TCP_CB *Tcb;
- ProtoData = (TCP_PROTO_DATA *) Sk->ProtoReserved;
+ ProtoData = (TCP_PROTO_DATA *)Sk->ProtoReserved;
Tcb = ProtoData->TcpPcb;
ASSERT (Tcb != NULL);
@@ -451,16 +445,16 @@ TcpConfigurePcb (
IN TCP_CONFIG_DATA *CfgData
)
{
- IP_IO_IP_CONFIG_DATA IpCfgData;
- EFI_STATUS Status;
- EFI_TCP4_OPTION *Option;
- TCP_PROTO_DATA *TcpProto;
- TCP_CB *Tcb;
- TCP_ACCESS_POINT *TcpAp;
+ IP_IO_IP_CONFIG_DATA IpCfgData;
+ EFI_STATUS Status;
+ EFI_TCP4_OPTION *Option;
+ TCP_PROTO_DATA *TcpProto;
+ TCP_CB *Tcb;
+ TCP_ACCESS_POINT *TcpAp;
ASSERT ((CfgData != NULL) && (Sk != NULL) && (Sk->SockHandle != NULL));
- TcpProto = (TCP_PROTO_DATA *) Sk->ProtoReserved;
+ TcpProto = (TCP_PROTO_DATA *)Sk->ProtoReserved;
Tcb = TcpProto->TcpPcb;
ASSERT (Tcb != NULL);
@@ -470,28 +464,27 @@ TcpConfigurePcb (
// Add Ip for send pkt to the peer
//
CopyMem (&IpCfgData.Ip4CfgData, &mIp4IoDefaultIpConfigData, sizeof (EFI_IP4_CONFIG_DATA));
- IpCfgData.Ip4CfgData.DefaultProtocol = EFI_IP_PROTO_TCP;
- IpCfgData.Ip4CfgData.TypeOfService = CfgData->Tcp4CfgData.TypeOfService;
- IpCfgData.Ip4CfgData.TimeToLive = CfgData->Tcp4CfgData.TimeToLive;
- IpCfgData.Ip4CfgData.UseDefaultAddress = CfgData->Tcp4CfgData.AccessPoint.UseDefaultAddress;
+ IpCfgData.Ip4CfgData.DefaultProtocol = EFI_IP_PROTO_TCP;
+ IpCfgData.Ip4CfgData.TypeOfService = CfgData->Tcp4CfgData.TypeOfService;
+ IpCfgData.Ip4CfgData.TimeToLive = CfgData->Tcp4CfgData.TimeToLive;
+ IpCfgData.Ip4CfgData.UseDefaultAddress = CfgData->Tcp4CfgData.AccessPoint.UseDefaultAddress;
IP4_COPY_ADDRESS (
&IpCfgData.Ip4CfgData.SubnetMask,
&CfgData->Tcp4CfgData.AccessPoint.SubnetMask
);
- IpCfgData.Ip4CfgData.ReceiveTimeout = (UINT32) (-1);
+ IpCfgData.Ip4CfgData.ReceiveTimeout = (UINT32)(-1);
IP4_COPY_ADDRESS (
&IpCfgData.Ip4CfgData.StationAddress,
&CfgData->Tcp4CfgData.AccessPoint.StationAddress
);
-
} else {
ASSERT (Sk->IpVersion == IP_VERSION_6);
CopyMem (&IpCfgData.Ip6CfgData, &mIp6IoDefaultIpConfigData, sizeof (EFI_IP6_CONFIG_DATA));
- IpCfgData.Ip6CfgData.DefaultProtocol = EFI_IP_PROTO_TCP;
- IpCfgData.Ip6CfgData.TrafficClass = CfgData->Tcp6CfgData.TrafficClass;
- IpCfgData.Ip6CfgData.HopLimit = CfgData->Tcp6CfgData.HopLimit;
- IpCfgData.Ip6CfgData.ReceiveTimeout = (UINT32) (-1);
+ IpCfgData.Ip6CfgData.DefaultProtocol = EFI_IP_PROTO_TCP;
+ IpCfgData.Ip6CfgData.TrafficClass = CfgData->Tcp6CfgData.TrafficClass;
+ IpCfgData.Ip6CfgData.HopLimit = CfgData->Tcp6CfgData.HopLimit;
+ IpCfgData.Ip6CfgData.ReceiveTimeout = (UINT32)(-1);
IP6_COPY_ADDRESS (
&IpCfgData.Ip6CfgData.StationAddress,
&CfgData->Tcp6CfgData.AccessPoint.StationAddress
@@ -523,14 +516,14 @@ TcpConfigurePcb (
&IpCfgData.Ip4CfgData.SubnetMask
);
- TcpAp = (TCP_ACCESS_POINT *) &CfgData->Tcp4CfgData.AccessPoint;
+ TcpAp = (TCP_ACCESS_POINT *)&CfgData->Tcp4CfgData.AccessPoint;
} else {
IP6_COPY_ADDRESS (
&CfgData->Tcp6CfgData.AccessPoint.StationAddress,
&IpCfgData.Ip6CfgData.StationAddress
);
- TcpAp = (TCP_ACCESS_POINT *) &CfgData->Tcp6CfgData.AccessPoint;
+ TcpAp = (TCP_ACCESS_POINT *)&CfgData->Tcp6CfgData.AccessPoint;
}
//
@@ -541,8 +534,8 @@ TcpConfigurePcb (
if (EFI_ERROR (Status)) {
DEBUG (
(DEBUG_ERROR,
- "TcpConfigurePcb: Bind endpoint failed with %r\n",
- Status)
+ "TcpConfigurePcb: Bind endpoint failed with %r\n",
+ Status)
);
goto OnExit;
@@ -551,55 +544,57 @@ TcpConfigurePcb (
//
// Initialize the operating information in this Tcb
//
- ASSERT (Tcb->State == TCP_CLOSED &&
+ ASSERT (
+ Tcb->State == TCP_CLOSED &&
IsListEmpty (&Tcb->SndQue) &&
- IsListEmpty (&Tcb->RcvQue));
+ IsListEmpty (&Tcb->RcvQue)
+ );
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE);
- Tcb->State = TCP_CLOSED;
+ Tcb->State = TCP_CLOSED;
- Tcb->SndMss = 536;
- Tcb->RcvMss = TcpGetRcvMss (Sk);
+ Tcb->SndMss = 536;
+ Tcb->RcvMss = TcpGetRcvMss (Sk);
- Tcb->SRtt = 0;
- Tcb->Rto = 3 * TCP_TICK_HZ;
+ Tcb->SRtt = 0;
+ Tcb->Rto = 3 * TCP_TICK_HZ;
- Tcb->CWnd = Tcb->SndMss;
- Tcb->Ssthresh = 0xffffffff;
+ Tcb->CWnd = Tcb->SndMss;
+ Tcb->Ssthresh = 0xffffffff;
- Tcb->CongestState = TCP_CONGEST_OPEN;
+ Tcb->CongestState = TCP_CONGEST_OPEN;
- Tcb->KeepAliveIdle = TCP_KEEPALIVE_IDLE_MIN;
- Tcb->KeepAlivePeriod = TCP_KEEPALIVE_PERIOD;
- Tcb->MaxKeepAlive = TCP_MAX_KEEPALIVE;
- Tcb->MaxRexmit = TCP_MAX_LOSS;
- Tcb->FinWait2Timeout = TCP_FIN_WAIT2_TIME;
- Tcb->TimeWaitTimeout = TCP_TIME_WAIT_TIME;
- Tcb->ConnectTimeout = TCP_CONNECT_TIME;
+ Tcb->KeepAliveIdle = TCP_KEEPALIVE_IDLE_MIN;
+ Tcb->KeepAlivePeriod = TCP_KEEPALIVE_PERIOD;
+ Tcb->MaxKeepAlive = TCP_MAX_KEEPALIVE;
+ Tcb->MaxRexmit = TCP_MAX_LOSS;
+ Tcb->FinWait2Timeout = TCP_FIN_WAIT2_TIME;
+ Tcb->TimeWaitTimeout = TCP_TIME_WAIT_TIME;
+ Tcb->ConnectTimeout = TCP_CONNECT_TIME;
if (Sk->IpVersion == IP_VERSION_4) {
//
// initialize Tcb in the light of CfgData
//
- Tcb->Ttl = CfgData->Tcp4CfgData.TimeToLive;
- Tcb->Tos = CfgData->Tcp4CfgData.TypeOfService;
+ Tcb->Ttl = CfgData->Tcp4CfgData.TimeToLive;
+ Tcb->Tos = CfgData->Tcp4CfgData.TypeOfService;
Tcb->UseDefaultAddr = CfgData->Tcp4CfgData.AccessPoint.UseDefaultAddress;
CopyMem (&Tcb->LocalEnd.Ip, &CfgData->Tcp4CfgData.AccessPoint.StationAddress, sizeof (IP4_ADDR));
- Tcb->LocalEnd.Port = HTONS (CfgData->Tcp4CfgData.AccessPoint.StationPort);
+ Tcb->LocalEnd.Port = HTONS (CfgData->Tcp4CfgData.AccessPoint.StationPort);
IP4_COPY_ADDRESS (&Tcb->SubnetMask, &CfgData->Tcp4CfgData.AccessPoint.SubnetMask);
CopyMem (&Tcb->RemoteEnd.Ip, &CfgData->Tcp4CfgData.AccessPoint.RemoteAddress, sizeof (IP4_ADDR));
Tcb->RemoteEnd.Port = HTONS (CfgData->Tcp4CfgData.AccessPoint.RemotePort);
- Option = CfgData->Tcp4CfgData.ControlOption;
+ Option = CfgData->Tcp4CfgData.ControlOption;
} else {
- Tcb->Ttl = CfgData->Tcp6CfgData.HopLimit;
- Tcb->Tos = CfgData->Tcp6CfgData.TrafficClass;
+ Tcb->Ttl = CfgData->Tcp6CfgData.HopLimit;
+ Tcb->Tos = CfgData->Tcp6CfgData.TrafficClass;
IP6_COPY_ADDRESS (&Tcb->LocalEnd.Ip, &CfgData->Tcp6CfgData.AccessPoint.StationAddress);
- Tcb->LocalEnd.Port = HTONS (CfgData->Tcp6CfgData.AccessPoint.StationPort);
+ Tcb->LocalEnd.Port = HTONS (CfgData->Tcp6CfgData.AccessPoint.StationPort);
IP6_COPY_ADDRESS (&Tcb->RemoteEnd.Ip, &CfgData->Tcp6CfgData.AccessPoint.RemoteAddress);
Tcb->RemoteEnd.Port = HTONS (CfgData->Tcp6CfgData.AccessPoint.RemotePort);
@@ -607,61 +602,61 @@ TcpConfigurePcb (
//
// Type EFI_TCP4_OPTION and EFI_TCP6_OPTION are the same.
//
- Option = (EFI_TCP4_OPTION *) CfgData->Tcp6CfgData.ControlOption;
+ Option = (EFI_TCP4_OPTION *)CfgData->Tcp6CfgData.ControlOption;
}
if (Option != NULL) {
SET_RCV_BUFFSIZE (
Sk,
- (UINT32) (TCP_COMP_VAL (
- TCP_RCV_BUF_SIZE_MIN,
- TCP_RCV_BUF_SIZE,
- TCP_RCV_BUF_SIZE,
- Option->ReceiveBufferSize
- )
+ (UINT32)(TCP_COMP_VAL (
+ TCP_RCV_BUF_SIZE_MIN,
+ TCP_RCV_BUF_SIZE,
+ TCP_RCV_BUF_SIZE,
+ Option->ReceiveBufferSize
+ )
)
);
SET_SND_BUFFSIZE (
Sk,
- (UINT32) (TCP_COMP_VAL (
- TCP_SND_BUF_SIZE_MIN,
- TCP_SND_BUF_SIZE,
- TCP_SND_BUF_SIZE,
- Option->SendBufferSize
- )
+ (UINT32)(TCP_COMP_VAL (
+ TCP_SND_BUF_SIZE_MIN,
+ TCP_SND_BUF_SIZE,
+ TCP_SND_BUF_SIZE,
+ Option->SendBufferSize
+ )
)
);
SET_BACKLOG (
Sk,
- (UINT32) (TCP_COMP_VAL (
- TCP_BACKLOG_MIN,
- TCP_BACKLOG,
- TCP_BACKLOG,
- Option->MaxSynBackLog
- )
+ (UINT32)(TCP_COMP_VAL (
+ TCP_BACKLOG_MIN,
+ TCP_BACKLOG,
+ TCP_BACKLOG,
+ Option->MaxSynBackLog
+ )
)
);
- Tcb->MaxRexmit = (UINT16) TCP_COMP_VAL (
- TCP_MAX_LOSS_MIN,
- TCP_MAX_LOSS,
- TCP_MAX_LOSS,
- Option->DataRetries
- );
+ Tcb->MaxRexmit = (UINT16)TCP_COMP_VAL (
+ TCP_MAX_LOSS_MIN,
+ TCP_MAX_LOSS,
+ TCP_MAX_LOSS,
+ Option->DataRetries
+ );
Tcb->FinWait2Timeout = TCP_COMP_VAL (
- TCP_FIN_WAIT2_TIME,
- TCP_FIN_WAIT2_TIME_MAX,
- TCP_FIN_WAIT2_TIME,
- (UINT32) (Option->FinTimeout * TCP_TICK_HZ)
- );
+ TCP_FIN_WAIT2_TIME,
+ TCP_FIN_WAIT2_TIME_MAX,
+ TCP_FIN_WAIT2_TIME,
+ (UINT32)(Option->FinTimeout * TCP_TICK_HZ)
+ );
if (Option->TimeWaitTimeout != 0) {
Tcb->TimeWaitTimeout = TCP_COMP_VAL (
TCP_TIME_WAIT_TIME,
TCP_TIME_WAIT_TIME_MAX,
TCP_TIME_WAIT_TIME,
- (UINT32) (Option->TimeWaitTimeout * TCP_TICK_HZ)
+ (UINT32)(Option->TimeWaitTimeout * TCP_TICK_HZ)
);
} else {
Tcb->TimeWaitTimeout = 0;
@@ -670,23 +665,23 @@ TcpConfigurePcb (
if (Option->KeepAliveProbes != 0) {
TCP_CLEAR_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE);
- Tcb->MaxKeepAlive = (UINT8) TCP_COMP_VAL (
- TCP_MAX_KEEPALIVE_MIN,
- TCP_MAX_KEEPALIVE,
- TCP_MAX_KEEPALIVE,
- Option->KeepAliveProbes
- );
+ Tcb->MaxKeepAlive = (UINT8)TCP_COMP_VAL (
+ TCP_MAX_KEEPALIVE_MIN,
+ TCP_MAX_KEEPALIVE,
+ TCP_MAX_KEEPALIVE,
+ Option->KeepAliveProbes
+ );
Tcb->KeepAliveIdle = TCP_COMP_VAL (
TCP_KEEPALIVE_IDLE_MIN,
TCP_KEEPALIVE_IDLE_MAX,
TCP_KEEPALIVE_IDLE_MIN,
- (UINT32) (Option->KeepAliveTime * TCP_TICK_HZ)
+ (UINT32)(Option->KeepAliveTime * TCP_TICK_HZ)
);
Tcb->KeepAlivePeriod = TCP_COMP_VAL (
TCP_KEEPALIVE_PERIOD_MIN,
TCP_KEEPALIVE_PERIOD,
TCP_KEEPALIVE_PERIOD,
- (UINT32) (Option->KeepAliveInterval * TCP_TICK_HZ)
+ (UINT32)(Option->KeepAliveInterval * TCP_TICK_HZ)
);
}
@@ -694,7 +689,7 @@ TcpConfigurePcb (
TCP_CONNECT_TIME_MIN,
TCP_CONNECT_TIME,
TCP_CONNECT_TIME,
- (UINT32) (Option->ConnectionTimeout * TCP_TICK_HZ)
+ (UINT32)(Option->ConnectionTimeout * TCP_TICK_HZ)
);
if (!Option->EnableNagle) {
@@ -724,19 +719,18 @@ TcpConfigurePcb (
//
if (((Sk->IpVersion == IP_VERSION_4) && !CfgData->Tcp4CfgData.AccessPoint.ActiveFlag) ||
((Sk->IpVersion == IP_VERSION_6) && !CfgData->Tcp6CfgData.AccessPoint.ActiveFlag)
- ) {
-
+ )
+ {
TcpSetState (Tcb, TCP_LISTEN);
SockSetState (Sk, SO_LISTENING);
Sk->ConfigureState = SO_CONFIGURED_PASSIVE;
} else {
-
Sk->ConfigureState = SO_CONFIGURED_ACTIVE;
}
if (Sk->IpVersion == IP_VERSION_6) {
- Tcb->Tick = TCP6_REFRESH_NEIGHBOR_TICK;
+ Tcb->Tick = TCP6_REFRESH_NEIGHBOR_TICK;
if (NetIp6IsUnspecifiedAddr (&Tcb->RemoteEnd.Ip.v6)) {
Tcb->RemoteIpZero = TRUE;
@@ -768,123 +762,121 @@ OnExit:
**/
EFI_STATUS
TcpDispatcher (
- IN SOCKET *Sock,
- IN UINT8 Request,
- IN VOID *Data OPTIONAL
+ IN SOCKET *Sock,
+ IN UINT8 Request,
+ IN VOID *Data OPTIONAL
)
{
TCP_CB *Tcb;
TCP_PROTO_DATA *ProtoData;
- ProtoData = (TCP_PROTO_DATA *) Sock->ProtoReserved;
+ ProtoData = (TCP_PROTO_DATA *)Sock->ProtoReserved;
Tcb = ProtoData->TcpPcb;
switch (Request) {
- case SOCK_POLL:
- if (Tcb->Sk->IpVersion == IP_VERSION_4) {
- ProtoData->TcpService->IpIo->Ip.Ip4->Poll (ProtoData->TcpService->IpIo->Ip.Ip4);
- } else {
- ProtoData->TcpService->IpIo->Ip.Ip6->Poll (ProtoData->TcpService->IpIo->Ip.Ip6);
- }
-
- break;
-
- case SOCK_CONSUMED:
- //
- // After user received data from socket buffer, socket will
- // notify TCP using this message to give it a chance to send out
- // window update information
- //
- ASSERT (Tcb != NULL);
- TcpOnAppConsume (Tcb);
- break;
+ case SOCK_POLL:
+ if (Tcb->Sk->IpVersion == IP_VERSION_4) {
+ ProtoData->TcpService->IpIo->Ip.Ip4->Poll (ProtoData->TcpService->IpIo->Ip.Ip4);
+ } else {
+ ProtoData->TcpService->IpIo->Ip.Ip6->Poll (ProtoData->TcpService->IpIo->Ip.Ip6);
+ }
- case SOCK_SND:
+ break;
- ASSERT (Tcb != NULL);
- TcpOnAppSend (Tcb);
- break;
+ case SOCK_CONSUMED:
+ //
+ // After user received data from socket buffer, socket will
+ // notify TCP using this message to give it a chance to send out
+ // window update information
+ //
+ ASSERT (Tcb != NULL);
+ TcpOnAppConsume (Tcb);
+ break;
- case SOCK_CLOSE:
+ case SOCK_SND:
- TcpOnAppClose (Tcb);
+ ASSERT (Tcb != NULL);
+ TcpOnAppSend (Tcb);
+ break;
- break;
+ case SOCK_CLOSE:
- case SOCK_ABORT:
+ TcpOnAppClose (Tcb);
- TcpOnAppAbort (Tcb);
+ break;
- break;
+ case SOCK_ABORT:
- case SOCK_SNDPUSH:
- Tcb->SndPsh = TcpGetMaxSndNxt (Tcb) + GET_SND_DATASIZE (Tcb->Sk);
- TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_PSH);
+ TcpOnAppAbort (Tcb);
- break;
+ break;
- case SOCK_SNDURG:
- Tcb->SndUp = TcpGetMaxSndNxt (Tcb) + GET_SND_DATASIZE (Tcb->Sk) - 1;
- TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_URG);
+ case SOCK_SNDPUSH:
+ Tcb->SndPsh = TcpGetMaxSndNxt (Tcb) + GET_SND_DATASIZE (Tcb->Sk);
+ TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_PSH);
- break;
+ break;
- case SOCK_CONNECT:
+ case SOCK_SNDURG:
+ Tcb->SndUp = TcpGetMaxSndNxt (Tcb) + GET_SND_DATASIZE (Tcb->Sk) - 1;
+ TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_URG);
- TcpOnAppConnect (Tcb);
+ break;
- break;
+ case SOCK_CONNECT:
- case SOCK_ATTACH:
+ TcpOnAppConnect (Tcb);
- return TcpAttachPcb (Sock);
+ break;
- break;
+ case SOCK_ATTACH:
- case SOCK_FLUSH:
+ return TcpAttachPcb (Sock);
- TcpFlushPcb (Tcb);
+ break;
- break;
+ case SOCK_FLUSH:
- case SOCK_DETACH:
+ TcpFlushPcb (Tcb);
- TcpDetachPcb (Sock);
+ break;
- break;
+ case SOCK_DETACH:
- case SOCK_CONFIGURE:
+ TcpDetachPcb (Sock);
- return TcpConfigurePcb (
- Sock,
- (TCP_CONFIG_DATA *) Data
- );
+ break;
- break;
+ case SOCK_CONFIGURE:
- case SOCK_MODE:
+ return TcpConfigurePcb (
+ Sock,
+ (TCP_CONFIG_DATA *)Data
+ );
- ASSERT ((Data != NULL) && (Tcb != NULL));
+ break;
- if (Tcb->Sk->IpVersion == IP_VERSION_4) {
+ case SOCK_MODE:
- return Tcp4GetMode (Tcb, (TCP4_MODE_DATA *) Data);
- } else {
+ ASSERT ((Data != NULL) && (Tcb != NULL));
- return Tcp6GetMode (Tcb, (TCP6_MODE_DATA *) Data);
- }
+ if (Tcb->Sk->IpVersion == IP_VERSION_4) {
+ return Tcp4GetMode (Tcb, (TCP4_MODE_DATA *)Data);
+ } else {
+ return Tcp6GetMode (Tcb, (TCP6_MODE_DATA *)Data);
+ }
- break;
+ break;
- case SOCK_ROUTE:
+ case SOCK_ROUTE:
- ASSERT ((Data != NULL) && (Tcb != NULL) && (Tcb->Sk->IpVersion == IP_VERSION_4));
+ ASSERT ((Data != NULL) && (Tcb != NULL) && (Tcb->Sk->IpVersion == IP_VERSION_4));
- return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *) Data);
+ return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *)Data);
- default:
+ default:
- return EFI_UNSUPPORTED;
+ return EFI_UNSUPPORTED;
}
return EFI_SUCCESS;