[AMD Official Use Only - General]


Hi edk2 community,

We are proposing to introduce a new repository under Tianocore Github which is edk2-redfish-client. The plan is to have RedfishClientPkg, Redfish simulator and python script that generates edk2 Redfish client drivers under edk2-redfish-client repo.

edk2-redfish-client, refer to https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg, which is a PoC project (already proved) that provides the mechanism to map HII options (which has the corresponding “x-uefi-redfish-$NAMESPACE“ language in UNI file) to Redfish properties defined in Redfish schema data model.

Here is the readme for edk2-redfish-client https://github.com/tianocore/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/Readme.md that delineates the mechanism of RedfishClientPkg. In order to provide a simple solution for edk2 developers, auto-generated source files those are produced by python script is required to be built with edk2 firmware to connect HII options with Redfish properties. There are two python scripts that generate the necessary edk2 drivers and libraries.

This generates edk2 driver modules that compliant with UEFI spec 31.2 EFI Redfish JSON Structure Converter

Auto-generated Source files: https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg/ConverterLib and https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg/Converter

 

This generates edk2 drivers that act as intermediary layer between HII and Redfish property and delivers Redfish payload through driver stack provided by RedfishPkg under edk2 repo.

Files: https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg/Features

 

You can see that from Redfish schemas (https://www.dmtf.org/sites/default/files/standards/documents/DSP8010_2022.3_0.zip), each Redfish schema introduces more than one version as time goes on. How many Redfish schemas and which version of Redfish schema are used on system is at discretion of OEM. Currently there are 3,767 schema files, those schemas propagate ten times of schema files for above auto-generated files. Of course, platform firmware is not able to pull in all of those files. Platform firmware only picks up the corresponding auto-generated files for the Redfish schemas and particular version those are supported on their system. There is an ongoing edk2 build tool task that supports to automatically pick up the auto-generated files according to “x-uefi-Redfish-“ language used in HII form set. We currently had implementation in https://github.com/tianocore/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/RedfishJsonStructureDxe.dsc.inc, but edk2 build tool work is not ready yet. However, edk2 platform developer can still pull in the necessary edk2 Redfish client modules to platform metafiles manually.

 

According to above scenario, we are not going to accommodate those files under edk2 or edk2-platform repos. Having a separate repo under Tianocore is a way for edk2 developer to clone the repo when their project requires Redfish edk2 firmware support. Maintainers of this repo is also responsible to update the files when every time Redfish WG releases the new version of Redfish schema.

Your input is welcome.

Thanks

Abner