summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/TcpDxe
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2014-05-07 06:17:31 +0000
committersfu5 <sfu5@6f19259b-4bc3-4df7-8a09-765794883524>2014-05-07 06:17:31 +0000
commitd551cc64cdf1f943744294819220b78a60b10822 (patch)
tree2d101c7186e6cda17743a85dda99c975e3d33d01 /NetworkPkg/TcpDxe
parent5966402ed51c5b611bf437c812047dc9c432a47e (diff)
downloadedk2-d551cc64cdf1f943744294819220b78a60b10822.tar.gz
edk2-d551cc64cdf1f943744294819220b78a60b10822.tar.bz2
edk2-d551cc64cdf1f943744294819220b78a60b10822.zip
1. Mark the network volatile variables as deprecated in code comments and remove related code to set/get these variable.
2. Remove the GetTime() call when receiving Udp4/6 packets. Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Ye, Ting <ting.ye@intel.com> Reviewed-by: Wu, Jiaxin <jiaxin.wu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15497 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'NetworkPkg/TcpDxe')
-rw-r--r--NetworkPkg/TcpDxe/TcpDispatcher.c4
-rw-r--r--NetworkPkg/TcpDxe/TcpDriver.c9
-rw-r--r--NetworkPkg/TcpDxe/TcpDriver.h3
-rw-r--r--NetworkPkg/TcpDxe/TcpFunc.h27
-rw-r--r--NetworkPkg/TcpDxe/TcpMisc.c263
5 files changed, 5 insertions, 301 deletions
diff --git a/NetworkPkg/TcpDxe/TcpDispatcher.c b/NetworkPkg/TcpDxe/TcpDispatcher.c
index d3d2cb1c3a..9fe93f6e8b 100644
--- a/NetworkPkg/TcpDxe/TcpDispatcher.c
+++ b/NetworkPkg/TcpDxe/TcpDispatcher.c
@@ -1,7 +1,7 @@
/** @file
The implementation of a dispatch routine for processing TCP requests.
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2014, 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
@@ -327,8 +327,6 @@ TcpFlushPcb (
FreePool (Sock->DevicePath);
Sock->DevicePath = NULL;
}
-
- TcpSetVariableData (TcpProto->TcpService);
}
NetbufFreeList (&Tcb->SndQue);
diff --git a/NetworkPkg/TcpDxe/TcpDriver.c b/NetworkPkg/TcpDxe/TcpDriver.c
index 1f0d371654..ce3dd0be63 100644
--- a/NetworkPkg/TcpDxe/TcpDriver.c
+++ b/NetworkPkg/TcpDxe/TcpDriver.c
@@ -1,7 +1,7 @@
/** @file
The driver binding and service binding protocol for the TCP driver.
- Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2014, 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
@@ -349,8 +349,6 @@ TcpCreateService (
goto ON_ERROR;
}
- TcpSetVariableData (TcpServiceData);
-
return EFI_SUCCESS;
ON_ERROR:
@@ -500,11 +498,6 @@ TcpDestroyService (
TcpDestroyTimer ();
//
- // Clear the variable.
- //
- TcpClearVariableData (TcpServiceData);
-
- //
// Release the TCP service data
//
FreePool (TcpServiceData);
diff --git a/NetworkPkg/TcpDxe/TcpDriver.h b/NetworkPkg/TcpDxe/TcpDriver.h
index 5208048edf..19dd168e89 100644
--- a/NetworkPkg/TcpDxe/TcpDriver.h
+++ b/NetworkPkg/TcpDxe/TcpDriver.h
@@ -1,7 +1,7 @@
/** @file
The prototype of driver binding and service binding protocol for TCP driver.
- Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2014, 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
@@ -33,7 +33,6 @@ typedef struct _TCP_SERVICE_DATA {
UINT8 IpVersion;
IP_IO *IpIo;
EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
- CHAR16 *MacString;
LIST_ENTRY SocketList;
} TCP_SERVICE_DATA;
diff --git a/NetworkPkg/TcpDxe/TcpFunc.h b/NetworkPkg/TcpDxe/TcpFunc.h
index c23ba94e44..2076109254 100644
--- a/NetworkPkg/TcpDxe/TcpFunc.h
+++ b/NetworkPkg/TcpDxe/TcpFunc.h
@@ -1,7 +1,7 @@
/** @file
Declaration of external functions shared in TCP driver.
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2014, 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
@@ -277,31 +277,6 @@ TcpResetConnection (
);
/**
- Set the Tcp variable data.
-
- @param[in] TcpService Tcp service data.
-
- @retval EFI_OUT_OF_RESOURCES There are not enough resources to set the variable.
- @retval other Set variable failed.
-
-**/
-EFI_STATUS
-TcpSetVariableData (
- IN TCP_SERVICE_DATA *TcpService
- );
-
-/**
- Clear the variable and free the resource.
-
- @param[in] TcpService Tcp service data.
-
-**/
-VOID
-TcpClearVariableData (
- IN TCP_SERVICE_DATA *TcpService
- );
-
-/**
Install the device path protocol on the TCP instance.
@param[in] Sock Pointer to the socket representing the TCP instance.
diff --git a/NetworkPkg/TcpDxe/TcpMisc.c b/NetworkPkg/TcpDxe/TcpMisc.c
index 21bd9dfec1..5394f7d1ca 100644
--- a/NetworkPkg/TcpDxe/TcpMisc.c
+++ b/NetworkPkg/TcpDxe/TcpMisc.c
@@ -1,7 +1,7 @@
/** @file
Misc support routines for TCP driver.
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2014, 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
@@ -467,7 +467,6 @@ TcpInsertTcb (
InsertHeadList (Head, &Tcb->List);
TcpProto = (TCP_PROTO_DATA *) Tcb->Sk->ProtoReserved;
- TcpSetVariableData (TcpProto->TcpService);
return 0;
}
@@ -944,266 +943,6 @@ TcpResetConnection (
}
/**
- Set the Tcp variable data.
-
- @param[in] TcpService Tcp service data.
-
- @retval EFI_OUT_OF_RESOURCES There are not enough resources to set the variable.
- @retval other Set variable failed.
-
-**/
-EFI_STATUS
-TcpSetVariableData (
- IN TCP_SERVICE_DATA *TcpService
- )
-{
- EFI_GUID *ServiceBindingGuid;
- UINT32 NumConfiguredInstance;
- LIST_ENTRY *Entry;
- TCP_CB *TcpPcb;
- TCP_PROTO_DATA *TcpProto;
- UINTN VariableDataSize;
- EFI_TCP4_VARIABLE_DATA *Tcp4VariableData;
- EFI_TCP4_SERVICE_POINT *Tcp4ServicePoint;
- EFI_TCP6_VARIABLE_DATA *Tcp6VariableData;
- EFI_TCP6_SERVICE_POINT *Tcp6ServicePoint;
- VOID *VariableData;
- CHAR16 *NewMacString;
- EFI_STATUS Status;
-
- if (TcpService->IpVersion == IP_VERSION_4) {
- ServiceBindingGuid = &gEfiTcp4ServiceBindingProtocolGuid;
- } else {
- ServiceBindingGuid = &gEfiTcp6ServiceBindingProtocolGuid;
- }
-
- NumConfiguredInstance = 0;
- Tcp4VariableData = NULL;
- Tcp6VariableData = NULL;
-
- //
- // Go through the running queue to count the instances.
- //
- NET_LIST_FOR_EACH (Entry, &mTcpRunQue) {
- TcpPcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List);
-
- TcpProto = (TCP_PROTO_DATA *) TcpPcb->Sk->ProtoReserved;
-
- if (TcpProto->TcpService == TcpService) {
- //
- // This tcp instance belongs to the TcpService.
- //
- NumConfiguredInstance++;
- }
- }
-
- //
- // Go through the listening queue to count the instances.
- //
- NET_LIST_FOR_EACH (Entry, &mTcpListenQue) {
- TcpPcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List);
-
- TcpProto = (TCP_PROTO_DATA *) TcpPcb->Sk->ProtoReserved;
-
- if (TcpProto->TcpService == TcpService) {
- //
- // This tcp instance belongs to the TcpService.
- //
- NumConfiguredInstance++;
- }
- }
-
- Tcp4ServicePoint = NULL;
- Tcp6ServicePoint = NULL;
-
- //
- // Calculate the size of the Tcp4VariableData. As there may be no Tcp4 child,
- // we should add extra buffers for the service points only if the number of configured
- // children is more than one.
- //
- if (TcpService->IpVersion == IP_VERSION_4) {
- VariableDataSize = sizeof (EFI_TCP4_VARIABLE_DATA);
-
- if (NumConfiguredInstance > 1) {
- VariableDataSize += sizeof (EFI_TCP4_SERVICE_POINT) * (NumConfiguredInstance - 1);
- }
-
- Tcp4VariableData = AllocateZeroPool (VariableDataSize);
- if (Tcp4VariableData == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
-
- Tcp4VariableData->DriverHandle = TcpService->DriverBindingHandle;
- Tcp4VariableData->ServiceCount = NumConfiguredInstance;
-
- Tcp4ServicePoint = &Tcp4VariableData->Services[0];
- VariableData = Tcp4VariableData;
- } else {
- VariableDataSize = sizeof (EFI_TCP6_VARIABLE_DATA);
-
- if (NumConfiguredInstance > 1) {
- VariableDataSize += sizeof (EFI_TCP6_SERVICE_POINT) * (NumConfiguredInstance - 1);
- }
-
- Tcp6VariableData = AllocateZeroPool (VariableDataSize);
- if (Tcp6VariableData == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
-
- Tcp6VariableData->DriverHandle = TcpService->DriverBindingHandle;
- Tcp6VariableData->ServiceCount = NumConfiguredInstance;
-
- Tcp6ServicePoint = &Tcp6VariableData->Services[0];
- VariableData = Tcp6VariableData;
- }
-
- //
- // Go through the running queue to fill the service points.
- //
- NET_LIST_FOR_EACH (Entry, &mTcpRunQue) {
- TcpPcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List);
-
- TcpProto = (TCP_PROTO_DATA *) TcpPcb->Sk->ProtoReserved;
-
- if (TcpProto->TcpService == TcpService) {
- //
- // This tcp instance belongs to the TcpService.
- //
- if (TcpService->IpVersion == IP_VERSION_4) {
- Tcp4ServicePoint->InstanceHandle = TcpPcb->Sk->SockHandle;
- CopyMem (&Tcp4ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
- Tcp4ServicePoint->LocalPort = NTOHS (TcpPcb->LocalEnd.Port);
- CopyMem (&Tcp4ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
- Tcp4ServicePoint->RemotePort = NTOHS (TcpPcb->RemoteEnd.Port);
-
- Tcp4ServicePoint++;
- } else {
- Tcp6ServicePoint->InstanceHandle = TcpPcb->Sk->SockHandle;
- IP6_COPY_ADDRESS (&Tcp6ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip);
- Tcp6ServicePoint->LocalPort = NTOHS (TcpPcb->LocalEnd.Port);
- IP6_COPY_ADDRESS (&Tcp6ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip);
- Tcp6ServicePoint->RemotePort = NTOHS (TcpPcb->RemoteEnd.Port);
-
- Tcp6ServicePoint++;
- }
- }
- }
-
- //
- // Go through the listening queue to fill the service points.
- //
- NET_LIST_FOR_EACH (Entry, &mTcpListenQue) {
- TcpPcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List);
-
- TcpProto = (TCP_PROTO_DATA *) TcpPcb->Sk->ProtoReserved;
-
- if (TcpProto->TcpService == TcpService) {
- //
- // This tcp instance belongs to the TcpService.
- //
- if (TcpService->IpVersion == IP_VERSION_4) {
- Tcp4ServicePoint->InstanceHandle = TcpPcb->Sk->SockHandle;
- CopyMem (&Tcp4ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
- Tcp4ServicePoint->LocalPort = NTOHS (TcpPcb->LocalEnd.Port);
- CopyMem (&Tcp4ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
- Tcp4ServicePoint->RemotePort = NTOHS (TcpPcb->RemoteEnd.Port);
-
- Tcp4ServicePoint++;
- } else {
- Tcp6ServicePoint->InstanceHandle = TcpPcb->Sk->SockHandle;
- IP6_COPY_ADDRESS (&Tcp6ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip);
- Tcp6ServicePoint->LocalPort = NTOHS (TcpPcb->LocalEnd.Port);
- IP6_COPY_ADDRESS (&Tcp6ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip);
- Tcp6ServicePoint->RemotePort = NTOHS (TcpPcb->RemoteEnd.Port);
-
- Tcp6ServicePoint++;
- }
- }
- }
-
- //
- // Get the mac string.
- //
- Status = NetLibGetMacString (
- TcpService->ControllerHandle,
- TcpService->DriverBindingHandle,
- &NewMacString
- );
- if (EFI_ERROR (Status)) {
- goto ON_ERROR;
- }
-
- if (TcpService->MacString != NULL) {
- //
- // The variable is set already. We're going to update it.
- //
- if (StrCmp (TcpService->MacString, NewMacString) != 0) {
- //
- // The mac address is changed. Delete the previous variable first.
- //
- gRT->SetVariable (
- TcpService->MacString,
- ServiceBindingGuid,
- EFI_VARIABLE_BOOTSERVICE_ACCESS,
- 0,
- NULL
- );
- }
-
- FreePool (TcpService->MacString);
- }
-
- TcpService->MacString = NewMacString;
-
- Status = gRT->SetVariable (
- TcpService->MacString,
- ServiceBindingGuid,
- EFI_VARIABLE_BOOTSERVICE_ACCESS,
- VariableDataSize,
- VariableData
- );
-
-ON_ERROR:
-
- FreePool (VariableData);
-
- return Status;
-}
-
-/**
- Clear the variable and free the resource.
-
- @param[in] TcpService Tcp service data.
-
-**/
-VOID
-TcpClearVariableData (
- IN TCP_SERVICE_DATA *TcpService
- )
-{
- EFI_GUID *ServiceBindingGuid;
-
- ASSERT (TcpService->MacString != NULL);
-
- if (TcpService->IpVersion == IP_VERSION_4) {
- ServiceBindingGuid = &gEfiTcp4ServiceBindingProtocolGuid;
- } else {
- ServiceBindingGuid = &gEfiTcp6ServiceBindingProtocolGuid;
- }
-
- gRT->SetVariable (
- TcpService->MacString,
- ServiceBindingGuid,
- EFI_VARIABLE_BOOTSERVICE_ACCESS,
- 0,
- NULL
- );
-
- FreePool (TcpService->MacString);
- TcpService->MacString = NULL;
-}
-
-/**
Install the device path protocol on the TCP instance.
@param[in] Sock Pointer to the socket representing the TCP instance.