Introduce a new repo "edk2-redfish-client" under Tianocore Github


Chang, Abner
 

[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.

* Redfish C to JSON convertor (https://github.com/DMTF/Redfish-Schema-C-Struct-Generator)

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



* Redfish Feature drivers generator (not upstream yet, plan to upstream that script under edk2-redfish-client.
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


Chang, Abner
 

[AMD Official Use Only - General]

Hi Mike and Ray,
Do you think we should bring this topic to Tianocore design meeting? Because this is also the matter of Tianocore GitHub organization, who should be also invited to the discussion? I think we have someone who manages tianocore GitHub, right?

Thanks
Abner

-----Original Message-----
From: rfc@edk2.groups.io <rfc@edk2.groups.io> On Behalf Of Chang, Abner
via groups.io
Sent: Sunday, March 26, 2023 11:34 PM
To: rfc@edk2.groups.io
Cc: devel@edk2.groups.io; michael.d.kinney@...; Liming Gao
<gaoliming@...>
Subject: [edk2-rfc] Introduce a new repo "edk2-redfish-client" under
Tianocore Github

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


[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.

* Redfish C to JSON convertor (https://github.com/DMTF/Redfish-
Schema-C-Struct-Generator)

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



* Redfish Feature drivers generator (not upstream yet, plan to upstream
that script under edk2-redfish-client.
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







Chang, Abner
 

[AMD Official Use Only - General]

Hi all,
Since there is no feedback received, I assume there is no one against to this proposal.

@michael.d.kinney@...
Hi Mike, I am requesting to create "edk2-redfich-client" repo under Tianocore, below is the maintainer list who are responsible for maintaining this repo and need write privilege as well.
- Abner Chang abner.chang@... [changab]
- Nickle Wang nicklew@... [nicklela]
- Igor Kulchytskyy igork@... [igorkulchytskyy]

The patch review process would be the same as edk2, and adding prefix [edk2-redfish-client] specifically for the patches against edk2-redfosh-client repo.
We will also add above information in the readme file under "edk2-redfich-client" repo.

Thank you.
Abner

-----Original Message-----
From: rfc@edk2.groups.io <rfc@edk2.groups.io> On Behalf Of Chang, Abner
via groups.io
Sent: Sunday, March 26, 2023 11:34 PM
To: rfc@edk2.groups.io
Cc: devel@edk2.groups.io; michael.d.kinney@...; Liming Gao
<gaoliming@...>
Subject: [edk2-rfc] Introduce a new repo "edk2-redfish-client" under
Tianocore Github

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


[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.

* Redfish C to JSON convertor (https://github.com/DMTF/Redfish-
Schema-C-Struct-Generator)

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



* Redfish Feature drivers generator (not upstream yet, plan to upstream
that script under edk2-redfish-client.
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