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 driver produces EFI DHCPv6 Protocol which is used to get IPv6 addresses\r
# and other configuration parameters from DHCPv6 servers.\r
#\r
+# (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
[Packages]\r
MdePkg/MdePkg.dec\r
MdeModulePkg/MdeModulePkg.dec\r
-\r
+ NetworkPkg/NetworkPkg.dec\r
\r
[LibraryClasses]\r
UefiLib\r
gEfiDhcp6ProtocolGuid ## BY_START\r
gEfiIp6ConfigProtocolGuid ## TO_START\r
\r
+ \r
+[Pcd]\r
+ gEfiNetworkPkgTokenSpaceGuid.PcdDhcp6UidType\r
+\r
[UserExtensions.TianoCore."ExtraFiles"]\r
Dhcp6DxeExtra.uni\r
/** @file\r
Dhcp6 support functions implementation.\r
\r
+ (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
//\r
// If System UUID is found from SMBIOS Table, use DUID-UUID type.\r
//\r
- if (!EFI_ERROR (NetLibGetSystemGuid (&Uuid))) {\r
+ if ((PcdGet8 (PcdDhcp6UidType) == Dhcp6DuidTypeUuid) && !EFI_ERROR (NetLibGetSystemGuid (&Uuid))) {\r
//\r
//\r
// The format of DUID-UUID:\r
#\r
# This package provides network modules that conform to UEFI 2.4 specification.\r
#\r
+# (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials are licensed and made available under\r
# @Prompt Private Key's size.\r
gEfiNetworkPkgTokenSpaceGuid.PcdIpsecUefiCertificateKeySize|0x3d5|UINT32|0x00000006\r
\r
+[PcdsDynamicEx]\r
+ ## IPv6 DHCP Unique Identifier (DUID) Type configuration (From RFCs 3315 and 6355).\r
+ # 01 = DUID Based on Link-layer Address Plus Time [DUID-LLT]\r
+ # 04 = UUID-Based DHCPv6 Unique Identifier (DUID-UUID)\r
+ # 02 = DUID Assigned by Vendor Based on Enterprise Number [DUID-EN] (not supported)\r
+ # 03 = DUID Based on Link-layer Address [DUID-LL] (not supported)\r
+ gEfiNetworkPkgTokenSpaceGuid.PcdDhcp6UidType|4|UINT8|0x10000001\r
+\r
[UserExtensions.TianoCore."ExtraFiles"]\r
NetworkPkgExtra.uni\r