summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/IScsiDxe
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2017-08-03 14:38:51 +0800
committerFu Siyuan <siyuan.fu@intel.com>2017-08-04 13:30:30 +0800
commit41c9011cc166cff8a27a7e90592d81ba570b42ff (patch)
treeb680428f55597e7fa1152ae6480f5502666f4e26 /NetworkPkg/IScsiDxe
parentbc2300577ffddcdf5b4b015f252f8357663217a7 (diff)
downloadedk2-41c9011cc166cff8a27a7e90592d81ba570b42ff.tar.gz
edk2-41c9011cc166cff8a27a7e90592d81ba570b42ff.tar.bz2
edk2-41c9011cc166cff8a27a7e90592d81ba570b42ff.zip
NetworkPkg: iSCSI should allow to set 6 or 12 length of ISID keyword.
The last 3 bytes of ISID should be able to changed by setting the keyword with a value with length 6 (only last 3 bytes) or 12 (full ISID) according to the keyword definition in UEFI configuration namespace website. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com>
Diffstat (limited to 'NetworkPkg/IScsiDxe')
-rw-r--r--NetworkPkg/IScsiDxe/IScsiConfig.c8
-rw-r--r--NetworkPkg/IScsiDxe/IScsiConfigStrings.uni1
-rw-r--r--NetworkPkg/IScsiDxe/IScsiMisc.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/NetworkPkg/IScsiDxe/IScsiConfig.c b/NetworkPkg/IScsiDxe/IScsiConfig.c
index a588403017..498221a339 100644
--- a/NetworkPkg/IScsiDxe/IScsiConfig.c
+++ b/NetworkPkg/IScsiDxe/IScsiConfig.c
@@ -205,11 +205,11 @@ IScsiParseIsIdFromString (
IsIdStr = (CHAR16 *) String;
- if (StrLen (IsIdStr) != 6) {
+ if (StrLen (IsIdStr) != 6 && StrLen (IsIdStr) != 12) {
UnicodeSPrint (
PortString,
(UINTN) ISCSI_NAME_IFR_MAX_SIZE,
- L"Error! Input is incorrect, please input 6 hex numbers!\n"
+ L"Error! Only last 3 bytes are configurable, please input 6 hex numbers for last 3 bytes only or 12 hex numbers for full SSID!\n"
);
CreatePopUp (
@@ -222,6 +222,10 @@ IScsiParseIsIdFromString (
return EFI_INVALID_PARAMETER;
}
+ if (StrLen (IsIdStr) == 12) {
+ IsIdStr += 6;
+ }
+
for (Index = 3; Index < 6; Index++) {
CopyMem (TempStr, IsIdStr, sizeof (TempStr));
TempStr[2] = L'\0';
diff --git a/NetworkPkg/IScsiDxe/IScsiConfigStrings.uni b/NetworkPkg/IScsiDxe/IScsiConfigStrings.uni
index 79522583de..10583f8f3b 100644
--- a/NetworkPkg/IScsiDxe/IScsiConfigStrings.uni
+++ b/NetworkPkg/IScsiDxe/IScsiConfigStrings.uni
@@ -99,3 +99,4 @@
#language x-UEFI-ns "iSCSIDisplayAttemptList"
#string STR_ISCSI_ATTEMPT_ORDER #language en-US "New Attempt Order"
#language x-UEFI-ns "iSCSIAttemptOrder"
+#string STR_ISCSI_ISID_HELP #language en-US "The iSCSI ISID. Default value are derived from MAC address. Only last 3 bytes are configurable."
diff --git a/NetworkPkg/IScsiDxe/IScsiMisc.c b/NetworkPkg/IScsiDxe/IScsiMisc.c
index 2c93590deb..e20fe9194a 100644
--- a/NetworkPkg/IScsiDxe/IScsiMisc.c
+++ b/NetworkPkg/IScsiDxe/IScsiMisc.c
@@ -952,7 +952,7 @@ IScsiCreateKeywords (
CONFIGURATION_VARSTORE_ID,
(UINT16) (ATTEMPT_ISID_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)),
StringToken,
- StringToken,
+ STRING_TOKEN (STR_ISCSI_ISID_HELP),
0,
0,
ISID_CONFIGURABLE_MIN_LEN,