## @file
# Redfish Package
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
# Copyright (c) 2023, American Megatrends International LLC.
# Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# 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/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
## @libraryclass Redfish Debug Library
# Library provides Redfish debug functions.
RedfishDebugLib|Include/Library/RedfishDebugLib.h
## @libraryclass Provides the library functions to parse IFR binary data.
#
HiiUtilityLib|Include/Library/HiiUtilityLib.h
## @libraryclass Provides the library functions to access Redfish Platform
# Config protocol.
#
RedfishPlatformConfigLib|Include/Library/RedfishPlatformConfigLib.h
## @libraryclass Provides the library functions to access Redfish HTTP
# protocol.
#
RedfishHttpLib|Include/Library/RedfishHttpLib.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|Include/Library/RedfishCrtLib.h
## @libraryclass Redfish Helper Library
# Library provides Redfish helper functions.
RedfishLib|Include/Library/RedfishLib.h
[Protocols]
## 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 } }
## Include/Protocol/EdkIIRedfishPlatformConfig.h
gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4, 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }
# Redfish Host Interface ready notification protocol
gEdkIIRedfishHostInterfaceReadyProtocolGuid = { 0xC3F6D062, 0x3D38, 0x4EA4, { 0x92, 0xB1, 0xE8, 0xF8, 0x02, 0x27, 0x63, 0xDF } }
## Include/Protocol/EdkIIRedfishHttpProtocol.h
gEdkIIRedfishHttpProtocolGuid = { 0x58a0f47e, 0xf45f, 0x4d44, { 0x89, 0x5b, 0x2a, 0xfe, 0xb0, 0x80, 0x15, 0xe2 } }
[Guids]
gEfiRedfishPkgTokenSpaceGuid = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
# Redfish variable guid
gEfiRedfishVariableGuid = { 0x85ef8dd3, 0xe606, 0x4b89, { 0x8b, 0xbd, 0x93, 0xbf, 0x5c, 0xbe, 0x1c, 0x18 } }
[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 {
Pcd/RestExServiceDevicePath.h
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
#
# This PCD indicates if the EFI REST EX sends chunk request to Redfish service.
# Default is set to non chunk mode.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExChunkRequestMode|FALSE|BOOLEAN|0x00001003
#
# This PCD indicates if the EFI REST EX adds Expect header to the POST, PATCH, PUT requests to Redfish service.
# Default is set to not add.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExAddingExpect|FALSE|BOOLEAN|0x00001004
#
# Use PCD to declare the Redfish host nmae becasue there is no
# specification for that.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishHostName|"Redfish service"|VOID*|0x00001005
#
# Use PCD to declare the Redfish service UUID becasue there is no
# specification for that.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceUuid|L"00000000-0000-0000-0000-000000000000"|VOID*|0x00001006
# Use PCD to declare the Redfish service port, default set to port 443.
# Platform can overide this value in platform DSC file.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServicePort|443|UINT16|0x00001007
#
# This PCD indicates that if BMC bootstrap credential service will be disabled by BIOS or not.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDisableBootstrapCredentialService|FALSE|BOOLEAN|0x00001008
#
# The EFI_REST_EX_HTTP_CONFIG_DATA.SendReceiveTimeout value that RedfishDiscoverDxe driver
# set to EFI_REST_EX_PROTOCOL.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishSendReceiveTimeout|5000|UINT32|0x00001009
#
# This PCD string is introduced for platform developer to set the encoding method supported by BMC Redfish.
# Currently only "None" and "gzip" are supported.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceContentEncoding|"None"|VOID*|0x0000100A
#
# Use below PCDs to control Redfhs HTTP protocol.
#
## The number of retry when HTTP GET request failed. If the value is 0, there is no retry enabled.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpGetRetry|0|UINT16|0x0000100B
## The number of retry when HTTP PUT request failed. If the value is 0, there is no retry enabled.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpPutRetry|0|UINT16|0x0000100C
## The number of retry when HTTP PATCH request failed. If the value is 0, there is no retry enabled.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpPatchRetry|0|UINT16|0x0000100D
## The number of retry when HTTP POST request failed. If the value is 0, there is no retry enabled.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpPostRetry|0|UINT16|0x0000100E
## The number of retry when HTTP DELETE request failed. If the value is 0, there is no retry enabled.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpDeleteRetry|0|UINT16|0x0000100F
## The number of second to wait before driver retry HTTP request. If the value is 0, there is no wait before next retry.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpRetryWaitInSecond|1|UINT16|0x00001010
## This is used to disable Redfish HTTP cache function and every request will be sent to Redfish service.
gEfiRedfishPkgTokenSpaceGuid.PcdHttpCacheDisabled|FALSE|BOOLEAN|0x00001011