EDK2 port of DMTF libredfish project. We clone the necessary files from open source project libredfish (https://github.com/DMTF/ libredfish) tag v1.0.0 and revise it to incorporate with edk2 firmware code base. The reason of cloning the necessary files instead of using extern submodule of libredfish project: libredfish as a C library which is executed under Windows and Linux. It could be binded with other programming languages such as java and python. The library uses curl library as the communication service with Redfish, which is not easy to be abstracted and replaced with EFI specific protocols (e.g. EFI_REST_EX_PROTOCOL or payload encode/decode library) and EFI data types. We had the conversation with DMTF community and they think edk2 is a firmware solution but not the programming language, therefore they rejected to have edk2 as a binding to libredfish. According to above, we decide to clone the necessary files from libredfish modify it to incorporate with edk2. Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com> Signed-off-by: Ting Ye <ting.ye@intel.com> Signed-off-by: Siyuan Fu <siyuan.fu@intel.com> Signed-off-by: Fan Wang <fan.wang@intel.com> Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
104 lines
4.0 KiB
Plaintext
104 lines
4.0 KiB
Plaintext
## @file
|
|
# Redfish Package
|
|
#
|
|
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
|
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
##
|
|
|
|
[Defines]
|
|
DEC_SPECIFICATION = 0x0001001b
|
|
PACKAGE_NAME = RedfishPkg
|
|
PACKAGE_GUID = c432b76e-5232-11e7-9010-005056c00008
|
|
PACKAGE_VERSION = 1.0
|
|
|
|
[Includes]
|
|
Include
|
|
|
|
[Includes.Common.Private]
|
|
PrivateInclude # Private header files for C RTL.
|
|
PrivateInclude/Crt # Private header files for C RTL.
|
|
Library/JsonLib # Private header files for jansson
|
|
# configuration files.
|
|
# - jansson_config.h
|
|
# - jansson_private_config.h
|
|
# jansson.h refers to above two configuration
|
|
# files for building platform jansson library.
|
|
Library/JsonLib/jansson/src # For referring to jannson.h
|
|
|
|
[LibraryClasses]
|
|
## @libraryclass Platform Redfish Host Interface Library
|
|
# Platform implementation-specific Redfish Host Interface.
|
|
RedfishPlatformHostInterfaceLib|Include/Library/RedfishHostInterfaceLib.h
|
|
|
|
## @libraryclass This library provides UCS2 to UTF8 manipulation
|
|
# functions.
|
|
#
|
|
Ucs2Utf8Lib|Include/Library/BaseUcs2Utf8Lib.h
|
|
|
|
## @libraryclass Platform Redfish Credential Library
|
|
# Platform implementation-specific Redfish Credential Interface.
|
|
RedfishPlatformCredentialLib|Include/Library/RedfishCredentialLib.h
|
|
|
|
## @libraryclass The helper routines to access REST EX service.
|
|
# This library is only intended to be used by UEFI network stack modules.
|
|
RestExLib|Include/Library/RestExLib.h
|
|
|
|
## @libraryclass Provides the library functions based on third party
|
|
# jansson library to manipulate JSON data structure.
|
|
#
|
|
JsonLib|Include/Library/JsonLib.h
|
|
|
|
## @libraryclass Provides the library functions to encode/decode
|
|
# Redfish packet.
|
|
#
|
|
RedfishContentCodingLib|Include/Library/RedfishContentCodingLib.h
|
|
|
|
[LibraryClasses.Common.Private]
|
|
## @libraryclass Provides the private C runtime library functions.
|
|
# CRT library is currently used by edk2 JsonLib (open source
|
|
# jansson project) and edk2 RedfishLib (libredfish open source
|
|
# project).
|
|
RedfishCrtLib|PrivateInclude/Library/RedfishCrtLib.h
|
|
|
|
## @libraryclass Redfish Helper Library
|
|
# Library provides Redfish helper functions.
|
|
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 } }
|
|
|
|
## Include/Protocol/Edk2RedfishConfigHandler.h
|
|
gEdkIIRedfishConfigHandlerProtocolGuid = { 0xbc0fe6bb, 0x2cc9, 0x463e, { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } }
|
|
|
|
[Guids]
|
|
gEfiRedfishPkgTokenSpaceGuid = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
|
|
|
|
[PcdsFixedAtBuild, PcdsPatchableInModule]
|
|
#
|
|
# This PCD is the UEFI device path which is used as the Redfish host interface.
|
|
#
|
|
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath|{0x0}|REST_EX_SERVICE_DEVICE_PATH_DATA|0x00001000 {
|
|
<HeaderFiles>
|
|
Pcd/RestExServiceDevicePath.h
|
|
<Packages>
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
RedfishPkg/RedfishPkg.dec
|
|
}
|
|
#
|
|
# This PCD indicates the EFI REST EX access mode to Redfish service.
|
|
# Default is set to out of band access.
|
|
#
|
|
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand|FALSE|BOOLEAN|0x00001001
|
|
#
|
|
# This PCD indicates the access mode EFI Discover protocol uses to look for the proper EFI REST EX
|
|
# protocol instance.
|
|
#
|
|
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDiscoverAccessModeInBand|FALSE|BOOLEAN|0x00001002
|