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) |
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.
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.
[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. |
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.
[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. |
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.
[in] | Image | The handle of the driver image. |
[in] | Controller | The handle of the controller; |
[in,out] | ConfigData | The attempt configuration data. |
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().