summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-11 08:17:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-11 08:17:27 +0000
commitf215e02bf85f68d3a6106c2a1f4f7f063f819064 (patch)
tree6bb5b92c046312c4e95ac2620b10ddf482d3fa8b /src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h
parentInitial commit. (diff)
downloadvirtualbox-f215e02bf85f68d3a6106c2a1f4f7f063f819064.tar.xz
virtualbox-f215e02bf85f68d3a6106c2a1f4f7f063f819064.zip
Adding upstream version 7.0.14-dfsg.upstream/7.0.14-dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h')
-rw-r--r--src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h232
1 files changed, 232 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h b/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h
new file mode 100644
index 00000000..37e96b0f
--- /dev/null
+++ b/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h
@@ -0,0 +1,232 @@
+/** @file
+ Define NVData structures used by the iSCSI configuration component.
+
+Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _ISCSI_NVDATASTRUC_H_
+#define _ISCSI_NVDATASTRUC_H_
+
+#include <Guid/IScsiConfigHii.h>
+
+#define VAR_EQ_TEST_NAME 0x100
+#define CONFIGURATION_VARSTORE_ID 0x6666
+
+#define FORMID_MAIN_FORM 1
+#define FORMID_MAC_FORM 2
+#define FORMID_ATTEMPT_FORM 3
+#define FORMID_ORDER_FORM 4
+#define FORMID_DELETE_FORM 5
+
+#define ISCSI_MAX_ATTEMPTS_NUM FixedPcdGet8 (PcdMaxIScsiAttemptNumber)
+
+#define ISCSI_NAME_IFR_MIN_SIZE 4
+#define ISCSI_NAME_IFR_MAX_SIZE 223
+#define ISCSI_NAME_MAX_SIZE 224
+
+#define ATTEMPT_NAME_LIST_SIZE 96
+#define ATTEMPT_NAME_SIZE 12
+
+#define CONNECT_MIN_RETRY 0
+#define CONNECT_MAX_RETRY 16
+
+#define CONNECT_MIN_TIMEOUT 100
+#define CONNECT_MAX_TIMEOUT 20000
+#define CONNECT_DEFAULT_TIMEOUT 1000
+
+#define ISCSI_ACTIVE_DISABLED 0
+#define ISCSI_ACTIVE_ENABLED 1
+
+#define ISCSI_DISABLED 0
+#define ISCSI_ENABLED 1
+#define ISCSI_ENABLED_FOR_MPIO 2
+
+#define IP_MODE_IP4 0
+#define IP_MODE_IP6 1
+#define IP_MODE_AUTOCONFIG 2
+
+#define ISCSI_AUTH_TYPE_NONE 0
+#define ISCSI_AUTH_TYPE_CHAP 1
+#define ISCSI_AUTH_TYPE_KRB 2
+
+#define IP4_MIN_SIZE 7
+#define IP4_MAX_SIZE 15
+#define IP4_STR_MAX_SIZE 16
+
+//
+// Macros used for an IPv4 or an IPv6 address.
+//
+#define IP_MIN_SIZE 2
+#define IP_MAX_SIZE 39
+#define IP_STR_MAX_SIZE 40
+
+#define LUN_MIN_SIZE 1
+#define LUN_MAX_SIZE 20
+#define ISCSI_LUN_STR_MAX_LEN 21
+
+#define ISCSI_CHAP_UNI 0
+#define ISCSI_CHAP_MUTUAL 1
+
+#define TARGET_PORT_MIN_NUM 0
+#define TARGET_PORT_MAX_NUM 65535
+#define LABEL_END 0xffff
+
+#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_ADD_ATTEMPT 0x10e
+#define KEY_SAVE_ATTEMPT_CONFIG 0x10f
+#define KEY_ORDER_ATTEMPT_CONFIG 0x110
+#define KEY_SAVE_ORDER_CHANGES 0x111
+#define KEY_IGNORE_ORDER_CHANGES 0x112
+#define KEY_ATTEMPT_NAME 0x113
+#define KEY_SAVE_DELETE_ATTEMPT 0x114
+#define KEY_IGNORE_DELETE_ATTEMPT 0x115
+#define KEY_DELETE_ATTEMPT 0x116
+
+#define KEY_IP_MODE 0x11c
+#define KEY_AUTH_TYPE 0x11d
+#define KEY_CONFIG_ISID 0x11e
+
+#define ATTEMPT_ENTRY_LABEL 0x9000
+#define KEY_ATTEMPT_ENTRY_BASE 0xa000
+#define KEY_DE_ATTEMPT_ENTRY_BASE 0xb000
+
+#define KEY_DEVICE_ENTRY_BASE 0x1000
+#define KEY_MAC_ENTRY_BASE 0x2000
+#define MAC_ENTRY_LABEL 0x3000
+#define ORDER_ENTRY_LABEL 0x4000
+#define DELETE_ENTRY_LABEL 0x5000
+#define KEYWORD_ENTRY_LABEL 0x6000
+#define CONFIG_OPTION_OFFSET 0x9000
+
+#define ISCSI_CHAP_SECRET_MIN_LEN 12
+#define ISCSI_CHAP_SECRET_MAX_LEN 16
+//
+// ISCSI_CHAP_SECRET_STORAGE = ISCSI_CHAP_SECRET_MAX_LEN + sizeof (NULL-Terminator)
+//
+#define ISCSI_CHAP_SECRET_STORAGE 17
+
+#define ISCSI_CHAP_NAME_MAX_LEN 126
+#define ISCSI_CHAP_NAME_STORAGE 127
+
+#define KERBEROS_SECRET_MIN_LEN 12
+#define KERBEROS_SECRET_MAX_LEN 16
+#define KERBEROS_SECRET_STORAGE 17
+#define KERBEROS_NAME_MAX_LEN 96
+#define KERBEROS_KDC_PORT_MIN_NUM 0
+#define KERBEROS_KDC_PORT_MAX_NUM 65535
+
+#define ISID_CONFIGURABLE_MIN_LEN 6
+#define ISID_CONFIGURABLE_MAX_LEN 12
+#define ISID_CONFIGURABLE_STORAGE 13
+
+//
+// sizeof (EFI_MAC_ADDRESS) * 3
+//
+#define ISCSI_MAX_MAC_STRING_LEN 96
+
+///
+/// Macro used for target Url.
+///
+#define ISCSI_TARGET_URI_MIN_SIZE 0
+#define ISCSI_TARGET_URI_MAX_SIZE 255
+
+#pragma pack(1)
+
+//
+// Used by keyword.
+//
+typedef struct {
+ CHAR16 ISCSIIsId[ISID_CONFIGURABLE_STORAGE];
+ CHAR16 ISCSIInitiatorIpAddress[IP4_STR_MAX_SIZE];
+ CHAR16 ISCSIInitiatorNetmask[IP4_STR_MAX_SIZE];
+ CHAR16 ISCSIInitiatorGateway[IP4_STR_MAX_SIZE];
+ CHAR16 ISCSITargetName[ISCSI_NAME_MAX_SIZE];
+ CHAR16 ISCSITargetIpAddress[ISCSI_TARGET_URI_MAX_SIZE];
+ CHAR16 ISCSILun[ISCSI_LUN_STR_MAX_LEN];
+ CHAR16 ISCSIChapUsername[ISCSI_CHAP_NAME_STORAGE];
+ CHAR16 ISCSIChapSecret[ISCSI_CHAP_SECRET_STORAGE];
+ CHAR16 ISCSIReverseChapUsername[ISCSI_CHAP_NAME_STORAGE];
+ CHAR16 ISCSIReverseChapSecret[ISCSI_CHAP_SECRET_STORAGE];
+} KEYWORD_STR;
+
+typedef struct _ISCSI_CONFIG_IFR_NVDATA {
+ CHAR16 InitiatorName[ISCSI_NAME_MAX_SIZE];
+ CHAR16 AttemptName[ATTEMPT_NAME_SIZE];
+ UINT8 Enabled;
+ UINT8 IpMode;
+
+ UINT8 ConnectRetryCount;
+ UINT8 Padding1;
+ UINT16 ConnectTimeout; // Timeout value in milliseconds.
+
+ UINT8 InitiatorInfoFromDhcp;
+ UINT8 TargetInfoFromDhcp;
+ CHAR16 LocalIp[IP4_STR_MAX_SIZE];
+ CHAR16 SubnetMask[IP4_STR_MAX_SIZE];
+ CHAR16 Gateway[IP4_STR_MAX_SIZE];
+
+ CHAR16 TargetName[ISCSI_NAME_MAX_SIZE];
+ CHAR16 TargetIp[ISCSI_TARGET_URI_MAX_SIZE];
+ UINT16 TargetPort;
+ CHAR16 BootLun[ISCSI_LUN_STR_MAX_LEN];
+
+ UINT8 AuthenticationType;
+
+ UINT8 CHAPType;
+ CHAR16 CHAPName[ISCSI_CHAP_NAME_STORAGE];
+ CHAR16 CHAPSecret[ISCSI_CHAP_SECRET_STORAGE];
+ CHAR16 ReverseCHAPName[ISCSI_CHAP_NAME_STORAGE];
+ CHAR16 ReverseCHAPSecret[ISCSI_CHAP_SECRET_STORAGE];
+
+ BOOLEAN MutualRequired;
+ UINT8 Padding2;
+ CHAR16 KerberosUserName[KERBEROS_NAME_MAX_LEN];
+ CHAR16 KerberosUserSecret[KERBEROS_SECRET_STORAGE];
+ CHAR16 KerberosKDCName[KERBEROS_NAME_MAX_LEN];
+ CHAR16 KerberosKDCRealm[KERBEROS_NAME_MAX_LEN];
+ CHAR16 KerberosKDCIp[IP_STR_MAX_SIZE];
+ UINT16 KerberosKDCPort;
+
+ UINT8 DynamicOrderedList[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 DeleteAttemptList[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 AddAttemptList[ISCSI_MAX_ATTEMPTS_NUM];
+ CHAR16 IsId[ISID_CONFIGURABLE_STORAGE];
+
+ //
+ // This will be used by keywords.
+ //
+ CHAR16 ISCSIMacAddr[ISCSI_MAX_MAC_STRING_LEN];
+ CHAR16 ISCSIAttemptOrder[ATTEMPT_NAME_LIST_SIZE];
+ CHAR16 ISCSIAddAttemptList[ATTEMPT_NAME_LIST_SIZE];
+ CHAR16 ISCSIDeleteAttemptList[ATTEMPT_NAME_LIST_SIZE];
+ CHAR16 ISCSIDisplayAttemptList[ATTEMPT_NAME_LIST_SIZE];
+ CHAR16 ISCSIAttemptName[ATTEMPT_NAME_LIST_SIZE];
+ UINT8 ISCSIBootEnableList[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 ISCSIIpAddressTypeList[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 ISCSIConnectRetry[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT16 ISCSIConnectTimeout[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 ISCSIInitiatorInfoViaDHCP[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 ISCSITargetInfoViaDHCP[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT16 ISCSITargetTcpPort[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 ISCSIAuthenticationMethod[ISCSI_MAX_ATTEMPTS_NUM];
+ UINT8 ISCSIChapType[ISCSI_MAX_ATTEMPTS_NUM];
+ KEYWORD_STR Keyword[ISCSI_MAX_ATTEMPTS_NUM];
+} ISCSI_CONFIG_IFR_NVDATA;
+#pragma pack()
+
+#endif