Looks good. Reviewed-by: Ye Ting <ting...@intel.com>
-----Original Message----- From: jiaxinwu [mailto:jiaxin...@intel.com] Sent: Sunday, July 05, 2015 11:07 PM To: edk2-devel@lists.sourceforge.net Subject: [edk2] [Patch] NetworkPkg: Remove IpSecDxe and Ip4Config Protocol dependency. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: jiaxinwu <jiaxin...@intel.com> --- NetworkPkg/IpSecDxe/IkeCommon.h | 4 ++-- NetworkPkg/IpSecDxe/IkeService.c | 51 ++++++++++++++++++++++++++-------------- NetworkPkg/IpSecDxe/IpSecDxe.inf | 4 ++-- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/NetworkPkg/IpSecDxe/IkeCommon.h b/NetworkPkg/IpSecDxe/IkeCommon.h index 6832642..8be54ea 100644 --- a/NetworkPkg/IpSecDxe/IkeCommon.h +++ b/NetworkPkg/IpSecDxe/IkeCommon.h @@ -1,9 +1,9 @@ /** @file Common operation of the IKE. - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2010 - 2015, 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 http://opensource.org/licenses/bsd-license.php. @@ -16,11 +16,11 @@ #ifndef _IKE_COMMON_H_ #define _IKE_COMMON_H_ #include <Protocol/Udp4.h> #include <Protocol/Udp6.h> -#include <Protocol/Ip4Config.h> +#include <Protocol/Ip4Config2.h> #include <Library/BaseLib.h> #include <Library/BaseMemoryLib.h> #include <Library/MemoryAllocationLib.h> #include <Library/UefiRuntimeServicesTableLib.h> diff --git a/NetworkPkg/IpSecDxe/IkeService.c b/NetworkPkg/IpSecDxe/IkeService.c index 8e2c794..6594963 100644 --- a/NetworkPkg/IpSecDxe/IkeService.c +++ b/NetworkPkg/IpSecDxe/IkeService.c @@ -1,9 +1,9 @@ /** @file Provide IPsec Key Exchange (IKE) service general interfaces. - Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2010 - 2015, 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 http://opensource.org/licenses/bsd-license.php. @@ -210,19 +210,19 @@ EFI_STATUS IkeOpenOutputUdp ( IN IKE_UDP_SERVICE *UdpService, IN EFI_IP_ADDRESS *RemoteIp ) { - EFI_STATUS Status; - EFI_IP4_CONFIG_PROTOCOL *Ip4Cfg; - EFI_IP4_IPCONFIG_DATA *Ip4CfgData; - UINTN BufSize; - EFI_IP6_MODE_DATA Ip6ModeData; - EFI_UDP6_PROTOCOL *Udp6; + EFI_STATUS Status; + EFI_IP4_CONFIG2_PROTOCOL *Ip4Cfg2; + EFI_IP4_CONFIG2_INTERFACE_INFO *IfInfo; + UINTN BufSize; + EFI_IP6_MODE_DATA Ip6ModeData; + EFI_UDP6_PROTOCOL *Udp6; Status = EFI_SUCCESS; - Ip4CfgData = NULL; + IfInfo = NULL; BufSize = 0; // // Check whether the input and output udp io are both configured. // @@ -234,39 +234,56 @@ IkeOpenOutputUdp ( // // Handle ip4config protocol to get local default address. // Status = gBS->HandleProtocol ( UdpService->NicHandle, - &gEfiIp4ConfigProtocolGuid, - (VOID **) &Ip4Cfg + &gEfiIp4Config2ProtocolGuid, + (VOID **) &Ip4Cfg2 ); if (EFI_ERROR (Status)) { goto ON_EXIT; } - Status = Ip4Cfg->GetData (Ip4Cfg, &BufSize, NULL); + // + // Get the interface information size. + // + Status = Ip4Cfg2->GetData ( + Ip4Cfg2, + Ip4Config2DataTypeInterfaceInfo, + &BufSize, + NULL + ); if (EFI_ERROR (Status) && Status != EFI_BUFFER_TOO_SMALL) { goto ON_EXIT; } - Ip4CfgData = AllocateZeroPool (BufSize); + IfInfo = AllocateZeroPool (BufSize); - if (Ip4CfgData == NULL) { + if (IfInfo == NULL) { Status = EFI_OUT_OF_RESOURCES; goto ON_EXIT; } - Status = Ip4Cfg->GetData (Ip4Cfg, &BufSize, Ip4CfgData); + // + // Get the interface info. + // + Status = Ip4Cfg2->GetData ( + Ip4Cfg2, + Ip4Config2DataTypeInterfaceInfo, + &BufSize, + IfInfo + ); + if (EFI_ERROR (Status)) { goto ON_EXIT; } CopyMem ( &UdpService->DefaultAddress.v4, - &Ip4CfgData->StationAddress, + &IfInfo->StationAddress, sizeof (EFI_IPv4_ADDRESS) ); // // Create udp4 io for output with local default address. @@ -329,12 +346,12 @@ IkeOpenOutputUdp ( } UdpService->IsConfigured = TRUE; ON_EXIT: - if (Ip4CfgData != NULL) { - FreePool (Ip4CfgData); + if (IfInfo != NULL) { + FreePool (IfInfo); } return Status; } diff --git a/NetworkPkg/IpSecDxe/IpSecDxe.inf b/NetworkPkg/IpSecDxe/IpSecDxe.inf index c587c8c..583305b 100644 --- a/NetworkPkg/IpSecDxe/IpSecDxe.inf +++ b/NetworkPkg/IpSecDxe/IpSecDxe.inf @@ -4,11 +4,11 @@ # This driver provides EFI IPsec2 Protocol which is used to abstract the ability # to deal with the individual packets sent and received by the host and provide # packet-level security for IP datagram. It provides the IP packet protection via # ESP and it supports IKEv2 for key negotiation. # -# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2009 - 2015, 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 # http://opensource.org/licenses/bsd-license.php. @@ -87,11 +87,11 @@ UdpIoLib NetLib PcdLib [Protocols] - gEfiIp4ConfigProtocolGuid ## SOMETIMES_CONSUMES + gEfiIp4Config2ProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp4ServiceBindingProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp4ProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp6ServiceBindingProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp6ProtocolGuid ## SOMETIMES_CONSUMES gEfiIpSecConfigProtocolGuid ## PRODUCES -- 1.9.5.msysgit.1 ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel