summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/iScsi/IScsiConfigNVDataStruc.h
blob: 7e1d2f86cd8154d6088133d19a588f7540a40edf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*++

Copyright (c)  2007 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.

Module Name:

  IScsiConfigNVDataStruc.h
 
Abstract:
 
  NVData structure used by the iSCSI configuration component.

--*/

#ifndef _ISCSI_NVDATASTRUC_H_
#define _ISCSI_NVDATASTRUC_H_

#define ISCSI_CONFIG_GUID \
  { \
    0x6456ed61, 0x3579, 0x41c9, { 0x8a, 0x26, 0x0a, 0x0b, 0xd6, 0x2b, 0x78, 0xfc } \
  }

#define VAR_EQ_TEST_NAME    0x100

#define FORMID_MAIN_FORM    1
#define FORMID_DEVICE_FORM  2

#define ISCSI_NAME_MAX_SIZE 224

//
// Vfr has a limit on the size, it's 255 bytes.
//
#define ISCSI_NAME_IFR_MAX_SIZE   126

#define IP_MIN_SIZE               7
#define IP_MAX_SIZE               15
#define IP4_STR_MAX_SIZE          16

#define LUN_MIN_SIZE              1
#define LUN_MAX_SIZE              20

#define ISCSI_CHAP_NONE           0
#define ISCSI_CHAP_UNI            1
#define ISCSI_CHAP_MUTUAL         2

#define TARGET_PORT_MIN_NUM       0
#define TARGET_PORT_MAX_NUM       65535

#define DEVICE_ENTRY_LABEL        0x1234

#define KEY_INITIATOR_NAME        0x101
#define KEY_DHCP_ENABLE           0x102
#define KEY_LOCAL_IP              0x103
#define KEY_SUBNET_MASK           0x104
#define KEY_GATE_WAY              0x105
#define KEY_TARGET_IP             0x106
#define KEY_CHAP_NAME             0x107
#define KEY_CHAP_SECRET           0x108
#define KEY_REVERSE_CHAP_NAME     0x109
#define KEY_REVERSE_CHAP_SECRET   0x10a
#define KEY_SAVE_CHANGES          0x10b
#define KEY_TARGET_NAME           0x10c
#define KEY_BOOT_LUN              0x10d

#define KEY_DEVICE_ENTRY_BASE     0x1000

#define ISCSI_LUN_STR_MAX_LEN     21
#define ISCSI_CHAP_SECRET_MIN_LEN 13
#define ISCSI_CHAP_SECRET_MAX_LEN 17
#define ISCSI_CHAP_NAME_MAX_LEN   126

#pragma pack(1)
typedef struct {
  CHAR16  InitiatorName[ISCSI_NAME_IFR_MAX_SIZE];

  UINT8   Enabled;

  UINT8   InitiatorInfoFromDhcp;
  CHAR16  LocalIp[IP4_STR_MAX_SIZE];
  CHAR16  SubnetMask[IP4_STR_MAX_SIZE];
  CHAR16  Gateway[IP4_STR_MAX_SIZE];

  CHAR16  TargetName[ISCSI_NAME_IFR_MAX_SIZE];
  CHAR16  TargetIp[IP4_STR_MAX_SIZE];
  UINT16  TargetPort;
  CHAR16  BootLun[ISCSI_LUN_STR_MAX_LEN];
  UINT8   TargetInfoFromDhcp;

  UINT8   CHAPType;
  CHAR16  CHAPName[ISCSI_CHAP_NAME_MAX_LEN];
  CHAR16  CHAPSecret[ISCSI_CHAP_SECRET_MAX_LEN];
  CHAR16  ReverseCHAPName[ISCSI_CHAP_NAME_MAX_LEN];
  CHAR16  ReverseCHAPSecret[ISCSI_CHAP_SECRET_MAX_LEN];
} ISCSI_CONFIG_IFR_NVDATA;
#pragma pack()

#endif