2e9736ec3271fbf33d851aaab0b54365b3ae9ffb
[efi/edk2/.git] / edk2 / MdeModulePkg / Universal / Network / IScsiDxe / IScsiConfigNVDataStruc.h
1 /** @file\r
2   Define NVData structures used by the iSCSI configuration component\r
3 \r
4 Copyright (c) 2004 - 2007, Intel Corporation.<BR>\r
5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution.  The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9 \r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 \r
13 **/\r
14 \r
15 #ifndef _ISCSI_NVDATASTRUC_H_\r
16 #define _ISCSI_NVDATASTRUC_H_\r
17 \r
18 #define ISCSI_CONFIG_GUID \\r
19   { \\r
20     0x6456ed61, 0x3579, 0x41c9, { 0x8a, 0x26, 0x0a, 0x0b, 0xd6, 0x2b, 0x78, 0xfc } \\r
21   }\r
22 \r
23 #define VAR_EQ_TEST_NAME    0x100\r
24 \r
25 #define FORMID_MAIN_FORM    1\r
26 #define FORMID_DEVICE_FORM  2\r
27 \r
28 #define ISCSI_NAME_MAX_SIZE 224\r
29 \r
30 //\r
31 // Vfr has a limit on the size, it's 255 bytes.\r
32 //\r
33 #define ISCSI_NAME_IFR_MAX_SIZE   223\r
34 \r
35 #define IP_MIN_SIZE               7\r
36 #define IP_MAX_SIZE               15\r
37 #define IP4_STR_MAX_SIZE          16\r
38 \r
39 #define LUN_MIN_SIZE              1\r
40 #define LUN_MAX_SIZE              20\r
41 \r
42 #define ISCSI_CHAP_NONE           0\r
43 #define ISCSI_CHAP_UNI            1\r
44 #define ISCSI_CHAP_MUTUAL         2\r
45 \r
46 #define TARGET_PORT_MIN_NUM       0\r
47 #define TARGET_PORT_MAX_NUM       65535\r
48 \r
49 #define DEVICE_ENTRY_LABEL        0x1234\r
50 #define LABEL_END                 0xffff\r
51 \r
52 #define KEY_INITIATOR_NAME        0x101\r
53 #define KEY_DHCP_ENABLE           0x102\r
54 #define KEY_LOCAL_IP              0x103\r
55 #define KEY_SUBNET_MASK           0x104\r
56 #define KEY_GATE_WAY              0x105\r
57 #define KEY_TARGET_IP             0x106\r
58 #define KEY_CHAP_NAME             0x107\r
59 #define KEY_CHAP_SECRET           0x108\r
60 #define KEY_REVERSE_CHAP_NAME     0x109\r
61 #define KEY_REVERSE_CHAP_SECRET   0x10a\r
62 #define KEY_SAVE_CHANGES          0x10b\r
63 #define KEY_TARGET_NAME           0x10c\r
64 #define KEY_BOOT_LUN              0x10d\r
65 \r
66 #define KEY_DEVICE_ENTRY_BASE     0x1000\r
67 \r
68 #define ISCSI_LUN_STR_MAX_LEN     21\r
69 #define ISCSI_CHAP_SECRET_MIN_LEN 12\r
70 #define ISCSI_CHAP_SECRET_MAX_LEN 16\r
71 //\r
72 //  ISCSI_CHAP_SECRET_STORAGE = ISCSI_CHAP_SECRET_MAX_LEN + sizeof (NULL-Terminator)\r
73 //\r
74 #define ISCSI_CHAP_SECRET_STORAGE 17\r
75 \r
76 #define ISCSI_CHAP_NAME_MAX_LEN   126\r
77 \r
78 #pragma pack(1)\r
79 typedef struct {\r
80   CHAR16  InitiatorName[ISCSI_NAME_IFR_MAX_SIZE];\r
81 \r
82   UINT8   Enabled;\r
83 \r
84   UINT8   InitiatorInfoFromDhcp;\r
85   CHAR16  LocalIp[IP4_STR_MAX_SIZE];\r
86   CHAR16  SubnetMask[IP4_STR_MAX_SIZE];\r
87   CHAR16  Gateway[IP4_STR_MAX_SIZE];\r
88 \r
89   CHAR16  TargetName[ISCSI_NAME_IFR_MAX_SIZE];\r
90   CHAR16  TargetIp[IP4_STR_MAX_SIZE];\r
91   UINT16  TargetPort;\r
92   CHAR16  BootLun[ISCSI_LUN_STR_MAX_LEN];\r
93   UINT8   TargetInfoFromDhcp;\r
94 \r
95   UINT8   CHAPType;\r
96   CHAR16  CHAPName[ISCSI_CHAP_NAME_MAX_LEN];\r
97   CHAR16  CHAPSecret[ISCSI_CHAP_SECRET_STORAGE];\r
98   CHAR16  ReverseCHAPName[ISCSI_CHAP_NAME_MAX_LEN];\r
99   CHAR16  ReverseCHAPSecret[ISCSI_CHAP_SECRET_STORAGE];\r
100 } ISCSI_CONFIG_IFR_NVDATA;\r
101 #pragma pack()\r
102 \r
103 #endif\r