]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg: iSCSI should allow to set 6 or 12 length of ISID keyword.
authorFu Siyuan <siyuan.fu@intel.com>
Thu, 3 Aug 2017 06:38:51 +0000 (14:38 +0800)
committerFu Siyuan <siyuan.fu@intel.com>
Fri, 4 Aug 2017 05:30:30 +0000 (13:30 +0800)
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>
NetworkPkg/IScsiDxe/IScsiConfig.c
NetworkPkg/IScsiDxe/IScsiConfigStrings.uni
NetworkPkg/IScsiDxe/IScsiMisc.c

index a588403017355547b8ce0d61830a456e3a2802af..498221a33969a11013f37ef0dd48d77cbf0180e6 100644 (file)
@@ -205,11 +205,11 @@ IScsiParseIsIdFromString (
 \r
   IsIdStr = (CHAR16 *) String;\r
 \r
-  if (StrLen (IsIdStr) != 6) {\r
+  if (StrLen (IsIdStr) != 6 && StrLen (IsIdStr) != 12) {\r
     UnicodeSPrint (\r
       PortString,\r
       (UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r
-      L"Error! Input is incorrect, please input 6 hex numbers!\n"\r
+      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"\r
       );\r
 \r
     CreatePopUp (\r
@@ -222,6 +222,10 @@ IScsiParseIsIdFromString (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  if (StrLen (IsIdStr) == 12) {\r
+    IsIdStr += 6;\r
+  }\r
+\r
   for (Index = 3; Index < 6; Index++) {\r
     CopyMem (TempStr, IsIdStr, sizeof (TempStr));\r
     TempStr[2] = L'\0';\r
index 79522583de3687f8343f09c1250e15af960ca958..10583f8f3b5a1201f73280d8093ce6f48b8d3f54 100644 (file)
@@ -99,3 +99,4 @@
                                         #language x-UEFI-ns "iSCSIDisplayAttemptList"\r
 #string STR_ISCSI_ATTEMPT_ORDER         #language en-US "New Attempt Order"\r
                                         #language x-UEFI-ns "iSCSIAttemptOrder"\r
+#string STR_ISCSI_ISID_HELP             #language en-US "The iSCSI ISID. Default value are derived from MAC address. Only last 3 bytes are configurable."\r
index 2c93590deb12934eadb7ca25c07f795c4af6e28d..e20fe9194adbf44b46d386ec9f17d44c3dd16972 100644 (file)
@@ -952,7 +952,7 @@ IScsiCreateKeywords (
       CONFIGURATION_VARSTORE_ID,\r
       (UINT16) (ATTEMPT_ISID_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)),\r
       StringToken,\r
-      StringToken,\r
+      STRING_TOKEN (STR_ISCSI_ISID_HELP),\r
       0,\r
       0,\r
       ISID_CONFIGURABLE_MIN_LEN,\r