Functions | |
EFI_STATUS | IScsiDhcpExtractRootPath (IN CHAR8 *RootPath, IN UINT8 Length, IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData) |
EFI_STATUS EFIAPI | IScsiDhcpSelectOffer (IN EFI_DHCP4_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP4_STATE CurrentState, IN EFI_DHCP4_EVENT Dhcp4Event, IN EFI_DHCP4_PACKET *Packet, OUT EFI_DHCP4_PACKET **NewPacket) |
EFI_STATUS | IScsiParseDhcpAck (IN EFI_DHCP4_PROTOCOL *Dhcp4, IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData) |
EFI_STATUS | IScsiDoDhcp (IN EFI_HANDLE Image, IN EFI_HANDLE Controller, IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData) |
Copyright (c) 2004 - 2011, 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 IScsiDhcpExtractRootPath | ( | IN CHAR8 * | RootPath, | |
IN UINT8 | Length, | |||
IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA * | ConfigData | |||
) |
Extract the Root Path option and get the required target information.
[in] | RootPath | The RootPath. |
[in] | Length | Length of the RootPath option payload. |
[in,out] | ConfigData | The iSCSI attempt configuration data read from a 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_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 IScsiDhcpSelectOffer().
EFI_STATUS EFIAPI IScsiDhcpSelectOffer | ( | IN EFI_DHCP4_PROTOCOL * | This, | |
IN VOID * | Context, | |||
IN EFI_DHCP4_STATE | CurrentState, | |||
IN EFI_DHCP4_EVENT | Dhcp4Event, | |||
IN EFI_DHCP4_PACKET * | Packet, | |||
OUT EFI_DHCP4_PACKET ** | NewPacket | |||
) |
The callback function registerd to the DHCP4 instance that is used to select the qualified DHCP OFFER.
[in] | This | The DHCP4 protocol. |
[in] | Context | The context set when configuring the DHCP4 protocol. |
[in] | CurrentState | The current state of the DHCP4 protocol. |
[in] | Dhcp4Event | The event occurs in the current state. |
[in] | Packet | The DHCP packet that is to be sent or was already received. |
[out] | NewPacket | The packet used to replace the above Packet. |
EFI_SUCCESS | Either the DHCP OFFER is qualified or we're not intereseted in the Dhcp4Event. | |
EFI_NOT_READY | The DHCP OFFER packet doesn't match our requirements. | |
Others | Other errors as indicated. |
References DHCP4_TAG_ROOT_PATH, and IScsiDhcpExtractRootPath().
Referenced by IScsiDoDhcp().
EFI_STATUS IScsiDoDhcp | ( | 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_OUT_OF_RESOURCES | Failed to allocate memory. | |
EFI_NO_MEDIA | There was a media error. | |
Others | Other errors as indicated. |
References DHCP4_TAG_DNS, DHCP4_TAG_NETMASK, DHCP4_TAG_PARA_LIST, DHCP4_TAG_ROOT_PATH, DHCP4_TAG_ROUTER, IScsiDhcpSelectOffer(), IScsiParseDhcpAck(), and _ISCSI_SESSION_CONFIG_NVDATA::TargetInfoFromDhcp.
Referenced by IScsiGetConfigData().
EFI_STATUS IScsiParseDhcpAck | ( | IN EFI_DHCP4_PROTOCOL * | Dhcp4, | |
IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA * | ConfigData | |||
) |
Parse the DHCP ACK to get the address configuration and DNS information.
[in] | Dhcp4 | The DHCP4 protocol. |
[in,out] | ConfigData | The session 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 | Other errors as indicated. | |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. |
References DHCP4_TAG_DNS, DHCP4_TAG_SERVER_ID, _ISCSI_SESSION_CONFIG_NVDATA::Gateway, _ISCSI_SESSION_CONFIG_NVDATA::LocalIp, and _ISCSI_SESSION_CONFIG_NVDATA::SubnetMask.
Referenced by IScsiDoDhcp().