]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg: Add IPv6 DUID configuration support using platform PCD.
authorSamer El-Haj-Mahmoud <elhaj@hp.com>
Wed, 1 Jul 2015 02:17:07 +0000 (02:17 +0000)
committersfu5 <sfu5@Edk2>
Wed, 1 Jul 2015 02:17:07 +0000 (02:17 +0000)
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

NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c
NetworkPkg/NetworkPkg.dec

index 5c792370462261286bc32cd25270693c8e6788b1..1ba9656df28971be15bfe1fe633fa0095b03a48a 100644 (file)
@@ -4,6 +4,7 @@
 #  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
@@ -51,7 +52,7 @@
 [Packages]\r
   MdePkg/MdePkg.dec\r
   MdeModulePkg/MdeModulePkg.dec\r
-\r
+  NetworkPkg/NetworkPkg.dec\r
 \r
 [LibraryClasses]\r
   UefiLib\r
@@ -73,5 +74,9 @@
   gEfiDhcp6ProtocolGuid                              ## BY_START\r
   gEfiIp6ConfigProtocolGuid                          ## TO_START\r
 \r
\r
+[Pcd]\r
+  gEfiNetworkPkgTokenSpaceGuid.PcdDhcp6UidType\r
+\r
 [UserExtensions.TianoCore."ExtraFiles"]\r
   Dhcp6DxeExtra.uni\r
index e3349ee9878be330f9637be4984f5f74728e85fc..2525a32ff1e822c3bf3a40d8cee5428d3ded5f6c 100644 (file)
@@ -1,6 +1,7 @@
 /** @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
@@ -63,7 +64,7 @@ Dhcp6GenerateClientId (
   //\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
index 6515844b2f5713aa5af4ccc33dcdc3811ee5d139..317cf41a1eec2bf5b9234a655874d00087f7ef6a 100644 (file)
@@ -3,6 +3,7 @@
 #\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