summaryrefslogtreecommitdiff
path: root/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c
diff options
context:
space:
mode:
authorsfu5 <sfu5@6f19259b-4bc3-4df7-8a09-765794883524>2012-08-22 08:01:19 +0000
committersfu5 <sfu5@6f19259b-4bc3-4df7-8a09-765794883524>2012-08-22 08:01:19 +0000
commitcc65822475b10d8eb9c01dab251ef1f647efe180 (patch)
tree5fd077a770ed9058a83141626820d7e0dd286d51 /NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c
parent7fb60a98ca3a78cf318703b99e64add9f4262fa5 (diff)
downloadedk2-platforms-cc65822475b10d8eb9c01dab251ef1f647efe180.tar.xz
Add additional delay in DHCP6 InfoRequest interface to wait for link local address DAD to finish.
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com> Reviewed-by: qianouyang <qian.ouyang@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13664 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c')
-rw-r--r--NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c b/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c
index 54ef2e2783..b789f2a478 100644
--- a/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c
+++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c
@@ -2,7 +2,7 @@
Driver Binding functions and Service Binding functions
implementationfor for Dhcp6 Driver.
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2012, 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
@@ -132,6 +132,7 @@ Dhcp6CreateService (
)
{
DHCP6_SERVICE *Dhcp6Srv;
+ EFI_STATUS Status;
*Service = NULL;
Dhcp6Srv = AllocateZeroPool (sizeof (DHCP6_SERVICE));
@@ -166,6 +167,19 @@ Dhcp6CreateService (
);
//
+ // Locate Ip6->Ip6Config and store it for get IP6 Duplicate Address Detection transmits.
+ //
+ Status = gBS->HandleProtocol (
+ Controller,
+ &gEfiIp6ConfigProtocolGuid,
+ (VOID **) &Dhcp6Srv->Ip6Cfg
+ );
+ if (EFI_ERROR (Status)) {
+ FreePool (Dhcp6Srv);
+ return Status;
+ }
+
+ //
// Generate client Duid: If SMBIOS system UUID is located, generate DUID in DUID-UUID format.
// Otherwise, in DUID-LLT format.
//