From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- .../NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h | 232 +++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h (limited to 'src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiConfigNVDataStruc.h') 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.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _ISCSI_NVDATASTRUC_H_ +#define _ISCSI_NVDATASTRUC_H_ + +#include + +#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 -- cgit v1.2.3