/** @file\r
Define NVData structures used by the iSCSI configuration component.\r
\r
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#ifndef _ISCSI_NVDATASTRUC_H_\r
#define _ISCSI_NVDATASTRUC_H_\r
\r
-#define ISCSI_CONFIG_GUID \\r
- { \\r
- 0x6456ed61, 0x3579, 0x41c9, { 0x8a, 0x26, 0x0a, 0x0b, 0xd6, 0x2b, 0x78, 0xfc } \\r
- }\r
+#include <Guid/IScsiConfigHii.h>\r
\r
#define VAR_EQ_TEST_NAME 0x100\r
#define CONFIGURATION_VARSTORE_ID 0x6666\r
#define FORMID_ORDER_FORM 4\r
#define FORMID_DELETE_FORM 5\r
\r
+#define ISCSI_MAX_ATTEMPTS_NUM FixedPcdGet8 (PcdMaxIScsiAttemptNumber)\r
+\r
#define ISCSI_NAME_IFR_MIN_SIZE 4\r
#define ISCSI_NAME_IFR_MAX_SIZE 223\r
#define ISCSI_NAME_MAX_SIZE 224\r
\r
-#define ATTEMPT_NAME_MAX_SIZE 96\r
-#define ATTEMPT_NAME_SIZE 10\r
+#define ATTEMPT_NAME_LIST_SIZE 96\r
+#define ATTEMPT_NAME_SIZE 12\r
\r
#define CONNECT_MIN_RETRY 0\r
#define CONNECT_MAX_RETRY 16\r
#define CONNECT_MAX_TIMEOUT 20000\r
#define CONNECT_DEFAULT_TIMEOUT 1000\r
\r
-#define ISCSI_MAX_ATTEMPTS_NUM 255\r
+#define ISCSI_ACTIVE_DISABLED 0\r
+#define ISCSI_ACTIVE_ENABLED 1\r
\r
#define ISCSI_DISABLED 0\r
#define ISCSI_ENABLED 1\r
\r
#define LUN_MIN_SIZE 1\r
#define LUN_MAX_SIZE 20\r
+#define ISCSI_LUN_STR_MAX_LEN 21\r
\r
-#define ISCSI_CHAP_UNI 1\r
-#define ISCSI_CHAP_MUTUAL 2\r
+#define ISCSI_CHAP_UNI 0\r
+#define ISCSI_CHAP_MUTUAL 1\r
\r
#define TARGET_PORT_MIN_NUM 0\r
#define TARGET_PORT_MAX_NUM 65535\r
#define MAC_ENTRY_LABEL 0x3000\r
#define ORDER_ENTRY_LABEL 0x4000\r
#define DELETE_ENTRY_LABEL 0x5000\r
+#define KEYWORD_ENTRY_LABEL 0x6000\r
#define CONFIG_OPTION_OFFSET 0x9000\r
\r
-#define ISCSI_LUN_STR_MAX_LEN 21\r
#define ISCSI_CHAP_SECRET_MIN_LEN 12\r
#define ISCSI_CHAP_SECRET_MAX_LEN 16\r
//\r
// ISCSI_CHAP_SECRET_STORAGE = ISCSI_CHAP_SECRET_MAX_LEN + sizeof (NULL-Terminator)\r
//\r
-#define ISCSI_CHAP_SECRET_STORAGE 17\r
-#define ISCSI_CHAP_NAME_MAX_LEN 126\r
-#define ISCSI_CHAP_NAME_STORAGE 127\r
+#define ISCSI_CHAP_SECRET_STORAGE 17\r
+\r
+#define ISCSI_CHAP_NAME_MAX_LEN 126\r
+#define ISCSI_CHAP_NAME_STORAGE 127\r
\r
#define KERBEROS_SECRET_MIN_LEN 12\r
#define KERBEROS_SECRET_MAX_LEN 16\r
#define ISID_CONFIGURABLE_MAX_LEN 12\r
#define ISID_CONFIGURABLE_STORAGE 13\r
\r
+//\r
+// sizeof (EFI_MAC_ADDRESS) * 3\r
+//\r
+#define ISCSI_MAX_MAC_STRING_LEN 96\r
+\r
+///\r
+/// Macro used for target Url.\r
+///\r
+#define ISCSI_TARGET_URI_MIN_SIZE 0\r
+#define ISCSI_TARGET_URI_MAX_SIZE 255\r
+\r
#pragma pack(1)\r
+\r
+//\r
+// Used by keyword.\r
+//\r
+typedef struct {\r
+ CHAR16 ISCSIIsId[ISID_CONFIGURABLE_STORAGE];\r
+ CHAR16 ISCSIInitiatorIpAddress[IP4_STR_MAX_SIZE];\r
+ CHAR16 ISCSIInitiatorNetmask[IP4_STR_MAX_SIZE];\r
+ CHAR16 ISCSIInitiatorGateway[IP4_STR_MAX_SIZE];\r
+ CHAR16 ISCSITargetName[ISCSI_NAME_MAX_SIZE];\r
+ CHAR16 ISCSITargetIpAddress[ISCSI_TARGET_URI_MAX_SIZE];\r
+ CHAR16 ISCSILun[ISCSI_LUN_STR_MAX_LEN];\r
+ CHAR16 ISCSIChapUsername[ISCSI_CHAP_NAME_STORAGE];\r
+ CHAR16 ISCSIChapSecret[ISCSI_CHAP_SECRET_STORAGE];\r
+ CHAR16 ISCSIReverseChapUsername[ISCSI_CHAP_NAME_STORAGE];\r
+ CHAR16 ISCSIReverseChapSecret[ISCSI_CHAP_SECRET_STORAGE];\r
+} KEYWORD_STR;\r
+\r
typedef struct _ISCSI_CONFIG_IFR_NVDATA {\r
CHAR16 InitiatorName[ISCSI_NAME_MAX_SIZE];\r
- CHAR16 AttemptName[ATTEMPT_NAME_MAX_SIZE];\r
-\r
+ CHAR16 AttemptName[ATTEMPT_NAME_SIZE];\r
UINT8 Enabled;\r
UINT8 IpMode;\r
\r
CHAR16 Gateway[IP4_STR_MAX_SIZE];\r
\r
CHAR16 TargetName[ISCSI_NAME_MAX_SIZE];\r
- CHAR16 TargetIp[IP_STR_MAX_SIZE];\r
+ CHAR16 TargetIp[ISCSI_TARGET_URI_MAX_SIZE];\r
UINT16 TargetPort;\r
CHAR16 BootLun[ISCSI_LUN_STR_MAX_LEN];\r
\r
\r
UINT8 DynamicOrderedList[ISCSI_MAX_ATTEMPTS_NUM];\r
UINT8 DeleteAttemptList[ISCSI_MAX_ATTEMPTS_NUM];\r
-\r
+ UINT8 AddAttemptList[ISCSI_MAX_ATTEMPTS_NUM];\r
CHAR16 IsId[ISID_CONFIGURABLE_STORAGE];\r
+\r
+ //\r
+ // This will be used by keywords.\r
+ //\r
+ CHAR16 ISCSIMacAddr[ISCSI_MAX_MAC_STRING_LEN];\r
+ CHAR16 ISCSIAttemptOrder[ATTEMPT_NAME_LIST_SIZE];\r
+ CHAR16 ISCSIAddAttemptList[ATTEMPT_NAME_LIST_SIZE];\r
+ CHAR16 ISCSIDeleteAttemptList[ATTEMPT_NAME_LIST_SIZE];\r
+ CHAR16 ISCSIDisplayAttemptList[ATTEMPT_NAME_LIST_SIZE];\r
+ CHAR16 ISCSIAttemptName[ATTEMPT_NAME_LIST_SIZE];\r
+ UINT8 ISCSIBootEnableList[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT8 ISCSIIpAddressTypeList[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT8 ISCSIConnectRetry[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT16 ISCSIConnectTimeout[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT8 ISCSIInitiatorInfoViaDHCP[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT8 ISCSITargetInfoViaDHCP[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT16 ISCSITargetTcpPort[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT8 ISCSIAuthenticationMethod[ISCSI_MAX_ATTEMPTS_NUM];\r
+ UINT8 ISCSIChapType[ISCSI_MAX_ATTEMPTS_NUM];\r
+ KEYWORD_STR Keyword[ISCSI_MAX_ATTEMPTS_NUM];\r
} ISCSI_CONFIG_IFR_NVDATA;\r
#pragma pack()\r
\r