NetworkPkg: Add IPv6 DUID configuration support using platform PCD.

The code today always uses DUID-UUID unless there is an error in reading the UUID, 
which results in falling through to DUID-LLT. This change allows the platform to
 control the DUID method (DUID-UUID or DUID-LLT) using a platform dynamic PCD.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud <elhaj@hp.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17751 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Samer El-Haj-Mahmoud
2015-07-01 02:17:07 +00:00
committed by sfu5
parent 2ce8ce9b06
commit c413813d61
3 changed files with 17 additions and 2 deletions

View File

@@ -4,6 +4,7 @@
# This driver produces EFI DHCPv6 Protocol which is used to get IPv6 addresses
# and other configuration parameters from DHCPv6 servers.
#
# (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>
# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
@@ -51,7 +52,7 @@
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
NetworkPkg/NetworkPkg.dec
[LibraryClasses]
UefiLib
@@ -73,5 +74,9 @@
gEfiDhcp6ProtocolGuid ## BY_START
gEfiIp6ConfigProtocolGuid ## TO_START
[Pcd]
gEfiNetworkPkgTokenSpaceGuid.PcdDhcp6UidType
[UserExtensions.TianoCore."ExtraFiles"]
Dhcp6DxeExtra.uni

View File

@@ -1,6 +1,7 @@
/** @file
Dhcp6 support functions implementation.
(C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
@@ -63,7 +64,7 @@ Dhcp6GenerateClientId (
//
// If System UUID is found from SMBIOS Table, use DUID-UUID type.
//
if (!EFI_ERROR (NetLibGetSystemGuid (&Uuid))) {
if ((PcdGet8 (PcdDhcp6UidType) == Dhcp6DuidTypeUuid) && !EFI_ERROR (NetLibGetSystemGuid (&Uuid))) {
//
//
// The format of DUID-UUID: