/** @file\r
Dhcp6 support functions implementation.\r
\r
- Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
+ Copyright (c) 2009 - 2017, 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
//\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)) && !CompareGuid (&Uuid, &gZeroGuid)) {\r
//\r
//\r
// The format of DUID-UUID:\r
//\r
// Set the Duid-type, hardware-type, time and copy the hardware address.\r
//\r
- WriteUnaligned16 ((UINT16 *) ((UINT8 *)&Duid + OFFSET_OF (EFI_DHCP6_DUID, Duid)), HTONS (Dhcp6DuidTypeLlt));\r
- WriteUnaligned16 ((UINT16 *) ((UINT8 *)&Duid + OFFSET_OF (EFI_DHCP6_DUID, Duid) + 2), HTONS (NET_IFTYPE_ETHERNET));\r
- WriteUnaligned32 ((UINT32 *) ((UINT8 *)&Duid + OFFSET_OF (EFI_DHCP6_DUID, Duid) + 4), HTONL (Stamp));\r
+ WriteUnaligned16 ((UINT16 *) ((UINT8 *) Duid + OFFSET_OF (EFI_DHCP6_DUID, Duid)), HTONS (Dhcp6DuidTypeLlt));\r
+ WriteUnaligned16 ((UINT16 *) ((UINT8 *) Duid + OFFSET_OF (EFI_DHCP6_DUID, Duid) + 2), HTONS (NET_IFTYPE_ETHERNET));\r
+ WriteUnaligned32 ((UINT32 *) ((UINT8 *) Duid + OFFSET_OF (EFI_DHCP6_DUID, Duid) + 4), HTONL (Stamp));\r
\r
CopyMem (Duid->Duid + 8, &Mode->CurrentAddress, Mode->HwAddressSize);\r
}\r
IN DHCP6_IA_CB *IaCb\r
)\r
{\r
- EFI_DHCP6_IA_ADDRESS *IaAddr;\r
UINT32 MinLt;\r
UINT32 MaxLt;\r
UINTN Index;\r
// valid life time.\r
//\r
for (Index = 0; Index < IaCb->Ia->IaAddressCount; Index++) {\r
- IaAddr = IaCb->Ia->IaAddress + Index * sizeof (EFI_DHCP6_IA_ADDRESS);\r
- MinLt = MIN (MinLt, IaAddr->ValidLifetime);\r
- MaxLt = MAX (MinLt, IaAddr->ValidLifetime);\r
+ MinLt = MIN (MinLt, IaCb->Ia->IaAddress[Index].ValidLifetime);\r
+ MaxLt = MAX (MinLt, IaCb->Ia->IaAddress[Index].ValidLifetime);\r
}\r
\r
//\r