/** @file\r
This EFI_DHCP6_PROTOCOL interface implementation.\r
\r
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2018, 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
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php.\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
// Well-known multi-cast address defined in section-24.1 of rfc-3315\r
//\r
// ALL_DHCP_Relay_Agents_and_Servers address: FF02::1:2\r
-// ALL_DHCP_Servers address: FF05::1:3\r
//\r
EFI_IPv6_ADDRESS mAllDhcpRelayAndServersAddress = {{0xFF, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2}};\r
-EFI_IPv6_ADDRESS mAllDhcpServersAddress = {{0xFF, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3}};\r
\r
EFI_DHCP6_PROTOCOL gDhcp6ProtocolTemplate = {\r
EfiDhcp6GetModeData,\r
EFI_TPL OldTpl;\r
DHCP6_INSTANCE *Instance;\r
DHCP6_SERVICE *Service;\r
+ EFI_STATUS MediaStatus;\r
\r
if (This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+\r
+ //\r
+ // Check Media Satus.\r
+ //\r
+ MediaStatus = EFI_SUCCESS;\r
+ NetLibDetectMediaWaitTimeout (Service->Controller, DHCP_CHECK_MEDIA_WAITING_TIME, &MediaStatus);\r
+ if (MediaStatus != EFI_SUCCESS) {\r
+ Status = EFI_NO_MEDIA;\r
+ goto ON_ERROR;\r
+ }\r
+\r
Instance->UdpSts = EFI_ALREADY_STARTED;\r
\r
//\r
}\r
Status = Instance->UdpSts;\r
}\r
- \r
+\r
ON_EXIT:\r
//\r
// Clean up the session data for the released Ia.\r
return Status;\r
}\r
\r
- do { \r
+ do {\r
TimerStatus = gBS->CheckEvent (Timer);\r
if (!EFI_ERROR (TimerStatus)) {\r
Status = Dhcp6StartInfoRequest (\r
);\r
}\r
} while (TimerStatus == EFI_NOT_READY);\r
- \r
+\r
gBS->CloseEvent (Timer);\r
}\r
if (EFI_ERROR (Status)) {\r