diff options
author | Fu Siyuan <siyuan.fu@intel.com> | 2017-08-03 14:38:51 +0800 |
---|---|---|
committer | Fu Siyuan <siyuan.fu@intel.com> | 2017-08-04 13:30:30 +0800 |
commit | 41c9011cc166cff8a27a7e90592d81ba570b42ff (patch) | |
tree | b680428f55597e7fa1152ae6480f5502666f4e26 /NetworkPkg | |
parent | bc2300577ffddcdf5b4b015f252f8357663217a7 (diff) | |
download | edk2-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')
-rw-r--r-- | NetworkPkg/IScsiDxe/IScsiConfig.c | 8 | ||||
-rw-r--r-- | NetworkPkg/IScsiDxe/IScsiConfigStrings.uni | 1 | ||||
-rw-r--r-- | NetworkPkg/IScsiDxe/IScsiMisc.c | 2 |
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,
|