#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 0\r
#define ISCSI_CHAP_MUTUAL 1\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_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[IP_STR_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
\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