summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang, Lubo <C:/Program Files (x86)/Git/o=Intel/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=Zhang, Lubob8d>2016-02-29 14:25:50 +0800
committerJiaxin Wu <jiaxin.wu@intel.com>2016-03-07 09:57:09 +0800
commitbe6cd654eb27370bfa127dd387846ad983f4ef72 (patch)
tree2a219f73811787324d3d3a03ff96a872fd9f63e1
parentfa848a4048943251fc057fe8d6c5a82e01d2ffb6 (diff)
downloadedk2-platforms-be6cd654eb27370bfa127dd387846ad983f4ef72.tar.xz
NetworkPkg: Support print help information using -? command.
v2: *Modify the logic of show SAD,SPD and PAD help info, include them in -? instead of follow -p command. Since Shell supports finding help information from resource section of application image. We modify the Shell application Under NetworkPkg to support print help information string using -? command. Cc: Fu Siyuan <siyuan.fu@intel.com> Cc: Ye Ting <ting.ye@intel.com> Cc: Wu Jiaxin <jiaxin.wu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Zhang Lubo <lubo.zhang@intel.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com> Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
-rw-r--r--NetworkPkg/Application/IfConfig6/IfConfig6.c64
-rw-r--r--NetworkPkg/Application/IfConfig6/IfConfig6.h7
-rw-r--r--NetworkPkg/Application/IfConfig6/IfConfig6.inf10
-rw-r--r--NetworkPkg/Application/IfConfig6/IfConfig6Strings.uni55
-rw-r--r--NetworkPkg/Application/IpsecConfig/IpSecConfig.c57
-rw-r--r--NetworkPkg/Application/IpsecConfig/IpSecConfig.h6
-rw-r--r--NetworkPkg/Application/IpsecConfig/IpSecConfig.inf8
-rw-r--r--NetworkPkg/Application/IpsecConfig/IpSecConfigStrings.uni132
-rw-r--r--NetworkPkg/Application/Ping6/Ping6.c41
-rw-r--r--NetworkPkg/Application/Ping6/Ping6.h7
-rw-r--r--NetworkPkg/Application/Ping6/Ping6.inf10
-rw-r--r--NetworkPkg/Application/Ping6/Ping6Strings.uni35
-rw-r--r--NetworkPkg/Application/VConfig/VConfig.c43
-rw-r--r--NetworkPkg/Application/VConfig/VConfig.inf12
-rw-r--r--NetworkPkg/Application/VConfig/VConfigStrings.uni52
15 files changed, 325 insertions, 214 deletions
diff --git a/NetworkPkg/Application/IfConfig6/IfConfig6.c b/NetworkPkg/Application/IfConfig6/IfConfig6.c
index 8d464b8e61..8bd6243749 100644
--- a/NetworkPkg/Application/IfConfig6/IfConfig6.c
+++ b/NetworkPkg/Application/IfConfig6/IfConfig6.c
@@ -1,7 +1,7 @@
/** @file
The implementation for Shell application IfConfig6.
- Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -19,6 +19,7 @@
#include <Library/MemoryAllocationLib.h>
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiHiiServicesLib.h>
#include <Library/HiiLib.h>
#include <Library/NetLib.h>
@@ -47,10 +48,6 @@ SHELL_PARAM_ITEM mIfConfig6CheckList[] = {
TypeValue
},
{
- L"-?",
- TypeFlag
- },
- {
NULL,
TypeMax
},
@@ -1648,20 +1645,45 @@ IfConfig6Initialize (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- IFCONFIG6_PRIVATE_DATA *Private;
- LIST_ENTRY *ParamPackage;
- CONST CHAR16 *ValueStr;
- ARG_LIST *ArgList;
- CHAR16 *ProblemParam;
- CHAR16 *Str;
+ EFI_STATUS Status;
+ IFCONFIG6_PRIVATE_DATA *Private;
+ EFI_HII_PACKAGE_LIST_HEADER *PackageList;
+ LIST_ENTRY *ParamPackage;
+ CONST CHAR16 *ValueStr;
+ ARG_LIST *ArgList;
+ CHAR16 *ProblemParam;
+ CHAR16 *Str;
Private = NULL;
//
- // Register our string package with HII and return the handle to it.
+ // Retrieve HII package list from ImageHandle
//
- mHiiHandle = HiiAddPackages (&gEfiCallerIdGuid, ImageHandle, IfConfig6Strings, NULL);
+ Status = gBS->OpenProtocol (
+ ImageHandle,
+ &gEfiHiiPackageListProtocolGuid,
+ (VOID **) &PackageList,
+ ImageHandle,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ //
+ // Publish HII package list to HII Database.
+ //
+ Status = gHiiDatabase->NewPackageList (
+ gHiiDatabase,
+ PackageList,
+ NULL,
+ &mHiiHandle
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
ASSERT (mHiiHandle != NULL);
Status = ShellCommandLineParseEx (mIfConfig6CheckList, &ParamPackage, &ProblemParam, TRUE, FALSE);
@@ -1674,7 +1696,7 @@ IfConfig6Initialize (
// To handle no option.
//
if (!ShellCommandLineGetFlag (ParamPackage, L"-r") && !ShellCommandLineGetFlag (ParamPackage, L"-s") &&
- !ShellCommandLineGetFlag (ParamPackage, L"-?") && !ShellCommandLineGetFlag (ParamPackage, L"-l")) {
+ !ShellCommandLineGetFlag (ParamPackage, L"-l")) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_LACK_OPTION), mHiiHandle);
goto ON_EXIT;
}
@@ -1683,20 +1705,10 @@ IfConfig6Initialize (
//
if (((ShellCommandLineGetFlag (ParamPackage, L"-r")) && (ShellCommandLineGetFlag (ParamPackage, L"-s"))) ||
((ShellCommandLineGetFlag (ParamPackage, L"-r")) && (ShellCommandLineGetFlag (ParamPackage, L"-l"))) ||
- ((ShellCommandLineGetFlag (ParamPackage, L"-r")) && (ShellCommandLineGetFlag (ParamPackage, L"-?"))) ||
- ((ShellCommandLineGetFlag (ParamPackage, L"-s")) && (ShellCommandLineGetFlag (ParamPackage, L"-l"))) ||
- ((ShellCommandLineGetFlag (ParamPackage, L"-s")) && (ShellCommandLineGetFlag (ParamPackage, L"-?"))) ||
- ((ShellCommandLineGetFlag (ParamPackage, L"-l")) && (ShellCommandLineGetFlag (ParamPackage, L"-?")))) {
+ ((ShellCommandLineGetFlag (ParamPackage, L"-s")) && (ShellCommandLineGetFlag (ParamPackage, L"-l")))) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_CONFLICT_OPTIONS), mHiiHandle);
goto ON_EXIT;
}
- //
- // To show the help information of ifconfig6 command.
- //
- if (ShellCommandLineGetFlag (ParamPackage, L"-?")) {
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_HELP), mHiiHandle);
- goto ON_EXIT;
- }
Status = EFI_INVALID_PARAMETER;
diff --git a/NetworkPkg/Application/IfConfig6/IfConfig6.h b/NetworkPkg/Application/IfConfig6/IfConfig6.h
index ad3a77566a..53b6d726da 100644
--- a/NetworkPkg/Application/IfConfig6/IfConfig6.h
+++ b/NetworkPkg/Application/IfConfig6/IfConfig6.h
@@ -1,7 +1,7 @@
/** @file
The interface function declaration of shell application IfConfig6.
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -16,6 +16,11 @@
#ifndef _IFCONFIG6_H_
#define _IFCONFIG6_H_
+//
+// String token ID of ifconfig6 command help message text.
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringIfconfig6HelpTokenId = STRING_TOKEN (STR_IFCONFIG6_HELP);
+
enum {
IfConfig6OpList = 1,
IfConfig6OpSet = 2,
diff --git a/NetworkPkg/Application/IfConfig6/IfConfig6.inf b/NetworkPkg/Application/IfConfig6/IfConfig6.inf
index 7b329f5569..519b7c3279 100644
--- a/NetworkPkg/Application/IfConfig6/IfConfig6.inf
+++ b/NetworkPkg/Application/IfConfig6/IfConfig6.inf
@@ -4,7 +4,7 @@
# It is shell application which is used to set and get configurations for the
# EFI IPv6 network stack.
#
-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -26,6 +26,12 @@
MODULE_UNI_FILE = IfConfig6.uni
#
+#
+# This flag specifies whether HII resource section is generated into PE image.
+#
+ UEFI_HII_RESOURCE_SECTION = TRUE
+
+#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 IPF
@@ -44,6 +50,7 @@
BaseLib
UefiBootServicesTableLib
UefiApplicationEntryPoint
+ UefiHiiServicesLib
BaseMemoryLib
ShellLib
MemoryAllocationLib
@@ -54,6 +61,7 @@
[Protocols]
gEfiIp6ServiceBindingProtocolGuid ## CONSUMES
gEfiIp6ConfigProtocolGuid ## CONSUMES
+ gEfiHiiPackageListProtocolGuid ## CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
IfConfig6Extra.uni
diff --git a/NetworkPkg/Application/IfConfig6/IfConfig6Strings.uni b/NetworkPkg/Application/IfConfig6/IfConfig6Strings.uni
index 3753bd8ef8..0c10bbdf78 100644
--- a/NetworkPkg/Application/IfConfig6/IfConfig6Strings.uni
+++ b/NetworkPkg/Application/IfConfig6/IfConfig6Strings.uni
@@ -1,7 +1,7 @@
/** @file
String definitions for the Shell application IfConfig6.
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions
@@ -36,30 +36,6 @@
#string STR_IFCONFIG6_INFO_PREFIX_LEN #language en-US "/%d"
#string STR_IFCONFIG6_LINE_HELP #language en-US "Displays or modifies the IPv6 configuration"
-#string STR_IFCONFIG6_HELP #language en-US "Displays or modifies IPv6 configuration for network interface.\n\n"
- "Usage:\n"
- " IfConfig6 [-b] [-r {ifname}] [-l {ifname}] [-s {ifname} {command ...}] [-?]\n"
- "\n"
- "Option:\n"
- " -b (break) enable page break.\n"
- " -r (renew) renew configuration of interface and set automatic policy.\n"
- " -l (list) list the configuration of interface.\n"
- " -s (set) set configuration of interface as follows.\n"
- " -? (help) list the help documentation.\n"
- " |man/auto manual or automatic policy\n"
- " |id {mac} alternative interface id.\n"
- " |dad {num} dad transmits count.\n"
- " |host{ip} static host ip address, must under manual policy.\n"
- " |gw {ip} gateway ip address, must under manual policy.\n"
- " |dns {ip} dns server ip address, must under manual policy.\n"
- "\n"
- "Example:\n"
- " IfConfig6 -l\n"
- " IfConfig6 -b -l\n"
- " IfConfig6 -r eth0\n"
- " IfConfig6 -s eth0 auto dad 10\n"
- " IfConfig6 -s eth0 man id ff:dd:aa:88:66:cc\n"
- " IfConfig6 -s eth1 man host 2002::1/64 2002::2/64 gw 2002::3\n"
#string STR_IFCONFIG6_ERR_LACK_INTERFACE #language en-US "Lack interface name.\n"
"Usage: IfConfig6 -s {ifname} {config options ...}\n"
"Example: IfConfig6 -s eth0 auto\n"
@@ -85,3 +61,32 @@
"Hint: Please type 'IfConfig6 -?' for help info.\n"
#string STR_IFCONFIG6_ERR_ADDRESS_FAILED #language en-US "It failed to set .\n"
#string STR_IFCONFIG6_INVALID_IP #language en-US "%IfConfig6: Invalid IP6 address, %s\n"
+
+#string STR_IFCONFIG6_HELP #language en-US ""
+".TH IfConfig6 0 "Displays or modifies IPv6 configuration for network interface."\r\n"
+".SH NAME\r\n"
+"Displays or modifies IPv6 configuration for network interface.\r\n"
+".SH SYNOPSIS\r\n"
+" \r\n"
+"IfConfig6 [-b] [-r {ifname}] [-l {ifname}] [-s {ifname} {command ...}] [-?]\r\n"
+".SH OPTIONS\r\n"
+" \r\n"
+" -b (break) enable page break.\r\n"
+" -r (renew) renew configuration of interface and set automatic policy.\r\n"
+" -l (list) list the configuration of interface.\r\n"
+" -s (set) set configuration of interface as follows.\r\n"
+" |man/auto manual or automatic policy\r\n"
+" |id {mac} alternative interface id.\r\n"
+" |dad {num} dad transmits count.\r\n"
+" |host{ip} static host ip address, must under manual policy.\r\n"
+" |gw {ip} gateway ip address, must under manual policy.\r\n"
+" |dns {ip} dns server ip address, must under manual policy.\r\n"
+".SH EXAMPLES\r\n"
+" \r\n"
+"Examples:\r\n"
+" IfConfig6 -l\r\n"
+" IfConfig6 -b -l\r\n"
+" IfConfig6 -r eth0\r\n"
+" IfConfig6 -s eth0 auto dad 10\r\n"
+" IfConfig6 -s eth0 man id ff:dd:aa:88:66:cc\r\n"
+" IfConfig6 -s eth1 man host 2002::1/64 2002::2/64 gw 2002::3\r\n"
diff --git a/NetworkPkg/Application/IpsecConfig/IpSecConfig.c b/NetworkPkg/Application/IpsecConfig/IpSecConfig.c
index e4f6057f40..ff895bccf0 100644
--- a/NetworkPkg/Application/IpsecConfig/IpSecConfig.c
+++ b/NetworkPkg/Application/IpsecConfig/IpSecConfig.c
@@ -40,7 +40,6 @@ SHELL_PARAM_ITEM mIpSecConfigParamList[] = {
{ L"-enable", TypeFlag },
{ L"-disable", TypeFlag },
{ L"-status", TypeFlag },
- { L"-?", TypeFlag },
//
// SPD Selector
@@ -622,11 +621,36 @@ InitializeIpSecConfig (
CONST CHAR16 *ValueStr;
CHAR16 *ProblemParam;
UINTN NonOptionCount;
+ EFI_HII_PACKAGE_LIST_HEADER *PackageList;
//
- // Register our string package with HII and return the handle to it.
+ // Retrieve HII package list from ImageHandle
//
- mHiiHandle = HiiAddPackages (&gEfiCallerIdGuid, ImageHandle, IpSecConfigStrings, NULL);
+ Status = gBS->OpenProtocol (
+ ImageHandle,
+ &gEfiHiiPackageListProtocolGuid,
+ (VOID **) &PackageList,
+ ImageHandle,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ //
+ // Publish HII package list to HII Database.
+ //
+ Status = gHiiDatabase->NewPackageList (
+ gHiiDatabase,
+ PackageList,
+ NULL,
+ &mHiiHandle
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
ASSERT (mHiiHandle != NULL);
Status = ShellCommandLineParseEx (mIpSecConfigParamList, &ParamPackage, &ProblemParam, TRUE, FALSE);
@@ -728,33 +752,6 @@ InitializeIpSecConfig (
}
}
- if (ShellCommandLineGetFlag (ParamPackage, L"-?")) {
- if (DataType == -1) {
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IPSEC_CONFIG_HELP), mHiiHandle);
- goto Done;
- }
-
- switch (DataType) {
- case IPsecConfigDataTypeSpd:
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IPSEC_CONFIG_SPD_HELP), mHiiHandle);
- break;
-
- case IPsecConfigDataTypeSad:
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IPSEC_CONFIG_SAD_HELP), mHiiHandle);
- break;
-
- case IPsecConfigDataTypePad:
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IPSEC_CONFIG_PAD_HELP), mHiiHandle);
- break;
-
- default:
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IPSEC_CONFIG_INCORRECT_DB), mHiiHandle);
- break;
- }
-
- goto Done;
- }
-
NonOptionCount = ShellCommandLineGetCount (ParamPackage);
if ((NonOptionCount - 1) > 0) {
ValueStr = ShellCommandLineGetRawValue (ParamPackage, (UINT32) (NonOptionCount - 1));
diff --git a/NetworkPkg/Application/IpsecConfig/IpSecConfig.h b/NetworkPkg/Application/IpsecConfig/IpSecConfig.h
index 17044fef79..244926f888 100644
--- a/NetworkPkg/Application/IpsecConfig/IpSecConfig.h
+++ b/NetworkPkg/Application/IpsecConfig/IpSecConfig.h
@@ -22,10 +22,16 @@
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiHiiServicesLib.h>
#include <Library/NetLib.h>
#include <Protocol/IpSecConfig.h>
+//
+// String token ID of VConfig command help message text.
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringIpSecHelpTokenId = STRING_TOKEN (STR_IPSEC_CONFIG_HELP);
+
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
#define IPSECCONFIG_STATUS_NAME L"IpSecStatus"
diff --git a/NetworkPkg/Application/IpsecConfig/IpSecConfig.inf b/NetworkPkg/Application/IpsecConfig/IpSecConfig.inf
index 52cf6b0341..02371e535d 100644
--- a/NetworkPkg/Application/IpsecConfig/IpSecConfig.inf
+++ b/NetworkPkg/Application/IpsecConfig/IpSecConfig.inf
@@ -25,6 +25,12 @@
ENTRY_POINT = InitializeIpSecConfig
MODULE_UNI_FILE = IpSecConfig.uni
+#
+#
+# This flag specifies whether HII resource section is generated into PE image.
+#
+ UEFI_HII_RESOURCE_SECTION = TRUE
+
[Sources]
IpSecConfigStrings.uni
IpSecConfig.c
@@ -52,6 +58,7 @@
[LibraryClasses]
UefiBootServicesTableLib
UefiApplicationEntryPoint
+ UefiHiiServicesLib
BaseMemoryLib
ShellLib
MemoryAllocationLib
@@ -63,6 +70,7 @@
[Protocols]
gEfiIpSec2ProtocolGuid ##CONSUMES
gEfiIpSecConfigProtocolGuid ##CONSUMES
+ gEfiHiiPackageListProtocolGuid ##CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
IpSecConfigExtra.uni
diff --git a/NetworkPkg/Application/IpsecConfig/IpSecConfigStrings.uni b/NetworkPkg/Application/IpsecConfig/IpSecConfigStrings.uni
index 2c342d38cd..bd7f546327 100644
--- a/NetworkPkg/Application/IpsecConfig/IpSecConfigStrings.uni
+++ b/NetworkPkg/Application/IpsecConfig/IpSecConfigStrings.uni
@@ -49,76 +49,6 @@
#string STR_IPSEC_CONFIG_INSERT_UNSUPPORT #language en-US "%s: Policy entry insertion not supported!\n"
-#string STR_IPSEC_CONFIG_LINE_HELP #language en-US "Displays or modifies the IPsec configuration"
-
-#string STR_IPSEC_CONFIG_HELP #language en-US "Displays or modifies the current IPsec configuration.\n"
- "%HUsage: IpSecConfig [-p {SPD|SAD|PAD}] [command] [options[parameters]]%N\n"
- "\n"
- "%H-p (SPD|SAD|PAD)%N required.point to certain policy database.\n"
- "%Hcommand%N:\n"
- " -a [options[parameters]] Add new policy entry.\n"
- " -i entryid [options[parameters]] Insert new policy entry before the one\n"
- " matched by the entryid.\n"
- " It's only supported on SPD policy database.\n"
- " -d entryid Delete the policy entry matched by the \n"
- " entryid.\n"
- " -e entryid [options[parameters]] Edit the policy entry matched by the\n"
- " entryid.\n"
- " -f Flush the entire policy database.\n"
- " -l List all entries for specified database.\n"
- " -enable Enable IPsec.\n"
- " -disable Disable IPsec.\n"
- " -status Show IPsec current status.\n"
- "%H[options[parametes]]%N depend on the type of policy database.Type\n "
- " 'IpSecConfig -p'followed by the database \n"
- " name, and then type ' -?'.\n"
- " e.g.: 'IpSecConfig -p SPD -?'\n"
-
-#string STR_IPSEC_CONFIG_SPD_HELP #language en-US "Explain the %H[options[parametes]%N for %HSPD%N\n"
- "\n"
- "%H[options[parameters]]%N:\n"
- " --local localaddress optional local address\n"
- " --remote remoteaddress required remote address\n"
- " --proto (TCP|UDP|ICMP|...) required IP protocol\n"
- " --local-port port optional local port for tcp/udp protocol\n"
- " --remote-port port optional remote port for tcp/udp protocol\n"
- " --name name optional SPD name\n"
- " --action (Bypass|Discard|Protect) required \n"
- " required IPsec action\n"
- " --mode (Transport|Tunnel) optional IPsec mode, transport by default\n"
- " --ipsec-proto (AH|ESP) optional IPsec protocol, ESP by default\n"
- " --auth-algo (NONE|SHA1HMAC) optional authentication algorithm\n"
- " --encrypt-algo(NONE|DESCBC|3DESCBC)optional encryption algorithm\n"
- " --tunnel-local tunnellocaladdr optional tunnel local address(only for tunnel mode)\n"
- " --tunnel-remote tunnelremoteaddr optional tunnel remote address(only for tunnel mode)\n"
- "\n"
-
-#string STR_IPSEC_CONFIG_SAD_HELP #language en-US "Explain the %H[options[parameters]]%N for %HSAD%N\n"
- "\n"
- "%H[options[parameters]]%N:\n"
- " --spi spi required SPI value\n"
- " --ipsec-proto (AH|ESP) required IPsec protocol\n"
- " --local localaddress optional local address\n"
- " --remote remoteaddress required destination address\n"
- " --auth-algo (NONE|SHA1HMAC) required for AH. authentication algorithm\n"
- " --auth-key key required for AH. key for authentication\n"
- " --encrypt-algo (NONE|DESCBC|3DESCBC) required for ESP. encryption algorithm\n"
- " --encrypt-key key required for ESP. key for encryption\n"
- " --mode (Transport|Tunnel) optional IPsec mode, transport by default\n"
- " --tunnel-dest tunneldestaddr optional tunnel destination address(only for tunnel mode)\n"
- " --tunnel-source tunnelsourceaddr optional tunnel source address(only for tunnel mode)\n"
- "\n"
-
-#string STR_IPSEC_CONFIG_PAD_HELP #language en-US "Explain the %H[options[parameters]]%N for %HPAD%N\n"
- "\n"
- "%H[options[parameters]]%N:\n"
- " --peer-address address required peer address\n"
- " --auth-proto (IKEv1|IKEv2) optional IKE protocol, IKEv1 by\n"
- " default\n"
- " --auth-method (PreSharedSecret|Certificates) required authentication method\n"
- " --auth-data authdata required data for authentication\n"
- "\n"
-
#string STR_IPSEC_MISTAKEN_OPTIONS #language en-US "Mistaken Input. Please refer to %H"IpSecConfig -?"%N for more help information.\n"
#string STR_IPSEC_REDUNDANCY_MANY #language en-US "%s has one redundancy option: %H%s%N\n"
@@ -139,3 +69,65 @@
#string STR_IPSEC_CONFIG_DISABLE_FAILED #language en-US "Error: Disable IPsec failed !\n"
+#string STR_IPSEC_CONFIG_HELP #language en-US ""
+".TH IpSecConfig 0 "Displays or modifies the current IPsec configuration."\r\n"
+".SH NAME\r\n"
+"Displays or modifies the current IPsec configuration.\r\n"
+".SH SYNOPSIS\r\n"
+" \r\n"
+"%HIpSecConfig [-p {SPD|SAD|PAD}] [command] [options[parameters]]\r\n"
+".SH OPTIONS\r\n"
+" \r\n"
+"%H-p (SPD|SAD|PAD)%N required.point to certain policy database.\r\n"
+" \r\n"
+"%Hcommand%N:\r\n"
+" -a [options[parameters]] Add new policy entry.\r\n"
+" -i entryid [options[parameters]] Insert new policy entry before the one\r\n"
+" matched by the entryid.\r\n"
+" It's only supported on SPD policy database.\r\n"
+" -d entryid Delete the policy entry matched by the \r\n"
+" entryid.\r\n"
+" -e entryid [options[parameters]] Edit the policy entry matched by the\r\n"
+" entryid.\r\n"
+" -f Flush the entire policy database.\r\n"
+" -l List all entries for specified database.\r\n"
+" -enable Enable IPsec.\r\n"
+" -disable Disable IPsec.\r\n"
+" -status Show IPsec current status.\r\n"
+" \r\n"
+"%H[options[parameters]]%N for %HSPD%N:\r\n"
+" --local localaddress optional local address\r\n"
+" --remote remoteaddress required remote address\r\n"
+" --proto (TCP|UDP|ICMP|...) required IP protocol\r\n"
+" --local-port port optional local port for tcp/udp protocol\r\n"
+" --remote-port port optional remote port for tcp/udp protocol\r\n"
+" --name name optional SPD name\r\n"
+" --action (Bypass|Discard|Protect) required \r\n"
+" required IPsec action\r\n"
+" --mode (Transport|Tunnel) optional IPsec mode, transport by default\r\n"
+" --ipsec-proto (AH|ESP) optional IPsec protocol, ESP by default\r\n"
+" --auth-algo (NONE|SHA1HMAC) optional authentication algorithm\r\n"
+" --encrypt-algo(NONE|DESCBC|3DESCBC)optional encryption algorithm\r\n"
+" --tunnel-local tunnellocaladdr optional tunnel local address(only for tunnel mode)\r\n"
+" --tunnel-remote tunnelremoteaddr optional tunnel remote address(only for tunnel mode)\r\n"
+" \r\n"
+"%H[options[parameters]]%N for %HSAD%N:\r\n"
+" --spi spi required SPI value\r\n"
+" --ipsec-proto (AH|ESP) required IPsec protocol\r\n"
+" --local localaddress optional local address\r\n"
+" --remote remoteaddress required destination address\r\n"
+" --auth-algo (NONE|SHA1HMAC) required for AH. authentication algorithm\n"
+" --auth-key key required for AH. key for authentication\r\n"
+" --encrypt-algo (NONE|DESCBC|3DESCBC) required for ESP. encryption algorithm\r\n"
+" --encrypt-key key required for ESP. key for encryption\r\n"
+" --mode (Transport|Tunnel) optional IPsec mode, transport by default\r\n"
+" --tunnel-dest tunneldestaddr optional tunnel destination address(only for tunnel mode)\r\n"
+" --tunnel-source tunnelsourceaddr optional tunnel source address(only for tunnel mode)\r\n"
+" \r\n"
+"%H[options[parameters]]%N for %HPAD%N:\r\n"
+" --peer-address address required peer address\r\n"
+" --auth-proto (IKEv1|IKEv2) optional IKE protocol, IKEv1 by\r\n"
+" default\r\n"
+" --auth-method (PreSharedSecret|Certificates) required authentication method\r\n"
+" --auth-data authdata required data for authentication\r\n"
+" \r\n"
diff --git a/NetworkPkg/Application/Ping6/Ping6.c b/NetworkPkg/Application/Ping6/Ping6.c
index 596ee3b007..f1685f710b 100644
--- a/NetworkPkg/Application/Ping6/Ping6.c
+++ b/NetworkPkg/Application/Ping6/Ping6.c
@@ -1,7 +1,7 @@
/** @file
The implementation for Ping6 application.
- Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -19,6 +19,7 @@
#include <Library/MemoryAllocationLib.h>
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiHiiServicesLib.h>
#include <Library/HiiLib.h>
#include <Library/NetLib.h>
@@ -43,10 +44,6 @@ SHELL_PARAM_ITEM Ping6ParamList[] = {
TypeValue
},
{
- L"-?",
- TypeFlag
- },
- {
NULL,
TypeMax
},
@@ -1059,11 +1056,36 @@ InitializePing6 (
CONST CHAR16 *ValueStr;
CONST CHAR16 *ValueStrPtr;
UINTN NonOptionCount;
+ EFI_HII_PACKAGE_LIST_HEADER *PackageList;
//
- // Register our string package with HII and return the handle to it.
+ // Retrieve HII package list from ImageHandle
//
- mHiiHandle = HiiAddPackages (&gEfiCallerIdGuid, ImageHandle, Ping6Strings, NULL);
+ Status = gBS->OpenProtocol (
+ ImageHandle,
+ &gEfiHiiPackageListProtocolGuid,
+ (VOID **) &PackageList,
+ ImageHandle,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ //
+ // Publish HII package list to HII Database.
+ //
+ Status = gHiiDatabase->NewPackageList (
+ gHiiDatabase,
+ PackageList,
+ NULL,
+ &mHiiHandle
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
ASSERT (mHiiHandle != NULL);
Status = ShellCommandLineParseEx (Ping6ParamList, &ParamPackage, NULL, TRUE, FALSE);
@@ -1072,11 +1094,6 @@ InitializePing6 (
goto ON_EXIT;
}
- if (ShellCommandLineGetFlag (ParamPackage, L"-?")) {
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_PING6_HELP), mHiiHandle);
- goto ON_EXIT;
- }
-
SendNumber = 10;
BufferSize = 16;
diff --git a/NetworkPkg/Application/Ping6/Ping6.h b/NetworkPkg/Application/Ping6/Ping6.h
index b152ff18bc..4660b0e3be 100644
--- a/NetworkPkg/Application/Ping6/Ping6.h
+++ b/NetworkPkg/Application/Ping6/Ping6.h
@@ -1,7 +1,7 @@
/** @file
The interface function declaration of shell application Ping6 (Ping for v6 series).
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -22,6 +22,11 @@
#define PING6_ONE_SECOND 10000000
//
+// String token ID of Ping6 command help message text.
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringPing6HelpToken = STRING_TOKEN (STR_PING6_HELP);
+
+//
// A similar amount of time that passes in femtoseconds
// for each increment of TimerValue. It is for NT32 only.
//
diff --git a/NetworkPkg/Application/Ping6/Ping6.inf b/NetworkPkg/Application/Ping6/Ping6.inf
index f8851b98b0..68b5f2d32f 100644
--- a/NetworkPkg/Application/Ping6/Ping6.inf
+++ b/NetworkPkg/Application/Ping6/Ping6.inf
@@ -3,7 +3,7 @@
#
# It is an shell application which is used to Ping the target host with IPv6 stack.
#
-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -25,6 +25,12 @@
MODULE_UNI_FILE = Ping6.uni
#
+#
+# This flag specifies whether HII resource section is generated into PE image.
+#
+ UEFI_HII_RESOURCE_SECTION = TRUE
+
+#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 IPF
@@ -53,6 +59,7 @@
BaseLib
UefiBootServicesTableLib
UefiApplicationEntryPoint
+ UefiHiiServicesLib
BaseMemoryLib
ShellLib
MemoryAllocationLib
@@ -65,6 +72,7 @@
gEfiIp6ProtocolGuid ## CONSUMES
gEfiIp6ServiceBindingProtocolGuid ## CONSUMES
gEfiIp6ConfigProtocolGuid ## CONSUMES
+ gEfiHiiPackageListProtocolGuid ## CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
Ping6Extra.uni
diff --git a/NetworkPkg/Application/Ping6/Ping6Strings.uni b/NetworkPkg/Application/Ping6/Ping6Strings.uni
index c2f003defb..e4ab19fe63 100644
--- a/NetworkPkg/Application/Ping6/Ping6Strings.uni
+++ b/NetworkPkg/Application/Ping6/Ping6Strings.uni
@@ -1,7 +1,7 @@
/** @file
String definitions for the Shell Ping6 application.
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -32,17 +32,22 @@
#string STR_PING6_STAT #language en-US "\n%d packets transmitted, %d received, %d%% packet loss, time %dms\n"
#string STR_PING6_RTT #language en-US "\nRtt(round trip time) min=%dms max=%dms avg=%dms\n"
#string STR_PING6_LINE_HELP #language en-US "Ping a target machine with UEFI IPv6 network stack"
-#string STR_PING6_HELP #language en-US "Ping a target machine with UEFI IPv6 network stack.\n\n"
- "Usage: Ping6 [-l size] [-n count] [-s SourceIp] TargetIp\n"
- " Use ESC and Ctrl+C to interrupt Ping6 process.\n"
- "\n"
- "Options:\n"
- " -l size Send buffer size, in bytes(default=16, min=16, max=32768).\n"
- " -n count Send request count, (default=10, min=1, max=10000).\n"
- " -s SourceIp Source IPv6 address.\n"
- " TargetIp Target IPv6 address.\n"
- " -? Help document.\n"
- "\n"
- "Examples:\n"
- " Ping6 -s 2002::1 2002::2 -l 1000 -n 5\n"
- " Ping6 2002::2 -l 1000\n" \ No newline at end of file
+
+#string STR_PING6_HELP #language en-US ""
+".TH Ping6 0 "Ping a target machine with UEFI IPv6 network stack."\r\n"
+".SH NAME\r\n"
+"Ping a target machine with UEFI IPv6 network stack.\r\n"
+".SH SYNOPSIS\r\n"
+" \r\n"
+"Ping6 [-l size] [-n count] [-s SourceIp] TargetIp\r\n"
+".SH OPTIONS\r\n"
+" \r\n"
+" -l size Send buffer size, in bytes(default=16, min=16, max=32768).\r\n"
+" -n count Send request count, (default=10, min=1, max=10000).\r\n"
+" -s SourceIp Source IPv6 address.\r\n"
+" TargetIp Target IPv6 address.\r\n"
+".SH EXAMPLES\r\n"
+" \r\n"
+"Examples:\r\n"
+" Ping6 -s 2002::1 2002::2 -l 1000 -n 5\r\n"
+" Ping6 2002::2 -l 1000\r\n"
diff --git a/NetworkPkg/Application/VConfig/VConfig.c b/NetworkPkg/Application/VConfig/VConfig.c
index ba1720705c..d00a041f49 100644
--- a/NetworkPkg/Application/VConfig/VConfig.c
+++ b/NetworkPkg/Application/VConfig/VConfig.c
@@ -1,7 +1,7 @@
/** @file
Shell application for VLAN configuration.
- Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -23,8 +23,14 @@
#include <Library/MemoryAllocationLib.h>
#include <Library/HiiLib.h>
#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiHiiServicesLib.h>
#include <Library/NetLib.h>
+//
+// String token ID of VConfig command help message text.
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringVConfigHelpTokenId = STRING_TOKEN (STR_VCONFIG_HELP);
+
#define INVALID_NIC_INDEX 0xffff
#define INVALID_VLAN_ID 0xffff
@@ -608,13 +614,39 @@ VlanConfigMain (
{
LIST_ENTRY *List;
CONST CHAR16 *Str;
+ EFI_HII_PACKAGE_LIST_HEADER *PackageList;
+ EFI_STATUS Status;
mImageHandle = ImageHandle;
+
+ //
+ // Retrieve HII package list from ImageHandle
+ //
+ Status = gBS->OpenProtocol (
+ ImageHandle,
+ &gEfiHiiPackageListProtocolGuid,
+ (VOID **) &PackageList,
+ ImageHandle,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
//
- // Register our string package to HII database.
+ // Publish HII package list to HII Database.
//
- mHiiHandle = HiiAddPackages (&gEfiCallerIdGuid, ImageHandle, VConfigStrings, NULL);
+ Status = gHiiDatabase->NewPackageList (
+ gHiiDatabase,
+ PackageList,
+ NULL,
+ &mHiiHandle
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
if (mHiiHandle == NULL) {
return EFI_SUCCESS;
}
@@ -626,11 +658,6 @@ VlanConfigMain (
goto Exit;
}
- if (ShellCommandLineGetFlag (List, L"-?")) {
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_VCONFIG_HELP), mHiiHandle);
- goto Exit;
- }
-
if (ShellCommandLineGetFlag (List, L"-l")) {
Str = ShellCommandLineGetValue (List, L"-l");
DisplayVlan ((CHAR16 *) Str);
diff --git a/NetworkPkg/Application/VConfig/VConfig.inf b/NetworkPkg/Application/VConfig/VConfig.inf
index 7067e0cd81..771f585a71 100644
--- a/NetworkPkg/Application/VConfig/VConfig.inf
+++ b/NetworkPkg/Application/VConfig/VConfig.inf
@@ -3,7 +3,7 @@
#
# It is shell application which is used to get and set VLAN configuration.
#
-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -25,6 +25,12 @@
MODULE_UNI_FILE = VConfig.uni
#
+#
+# This flag specifies whether HII resource section is generated into PE image.
+#
+ UEFI_HII_RESOURCE_SECTION = TRUE
+
+#
# VALID_ARCHITECTURES = IA32 X64 IPF
#
@@ -40,6 +46,7 @@
[LibraryClasses]
UefiApplicationEntryPoint
UefiBootServicesTableLib
+ UefiHiiServicesLib
UefiLib
ShellLib
NetLib
@@ -47,7 +54,8 @@
HiiLib
[Protocols]
- gEfiVlanConfigProtocolGuid ## CONSUMES
+ gEfiVlanConfigProtocolGuid ## CONSUMES
+ gEfiHiiPackageListProtocolGuid ## CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
VConfigExtra.uni
diff --git a/NetworkPkg/Application/VConfig/VConfigStrings.uni b/NetworkPkg/Application/VConfig/VConfigStrings.uni
index 641e26e0f9..1bb66ba27e 100644
--- a/NetworkPkg/Application/VConfig/VConfigStrings.uni
+++ b/NetworkPkg/Application/VConfig/VConfigStrings.uni
@@ -1,7 +1,7 @@
/** @file
String definitions for VLAN configuration Shell application.
- Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -32,24 +32,32 @@
#string STR_VCONFIG_SET_SUCCESS #language en-US "VLAN device added.\n"
#string STR_VCONFIG_REMOVE_SUCCESS #language en-US "VLAN device removed.\n"
#string STR_VCONFIG_NO_ARG #language en-US "Invalid argument, try "-?" for help.\n"
-#string STR_VCONFIG_HELP #language en-US "Display or modify VLAN configuration for network interface.\n\n"
- "VCONFIG [-?] [-l [IfName]] [-a IfName VlanId [Priority]] [-d IfName.VlanId]\n"
- "\n"
- " -l Display VLAN configuration for all or specified interface.\n"
- " -a Add a VLAN device for the network interface.\n"
- " -d Delete a VLAN device.\n"
- " IfName Name of network interface, e.g. eth0, eth1.\n"
- " VlanId Unique VLAN identifier (0~4094).\n"
- " Priority 802.1Q priority level (0~7), default 0.\n"
- "\n"
- "Examples:\n"
- " * To display VLAN configuration:\n"
- " fs0:\> vconfig -l\n"
- " fs0:\> vconfig -l eth0\n"
- "\n"
- " * To add VLAN device:\n"
- " fs0:\> vconfig -a eth0 1000\n"
- " fs0:\> vconfig -a eth0 2000 7\n"
- "\n"
- " * To delete VLAN device:\n"
- " fs0:\> vconfig -d eth0.1000\n"
+
+#string STR_VCONFIG_HELP #language en-US ""
+".TH VConfig 0 "Display or modify VLAN configuration for network interface."\r\n"
+".SH NAME\r\n"
+"Display or modify VLAN configuration for network interface.\r\n"
+".SH SYNOPSIS\r\n"
+" \r\n"
+"VCONFIG [-?] [-l [IfName]] [-a IfName VlanId [Priority]] [-d IfName.VlanId]\r\n"
+".SH OPTIONS\r\n"
+" \r\n"
+" -l Display VLAN configuration for all or specified interface.\r\n"
+" -a Add a VLAN device for the network interface.\r\n"
+" -d Delete a VLAN device.\r\n"
+" IfName Name of network interface, e.g. eth0, eth1.\r\n"
+" VlanId Unique VLAN identifier (0~4094).\r\n"
+" Priority 802.1Q priority level (0~7), default 0.\r\n"
+".SH EXAMPLES\r\n"
+" \r\n"
+"Examples:\r\n"
+" * To display VLAN configuration:\r\n"
+" fs0:\> vconfig -l\r\n"
+" fs0:\> vconfig -l eth0\r\n"
+"\r\n"
+" * To add VLAN device:\r\n"
+" fs0:\> vconfig -a eth0 1000\r\n"
+" fs0:\> vconfig -a eth0 2000 7\r\n"
+"\r\n"
+" * To delete VLAN device:\r\n"
+" fs0:\> vconfig -d eth0.1000\r\n"