NetworkPkg/IScsiDxe/IScsiDhcp6.c File Reference


Functions

EFI_STATUS IScsiDhcp6ExtractRootPath (IN CHAR8 *RootPath, IN UINT16 Length, IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData)
EFI_STATUS EFIAPI IScsiDhcp6ParseReply (IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_PACKET *Packet)
EFI_STATUS IScsiDoDhcp6 (IN EFI_HANDLE Image, IN EFI_HANDLE Controller, IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData)

Detailed Description

iSCSI DHCP6 related configuration routines.

Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.


Function Documentation

EFI_STATUS IScsiDhcp6ExtractRootPath ( IN CHAR8 *  RootPath,
IN UINT16  Length,
IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA ConfigData 
)

Extract the Root Path option and get the required target information from Boot File Uniform Resource Locator (URL) Option.

Parameters:
[in] RootPath The RootPath string.
[in] Length Length of the RootPath option payload.
[in,out] ConfigData The iSCSI session configuration data read from nonvolatile device.
Return values:
EFI_SUCCESS All required information is extracted from the RootPath option.
EFI_NOT_FOUND The RootPath is not an iSCSI RootPath.
EFI_OUT_OF_RESOURCES Failed to allocate memory.
EFI_INVALID_PARAMETER The RootPath is malformatted.

References _ISCSI_SESSION_CONFIG_NVDATA::BootLun, IP_MODE_AUTOCONFIG, _ISCSI_SESSION_CONFIG_NVDATA::IpMode, IpMode, ISCSI_NAME_MAX_SIZE, ISCSI_ROOT_PATH_ADDR_END_DELIMITER, ISCSI_ROOT_PATH_ADDR_START_DELIMITER, ISCSI_ROOT_PATH_FIELD_DELIMITER, ISCSI_ROOT_PATH_ID, ISCSI_WELL_KNOWN_PORT, IScsiAsciiStrToIp(), IScsiAsciiStrToLun(), IScsiNormalizeName(), _ISCSI_ROOT_PATH_FIELD::Len, RP_FIELD_IDX_LUN, RP_FIELD_IDX_MAX, RP_FIELD_IDX_PORT, RP_FIELD_IDX_PROTOCOL, RP_FIELD_IDX_SERVERNAME, RP_FIELD_IDX_TARGETNAME, _ISCSI_ROOT_PATH_FIELD::Str, _ISCSI_SESSION_CONFIG_NVDATA::TargetIp, _ISCSI_SESSION_CONFIG_NVDATA::TargetName, and _ISCSI_SESSION_CONFIG_NVDATA::TargetPort.

Referenced by IScsiDhcp6ParseReply().

EFI_STATUS EFIAPI IScsiDhcp6ParseReply ( IN EFI_DHCP6_PROTOCOL *  This,
IN VOID *  Context,
IN EFI_DHCP6_PACKET *  Packet 
)

EFI_DHCP6_INFO_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol instance to intercept events that occurs in the DHCPv6 Information Request exchange process.

Parameters:
[in] This Pointer to the EFI_DHCP6_PROTOCOL instance that is used to configure this callback function.
[in] Context Pointer to the context that is initialized in the EFI_DHCP6_PROTOCOL.InfoRequest().
[in] Packet Pointer to Reply packet that has been received. The EFI DHCPv6 Protocol instance is responsible for freeing the buffer.
Return values:
EFI_SUCCESS Tell the EFI DHCPv6 Protocol instance to finish Information Request exchange process.
EFI_NOT_READY Tell the EFI DHCPv6 Protocol instance to continue Information Request exchange process.
EFI_ABORTED Tell the EFI DHCPv6 Protocol instance to abort the Information Request exchange process.
EFI_UNSUPPORTED Tell the EFI DHCPv6 Protocol instance to finish the Information Request exchange process because some request information are not received.

References DHCP6_OPT_BOOT_FILE_PARA, DHCP6_OPT_BOOT_FILE_URL, DHCP6_OPT_DNS_SERVERS, _ISCSI_ATTEMPT_CONFIG_NVDATA::DhcpServer, IScsiDhcp6ExtractRootPath(), _ISCSI_ATTEMPT_CONFIG_NVDATA::PrimaryDns, and _ISCSI_ATTEMPT_CONFIG_NVDATA::SecondaryDns.

Referenced by IScsiDoDhcp6().

EFI_STATUS IScsiDoDhcp6 ( IN EFI_HANDLE  Image,
IN EFI_HANDLE  Controller,
IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA ConfigData 
)

Parse the DHCP ACK to get the address configuration and DNS information.

Parameters:
[in] Image The handle of the driver image.
[in] Controller The handle of the controller;
[in,out] ConfigData The attempt configuration data.
Return values:
EFI_SUCCESS The DNS information is got from the DHCP ACK.
EFI_NO_MAPPING DHCP failed to acquire address and other information.
EFI_INVALID_PARAMETER The DHCP ACK's DNS option is malformatted.
EFI_DEVICE_ERROR Some unexpected error occurred.
EFI_OUT_OF_RESOURCES There is no sufficient resource to finish the operation.
EFI_NO_MEDIA There was a media error.

References DHCP6_OPT_BOOT_FILE_PARA, DHCP6_OPT_BOOT_FILE_URL, DHCP6_OPT_DNS_SERVERS, DHCP6_OPT_REQUEST_OPTION, ISCSI_GET_MAPPING_TIMEOUT, and IScsiDhcp6ParseReply().

Referenced by IScsiGetConfigData().


Generated on Mon Sep 28 08:49:06 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1