[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