]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/IScsiDxe/IScsiDhcp6.h
1d59d106266254deeffe440a2c961a3f51b2a73a
[mirror_edk2.git] / NetworkPkg / IScsiDxe / IScsiDhcp6.h
1 /** @file
2 The header file of iSCSI DHCP6 related configuration routines.
3
4 Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef _ISCSI_DHCP6_H_
16 #define _ISCSI_DHCP6_H_
17
18 #define ISCSI_ROOT_PATH_ID "iscsi:"
19 #define ISCSI_ROOT_PATH_FIELD_DELIMITER ':'
20 #define ISCSI_ROOT_PATH_ADDR_START_DELIMITER '['
21 #define ISCSI_ROOT_PATH_ADDR_END_DELIMITER ']'
22
23
24 /**
25 Extract the Root Path option and get the required target information from
26 Boot File Uniform Resource Locator (URL) Option.
27
28 @param[in] RootPath The RootPath string.
29 @param[in] Length Length of the RootPath option payload.
30 @param[in, out] ConfigData The iSCSI session configuration data read from
31 nonvolatile device.
32
33 @retval EFI_SUCCESS All required information is extracted from the
34 RootPath option.
35 @retval EFI_NOT_FOUND The RootPath is not an iSCSI RootPath.
36 @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
37 @retval EFI_INVALID_PARAMETER The RootPath is malformatted.
38
39 **/
40 EFI_STATUS
41 IScsiDhcp6ExtractRootPath (
42 IN CHAR8 *RootPath,
43 IN UINT16 Length,
44 IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
45 );
46
47 /**
48 Parse the DHCP ACK to get the address configuration and DNS information.
49
50 @param[in] Image The handle of the driver image.
51 @param[in] Controller The handle of the controller;
52 @param[in, out] ConfigData The attempt configuration data.
53
54 @retval EFI_SUCCESS The DNS information is got from the DHCP ACK.
55 @retval EFI_NO_MAPPING DHCP failed to acquire address and other
56 information.
57 @retval EFI_INVALID_PARAMETER The DHCP ACK's DNS option is malformatted.
58 @retval EFI_DEVICE_ERROR Some unexpected error happened.
59 @retval EFI_OUT_OF_RESOURCES There is no sufficient resource to finish the
60 operation.
61 @retval EFI_NO_MEDIA There was a media error.
62
63 **/
64 EFI_STATUS
65 IScsiDoDhcp6 (
66 IN EFI_HANDLE Image,
67 IN EFI_HANDLE Controller,
68 IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
69 );
70
71 #endif