* [PATCH v4 RESEND 0/2] Support EFI Redfish protocols
@ 2021-03-25 10:40 Abner Chang
2021-03-25 10:40 ` [PATCH v4 RESEND 1/2] MdePkg/Include: EFI Redfish Discover protocol Abner Chang
2021-03-25 10:40 ` [PATCH v4 RESEND 2/2] ShellPkg/UefiHandleParsingLib: Support EFI Redfish protocols Abner Chang
0 siblings, 2 replies; 3+ messages in thread
From: Abner Chang @ 2021-03-25 10:40 UTC (permalink / raw)
To: devel
Cc: Michael D Kinney, Liming Gao, Zhiguang Liu, Ray Ni, Zhichao Gao,
Nickle Wang, Peter O'Hanley
In v4: In UefiHandleParsingLib.c, move the changes for UEFI 2.8 to
below UEFI 2.7 section
In v3: Correct the mismatched definitions in both
RedfishDiscover.h and UEFI spec 2.8 (Refer to v2.9).
In v2: Address comments given by Liming on patch 1/2.
Add handle parsing for EFI Redfish Discover protocol and
EFI RestEx protocol.
This change also moves the GUID definition of EFI Redfish Discover
protocol to under MdePkg. With this we don't have dependency of
RedfishPkg in ShellPkg.
Signed-off-by: Abner Chang <abner.chang@hpe.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Nickle Wang <nickle.wang@hpe.com>
Cc: Peter O'Hanley <peter.ohanley@hpe.com>
Abner Chang (2):
MdePkg/Include: EFI Redfish Discover protocol
ShellPkg/UefiHandleParsingLib: Support EFI Redfish protocols
MdePkg/MdePkg.dec | 5 +-
RedfishPkg/RedfishPkg.dec | 3 -
.../UefiHandleParsingLib.inf | 4 +-
.../Include/Protocol/RedfishDiscover.h | 72 +++++++++----------
.../UefiHandleParsingLib.c | 8 ++-
.../UefiHandleParsingLib.uni | 4 +-
6 files changed, 50 insertions(+), 46 deletions(-)
rename {RedfishPkg => MdePkg}/Include/Protocol/RedfishDiscover.h (79%)
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v4 RESEND 1/2] MdePkg/Include: EFI Redfish Discover protocol
2021-03-25 10:40 [PATCH v4 RESEND 0/2] Support EFI Redfish protocols Abner Chang
@ 2021-03-25 10:40 ` Abner Chang
2021-03-25 10:40 ` [PATCH v4 RESEND 2/2] ShellPkg/UefiHandleParsingLib: Support EFI Redfish protocols Abner Chang
1 sibling, 0 replies; 3+ messages in thread
From: Abner Chang @ 2021-03-25 10:40 UTC (permalink / raw)
To: devel
Cc: Michael D Kinney, Liming Gao, Zhiguang Liu, Nickle Wang,
Peter O'Hanley
Move GUID definition of EFI Redfish Discover protocol
to under MdePkg. With this we don't have dependency of
RedfishPkg in ShellPkg.
Signed-off-by: Abner Chang <abner.chang@hpe.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Nickle Wang <nickle.wang@hpe.com>
Cc: Peter O'Hanley <peter.ohanley@hpe.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
MdePkg/MdePkg.dec | 5 +-
RedfishPkg/RedfishPkg.dec | 3 -
.../Include/Protocol/RedfishDiscover.h | 72 +++++++++----------
3 files changed, 37 insertions(+), 43 deletions(-)
rename {RedfishPkg => MdePkg}/Include/Protocol/RedfishDiscover.h (79%)
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index 1d2637acc2..e667d44db5 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -6,7 +6,7 @@
#
# Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
-# (C) Copyright 2016 - 2020 Hewlett Packard Enterprise Development LP<BR>
+# (C) Copyright 2016 - 2021 Hewlett Packard Enterprise Development LP<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -1863,6 +1863,9 @@
## Include/Protocol/RestJsonStructure.h
gEfiRestJsonStructureProtocolGuid = { 0xa9a048f6, 0x48a0, 0x4714, {0xb7, 0xda, 0xa9, 0xad,0x87, 0xd4, 0xda, 0xc9 }}
+ ## Include/Protocol/RedfishDiscover.h
+ gEfiRedfishDiscoverProtocolGuid = { 0x5db12509, 0x4550, 0x4347, { 0x96, 0xb3, 0x73, 0xc0, 0xff, 0x6e, 0x86, 0x9f }}
+
#
# Protocols defined in Shell2.0
#
diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec
index b3e25268a0..846c19fd5e 100644
--- a/RedfishPkg/RedfishPkg.dec
+++ b/RedfishPkg/RedfishPkg.dec
@@ -67,9 +67,6 @@
RedfishLib|PrivateInclude/Library/RedfishLib.h
[Protocols]
- ## Include/Protocol/RedfishDiscover.h
- gEfiRedfishDiscoverProtocolGuid = { 0x5db12509, 0x4550, 0x4347, { 0x96, 0xb3, 0x73, 0xc0, 0xff, 0x6e, 0x86, 0x9f }}
-
## Include/Protocol/EdkIIRedfishCredential.h
gEdkIIRedfishCredentialProtocolGuid = { 0x8804377, 0xaf7a, 0x4496, { 0x8a, 0x7b, 0x17, 0x59, 0x0, 0xe9, 0xab, 0x46 } }
diff --git a/RedfishPkg/Include/Protocol/RedfishDiscover.h b/MdePkg/Include/Protocol/RedfishDiscover.h
similarity index 79%
rename from RedfishPkg/Include/Protocol/RedfishDiscover.h
rename to MdePkg/Include/Protocol/RedfishDiscover.h
index 4c91605c4e..8dbb70b082 100644
--- a/RedfishPkg/Include/Protocol/RedfishDiscover.h
+++ b/MdePkg/Include/Protocol/RedfishDiscover.h
@@ -1,20 +1,19 @@
/** @file
This file defines the EFI Redfish Discover Protocol interface.
- (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
+ (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
+ @par Revision Reference:
+ - Some corrections and revises are added to UEFI Specification 2.9.
+ - This Protocol is introduced in UEFI Specification 2.8.
+
**/
#ifndef EFI_REDFISH_DISCOVER_PROTOCOL_H_
#define EFI_REDFISH_DISCOVER_PROTOCOL_H_
-#include <IndustryStandard/Http11.h>
-#include <Protocol/Http.h>
-#include <Protocol/RestEx.h>
-#include <Uefi.h>
-
//
// GUID definitions
//
@@ -40,24 +39,21 @@ typedef UINT32 EFI_REDFISH_DISCOVER_FLAG;
///< 3 to 15. The corresponding duration is 8 to 2^15 seconds.
///< Duration is only valid when EFI_REDFISH_DISCOVER_KEEP_ALIVE
///< is set to 1.
-#define EFI_REDFISH_DISCOVER_DURATION_BIT_POS 8
-
typedef struct _EFI_REDFISH_DISCOVER_PROTOCOL EFI_REDFISH_DISCOVER_PROTOCOL;
-typedef struct _EFI_REDFISH_DISCOVERED_INFORMATION EFI_REDFISH_DISCOVERED_INFORMATION;
-
-typedef struct _EFI_REDFISH_DISCOVERED_INFORMATION {
- EFI_HANDLE RedfishRestExHandle; ///< REST EX EFI handle associated with this Redfish service.
- BOOLEAN IsUdp6; ///< Indicates it's IP versino 6.
- EFI_IP_ADDRESS RedfishHostIpAddress; ///< IP address of Redfish service.
- UINTN RedfishVersion; ///< Redfish service version.
- CHAR16 *Location; ///< Redfish service location.
- CHAR16 *Uuid; ///< Redfish service UUID.
- CHAR16 *Os; ///< Redfish service OS.
- CHAR16 *OSVersion; ///< Redfish service OS version.
- CHAR16 *Product; ///< Redfish service product name.
- CHAR16 *ProductVer; ///< Redfish service product version.
- BOOLEAN UseHttps; ///< Using HTTPS.
-};
+
+typedef struct {
+ EFI_HANDLE RedfishRestExHandle; ///< REST EX EFI handle associated with this Redfish service.
+ BOOLEAN IsUdp6; ///< Indicates it's IP versino 6.
+ EFI_IP_ADDRESS RedfishHostIpAddress; ///< IP address of Redfish service.
+ UINTN RedfishVersion; ///< Redfish service version.
+ CHAR16 *Location; ///< Redfish service location.
+ CHAR16 *Uuid; ///< Redfish service UUID.
+ CHAR16 *Os; ///< Redfish service OS.
+ CHAR16 *OsVersion; ///< Redfish service OS version.
+ CHAR16 *Product; ///< Redfish service product name.
+ CHAR16 *ProductVer; ///< Redfish service product version.
+ BOOLEAN UseHttps; ///< Using HTTPS.
+} EFI_REDFISH_DISCOVERED_INFORMATION;
typedef struct {
EFI_STATUS Status; ///< Status of Redfish service discovery.
@@ -75,7 +71,7 @@ typedef struct {
EFI_IP_ADDRESS SubnetId; ///< Subnet ID.
UINT8 SubnetPrefixLength; ///< Subnet prefix-length for IPv4 and IPv6.
UINT16 VlanId; ///< VLAN ID.
-} EFI_REDFISH_DISCOVER_NETWORK_INSTANCE;
+} EFI_REDFISH_DISCOVER_NETWORK_INTERFACE;
typedef struct {
UINT32 Signature; ///< Token signature.
@@ -112,10 +108,10 @@ typedef struct {
typedef
EFI_STATUS
(EFIAPI *EFI_REDFISH_DISCOVER_NETWORK_LIST)(
- IN EFI_REDFISH_DISCOVER_PROTOCOL *This,
- IN EFI_HANDLE ImageHandle,
- OUT UINTN *NumberOfNetworkInterfaces,
- OUT EFI_REDFISH_DISCOVER_NETWORK_INSTANCE **NetworkInterfaces
+ IN EFI_REDFISH_DISCOVER_PROTOCOL *This,
+ IN EFI_HANDLE ImageHandle,
+ OUT UINTN *NumberOfNetworkInterfaces,
+ OUT EFI_REDFISH_DISCOVER_NETWORK_INTERFACE **NetworkInterfaces
);
/**
@@ -147,7 +143,7 @@ EFI_STATUS
(EFIAPI *EFI_REDFISH_DISCOVER_ACQUIRE_SERVICE)(
IN EFI_REDFISH_DISCOVER_PROTOCOL *This,
IN EFI_HANDLE ImageHandle,
- IN EFI_REDFISH_DISCOVER_NETWORK_INSTANCE *TargetNetworkInterface,
+ IN EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *TargetNetworkInterface OPTIONAL,
IN EFI_REDFISH_DISCOVER_FLAG Flags,
IN EFI_REDFISH_DISCOVERED_TOKEN *Token
);
@@ -155,8 +151,8 @@ EFI_STATUS
/**
This function aborts Redfish service discovery on the given network interface.
- @param[in] This EFI_REDFISH_DISCOVER_PROTOCOL instance.
- @param[in] TargetNetworkInterface Target NIC to do the discovery.
+ @param[in] This EFI_REDFISH_DISCOVER_PROTOCOL instance.
+ @param[in] TargetNetworkInterface Target NIC to do the discovery.
@retval EFI_SUCCESS REST EX instance of discovered Redfish services are returned.
@retval Others Fail to abort Redfish service discovery.
@@ -165,15 +161,15 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_REDFISH_DISCOVER_ABORT_ACQUIRE)(
- IN EFI_REDFISH_DISCOVER_PROTOCOL *This,
- IN EFI_REDFISH_DISCOVER_NETWORK_INSTANCE *TargetNetworkInterface OPTIONAL
+ IN EFI_REDFISH_DISCOVER_PROTOCOL *This,
+ IN EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *TargetNetworkInterface OPTIONAL
);
/**
This function releases Redfish services found by RedfishServiceAcquire().
@param[in] This EFI_REDFISH_DISCOVER_PROTOCOL instance.
- @param[in] InstanceList The Redfish service to release.
+ @param[in] List The Redfish service to release.
@retval EFI_SUCCESS REST EX instances of discovered Redfish are released.
@retval Others Fail to remove the entry
@@ -183,17 +179,15 @@ typedef
EFI_STATUS
(EFIAPI *EFI_REDFISH_DISCOVER_RELEASE_SERVICE)(
IN EFI_REDFISH_DISCOVER_PROTOCOL *This,
- IN EFI_REDFISH_DISCOVERED_LIST *InstanceList
+ IN EFI_REDFISH_DISCOVERED_LIST *List
);
-typedef struct _EFI_REDFISH_DISCOVER_PROTOCOL {
+struct _EFI_REDFISH_DISCOVER_PROTOCOL {
EFI_REDFISH_DISCOVER_NETWORK_LIST GetNetworkInterfaceList;
EFI_REDFISH_DISCOVER_ACQUIRE_SERVICE AcquireRedfishService;
EFI_REDFISH_DISCOVER_ABORT_ACQUIRE AbortAcquireRedfishService;
EFI_REDFISH_DISCOVER_RELEASE_SERVICE ReleaseRedfishService;
-} EFI_REDFISH_DISCOVER_PROTOCOL;
+};
-extern EFI_GUID gEfiRestExProtocolGuid;
-extern EFI_GUID gEfiRestExServiceBindingProtocolGuid;
extern EFI_GUID gEfiRedfishDiscoverProtocolGuid;
#endif
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v4 RESEND 2/2] ShellPkg/UefiHandleParsingLib: Support EFI Redfish protocols
2021-03-25 10:40 [PATCH v4 RESEND 0/2] Support EFI Redfish protocols Abner Chang
2021-03-25 10:40 ` [PATCH v4 RESEND 1/2] MdePkg/Include: EFI Redfish Discover protocol Abner Chang
@ 2021-03-25 10:40 ` Abner Chang
1 sibling, 0 replies; 3+ messages in thread
From: Abner Chang @ 2021-03-25 10:40 UTC (permalink / raw)
To: devel; +Cc: Ray Ni, Zhichao Gao, Nickle Wang, Peter O'Hanley, Liming Gao
Add handle parsing for EFI Redfish Discover protocol.
Add handle parsing for EFI RestEx protocol.
Signed-off-by: Abner Chang <abner.chang@hpe.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Nickle Wang <nickle.wang@hpe.com>
Cc: Peter O'Hanley <peter.ohanley@hpe.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
---
.../Library/UefiHandleParsingLib/UefiHandleParsingLib.inf | 4 +++-
.../Library/UefiHandleParsingLib/UefiHandleParsingLib.c | 8 +++++++-
.../Library/UefiHandleParsingLib/UefiHandleParsingLib.uni | 4 +++-
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
index 93b69cd8e9..446cd8d609 100644
--- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
+++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
@@ -2,7 +2,7 @@
# Provides interface to advanced shell functionality for parsing both handle and protocol database.
# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved. <BR>
# (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
-# (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
+# (C) Copyright 2015-2020 Hewlett Packard Enterprise Development LP<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -269,6 +269,8 @@
gEfiHttpProtocolGuid ## UNDEFINED
gEfiHttpUtilitiesProtocolGuid ## UNDEFINED
gEfiRestProtocolGuid ## UNDEFINED
+ gEfiRestExProtocolGuid ## UNDEFINED
+ gEfiRedfishDiscoverProtocolGuid ## UNDEFINED
gEfiMmEndOfDxeProtocolGuid ## UNDEFINED
gEfiMmIoTrapDispatchProtocolGuid ## UNDEFINED
gEfiMmPowerButtonDispatchProtocolGuid ## UNDEFINED
diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
index 500a95a89a..e34cefd7b4 100644
--- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
+++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
@@ -3,7 +3,7 @@
Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
- (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
+ (C) Copyright 2015-2020 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -2250,6 +2250,12 @@ STATIC CONST GUID_INFO_BLOCK mGuidStringList[] = {
{STRING_TOKEN(STR_PARTITION_INFO), &gEfiPartitionInfoProtocolGuid, PartitionInfoProtocolDumpInformation},
{STRING_TOKEN(STR_HII_POPUP), &gEfiHiiPopupProtocolGuid, NULL},
+//
+// UEFI 2.8
+//
+ {STRING_TOKEN(STR_REST_EX), &gEfiRestExProtocolGuid, NULL},
+ {STRING_TOKEN(STR_REDFISH_DISCOVER), &gEfiRedfishDiscoverProtocolGuid, NULL},
+
//
// PI Spec ones
//
diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
index 9c8028d0d5..69fcbdfe0e 100644
--- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
+++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
@@ -2,7 +2,7 @@
//
// Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved. <BR>
// (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
-// (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
+// (C) Copyright 2015-2020 Hewlett Packard Enterprise Development LP<BR>
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Module Name:
@@ -308,6 +308,8 @@
#string STR_NET_HTTP #language en-US "Http"
#string STR_NET_HTTP_U #language en-US "HttpUtilities"
#string STR_REST #language en-US "Rest"
+#string STR_REST_EX #language en-US "RestEx"
+#string STR_REDFISH_DISCOVER #language en-US "RedfishDiscover"
#string STR_MM_EOD #language en-US "MmEndOfDxe"
#string STR_MM_ITD #language en-US "MmIoTrapDispatch"
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-03-25 11:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-25 10:40 [PATCH v4 RESEND 0/2] Support EFI Redfish protocols Abner Chang
2021-03-25 10:40 ` [PATCH v4 RESEND 1/2] MdePkg/Include: EFI Redfish Discover protocol Abner Chang
2021-03-25 10:40 ` [PATCH v4 RESEND 2/2] ShellPkg/UefiHandleParsingLib: Support EFI Redfish protocols Abner Chang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox