4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The head file of iSCSI DHCP4 related configuration routines.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _ISCSI_DHCP_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _ISCSI_DHCP_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DHCP4_TAG_PARA_LIST 55
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DHCP4_TAG_NETMASK 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DHCP4_TAG_ROUTER 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DHCP4_TAG_DNS 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DHCP4_TAG_SERVER_ID 54
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DHCP4_TAG_ROOT_PATH 17
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ISCSI_ROOT_PATH_ID "iscsi:"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ISCSI_ROOT_PATH_FIELD_DELIMITER ':'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RP_FIELD_IDX_SERVERNAME 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RP_FIELD_IDX_PROTOCOL 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RP_FIELD_IDX_PORT 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RP_FIELD_IDX_LUN 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RP_FIELD_IDX_TARGETNAME 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RP_FIELD_IDX_MAX 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _ISCSI_ATTEMPT_CONFIG_NVDATA ISCSI_ATTEMPT_CONFIG_NVDATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _ISCSI_ROOT_PATH_FIELD {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR8 *Str;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Len;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} ISCSI_ROOT_PATH_FIELD;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Parse the DHCP ACK to get the address configuration and DNS information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Image The handle of the driver image.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Controller The handle of the controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] ConfigData The attempt configuration data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The DNS information is got from the DHCP ACK.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NO_MEDIA There was a media error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval Others Other errors as indicated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIScsiDoDhcp (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HANDLE Image,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HANDLE Controller,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif