]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Network/IScsiDxe/IScsiConfigNVDataStruc.h
Adopt new IPv4/IPv6 device path for network modules.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiConfigNVDataStruc.h
1 /** @file
2 Define NVData structures used by the iSCSI configuration component
3
4 Copyright (c) 2004 - 2011, 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_NVDATASTRUC_H_
16 #define _ISCSI_NVDATASTRUC_H_
17
18 #include <Guid/Ip4IScsiConfigHii.h>
19
20 #define VAR_EQ_TEST_NAME 0x100
21
22 #define FORMID_MAIN_FORM 1
23 #define FORMID_DEVICE_FORM 2
24
25 #define ISCSI_NAME_MAX_SIZE 224
26
27 //
28 // Vfr has a limit on the size, it's 255 bytes.
29 //
30 #define ISCSI_NAME_IFR_MIN_SIZE 4
31 #define ISCSI_NAME_IFR_MAX_SIZE 223
32
33 #define IP_MIN_SIZE 7
34 #define IP_MAX_SIZE 15
35 #define IP4_STR_MAX_SIZE 16
36
37 #define LUN_MIN_SIZE 1
38 #define LUN_MAX_SIZE 20
39
40 #define ISCSI_CHAP_NONE 0
41 #define ISCSI_CHAP_UNI 1
42 #define ISCSI_CHAP_MUTUAL 2
43
44 #define TARGET_PORT_MIN_NUM 0
45 #define TARGET_PORT_MAX_NUM 65535
46
47 #define DEVICE_ENTRY_LABEL 0x1234
48 #define LABEL_END 0xffff
49
50 #define KEY_INITIATOR_NAME 0x101
51 #define KEY_DHCP_ENABLE 0x102
52 #define KEY_LOCAL_IP 0x103
53 #define KEY_SUBNET_MASK 0x104
54 #define KEY_GATE_WAY 0x105
55 #define KEY_TARGET_IP 0x106
56 #define KEY_CHAP_NAME 0x107
57 #define KEY_CHAP_SECRET 0x108
58 #define KEY_REVERSE_CHAP_NAME 0x109
59 #define KEY_REVERSE_CHAP_SECRET 0x10a
60 #define KEY_SAVE_CHANGES 0x10b
61 #define KEY_TARGET_NAME 0x10c
62 #define KEY_BOOT_LUN 0x10d
63 #define KEY_CONFIG_ISID 0x10e
64
65 #define KEY_DEVICE_ENTRY_BASE 0x1000
66
67 #define ISCSI_LUN_STR_MAX_LEN 21
68 #define ISCSI_CHAP_SECRET_MIN_LEN 12
69 #define ISCSI_CHAP_SECRET_MAX_LEN 16
70 //
71 // ISCSI_CHAP_SECRET_STORAGE = ISCSI_CHAP_SECRET_MAX_LEN + sizeof (NULL-Terminator)
72 //
73 #define ISCSI_CHAP_SECRET_STORAGE 17
74
75 #define ISCSI_CHAP_NAME_MAX_LEN 126
76 #define ISCSI_CHAP_NAME_STORAGE 127
77
78 #define ISID_CONFIGURABLE_MIN_LEN 6
79 #define ISID_CONFIGURABLE_MAX_LEN 12
80 #define ISID_CONFIGURABLE_STORAGE 13
81
82 #pragma pack(1)
83 typedef struct {
84 CHAR16 InitiatorName[ISCSI_NAME_MAX_SIZE];
85
86 UINT8 Enabled;
87
88 UINT8 InitiatorInfoFromDhcp;
89 CHAR16 LocalIp[IP4_STR_MAX_SIZE];
90 CHAR16 SubnetMask[IP4_STR_MAX_SIZE];
91 CHAR16 Gateway[IP4_STR_MAX_SIZE];
92
93 CHAR16 TargetName[ISCSI_NAME_MAX_SIZE];
94 CHAR16 TargetIp[IP4_STR_MAX_SIZE];
95 UINT16 TargetPort;
96 CHAR16 BootLun[ISCSI_LUN_STR_MAX_LEN];
97 UINT8 TargetInfoFromDhcp;
98
99 UINT8 CHAPType;
100 CHAR16 CHAPName[ISCSI_CHAP_NAME_STORAGE];
101 CHAR16 CHAPSecret[ISCSI_CHAP_SECRET_STORAGE];
102 CHAR16 ReverseCHAPName[ISCSI_CHAP_NAME_STORAGE];
103 CHAR16 ReverseCHAPSecret[ISCSI_CHAP_SECRET_STORAGE];
104
105 CHAR16 IsId[ISID_CONFIGURABLE_STORAGE];
106 } ISCSI_CONFIG_IFR_NVDATA;
107 #pragma pack()
108
109 #endif