[edk2-devel] [PATCH V3 1/2] MdePkg/Include: EFI Redfish Discover protocol

Abner Chang abner.chang at hpe.com
Wed Mar 24 05:34:39 UTC 2021


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 at hpe.com>

Cc: Michael D Kinney <michael.d.kinney at intel.com>
Cc: Liming Gao <gaoliming at byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu at intel.com>
Cc: Nickle Wang <nickle.wang at hpe.com>
Cc: Peter O'Hanley <peter.ohanley at hpe.com>
---
 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



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#73199): https://edk2.groups.io/g/devel/message/73199
Mute This Topic: https://groups.io/mt/81570743/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list