From d551cc64cdf1f943744294819220b78a60b10822 Mon Sep 17 00:00:00 2001 From: Fu Siyuan Date: Wed, 7 May 2014 06:17:31 +0000 Subject: 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 Reviewed-by: Ye, Ting Reviewed-by: Wu, Jiaxin 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 --- NetworkPkg/TcpDxe/TcpDispatcher.c | 4 +- NetworkPkg/TcpDxe/TcpDriver.c | 9 +- NetworkPkg/TcpDxe/TcpDriver.h | 3 +- NetworkPkg/TcpDxe/TcpFunc.h | 27 +--- NetworkPkg/TcpDxe/TcpMisc.c | 263 +------------------------------------- 5 files changed, 5 insertions(+), 301 deletions(-) (limited to 'NetworkPkg/TcpDxe') 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.
+ Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
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.
+ Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
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: @@ -499,11 +497,6 @@ TcpDestroyService ( // TcpDestroyTimer (); - // - // Clear the variable. - // - TcpClearVariableData (TcpServiceData); - // // Release the TCP service data // 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.
+ Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
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.
+ Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -276,31 +276,6 @@ TcpResetConnection ( IN TCP_CB *Tcb ); -/** - 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. 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.
+ Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
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; } @@ -943,266 +942,6 @@ TcpResetConnection ( NetbufFree (Nbuf); } -/** - 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. -- cgit v1.2.3