• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
110