]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c
Add additional delay in DHCP6 InfoRequest interface to wait for link local address...
[mirror_edk2.git] / NetworkPkg / Dhcp6Dxe / Dhcp6Driver.c
index 54ef2e2783d8c6cd630bd16c9405d540b9ce49cc..b789f2a478194d0ec3907a9f080e2fcf60921ec1 100644 (file)
@@ -2,7 +2,7 @@
   Driver Binding functions and Service Binding functions\r
   implementationfor for Dhcp6 Driver.\r
 \r
-  Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -132,6 +132,7 @@ Dhcp6CreateService (
   )\r
 {\r
   DHCP6_SERVICE             *Dhcp6Srv;\r
+  EFI_STATUS                Status;\r
 \r
   *Service = NULL;\r
   Dhcp6Srv = AllocateZeroPool (sizeof (DHCP6_SERVICE));\r
@@ -165,6 +166,19 @@ Dhcp6CreateService (
     sizeof (EFI_SERVICE_BINDING_PROTOCOL)\r
     );\r
 \r
+  //\r
+  // Locate Ip6->Ip6Config and store it for get IP6 Duplicate Address Detection transmits.\r
+  //\r
+  Status = gBS->HandleProtocol (\r
+                  Controller,\r
+                  &gEfiIp6ConfigProtocolGuid,\r
+                  (VOID **) &Dhcp6Srv->Ip6Cfg\r
+                  );\r
+  if (EFI_ERROR (Status)) {\r
+    FreePool (Dhcp6Srv);\r
+    return Status;\r
+  }\r
+\r
   //\r
   // Generate client Duid: If SMBIOS system UUID is located, generate DUID in DUID-UUID format.\r
   // Otherwise, in DUID-LLT format.\r