Redfish Host Interface


Russell Peterson
 

Hello,

I am interested in a UEFI Redfish Host Interface that does not require an OS. That is, the Redfish service would be provided by UEFI itself (via an IP interface)... or perhaps an EFI application.
For example, if a BMC wanted to access EFI variables directly from UEFI via an IP interface with no functional OS present.

Is this crazy for me to think this? Already exists? Under development? An idea... but I would need to do some work?

Any advice much appreciated.

Regards,

Russell


Laszlo Ersek
 

Hi Russell,

On 03/11/21 22:02, Russell Peterson wrote:
Hello,

I am interested in a UEFI Redfish Host Interface that does not require an OS. That is, the Redfish service would be provided by UEFI itself (via an IP interface)... or perhaps an EFI application.
For example, if a BMC wanted to access EFI variables directly from UEFI via an IP interface with no functional OS present.

Is this crazy for me to think this? Already exists? Under development? An idea... but I would need to do some work?
At least the following TianoCore bugzilla
<https://bugzilla.tianocore.org/> tickets relate to RedFish, one way or
another:

2337
2906
2910
2911
2912
2913
2918
2919
2930
2931
2932
2933
2934
2936
3102
3173
3174

At least the following USWG Mantis tickets relate to RedFish:

0001221
0001834
0001853
0001920
0001925
0001935
0001941
0002000
0002009
0002172

In UEFI v2.8B, there is a chapter called "31 - EFI Redfish Service Support".

A top-level RedfishPkg exists in edk2, and it seems like EmulatorPkg has
received some enablement. Not sure about the state in edk2-platforms (or
in other out-of-tree platforms).

Adding Abner and Nickle to the CC list (per "Maintainers.txt");
hopefully they can summarize the status for you.

Thanks
Laszlo


Abner Chang
 

-----Original Message-----
From: Laszlo Ersek [mailto:lersek@...]
Sent: Saturday, March 13, 2021 6:11 AM
To: russell@...
Cc: discuss@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
<abner.chang@...>; Wang, Nickle (HPS SW) <nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface

Hi Russell,

On 03/11/21 22:02, Russell Peterson wrote:
Hello,

I am interested in a UEFI Redfish Host Interface that does not require an OS.
Redfish Host Interface is built for OS to communicate with Redfish service on either BMC or out-of-band service (I don’t see this use case yet). UEFI use case is similar to how OS communicates with Redfish service through Redfish HI.

That is, the Redfish service would be provided by UEFI itself (via an IP
interface)... or perhaps an EFI application.
This is interesting , however you will need edk2 web server and the implementation of Redfish service on edk2 as well. Not sure how this use case works for OS <-> in-band Redfish service on edk2. Or you just would like to build up an stand along Redfish service on edk2 and other Redfish clients can connect to it?

For example, if a BMC wanted to access EFI variables directly from UEFI via
an IP interface with no functional OS present.
Redfish HI just provides the Redfish information to Redfish clients, the majority users are OS and firmware. Client sends the request to service for the property through HTTP. Rare use cases that service asks client for something on its own initiative, Redfish event service is one of the service-to-client action however client has to registers even first.
So BMC accesses to EFI variable through Redfish HI seems to me not an use case of generic Redfish services.


Is this crazy for me to think this? Already exists? Under development? An
idea... but I would need to do some work?

At least the following TianoCore bugzilla <https://bugzilla.tianocore.org/>
tickets relate to RedFish, one way or
another:
Laszlo, thanks for providing below information.
Abner

2337
2906
2910
2911
2912
2913
2918
2919
2930
2931
2932
2933
2934
2936
3102
3173
3174

At least the following USWG Mantis tickets relate to RedFish:

0001221
0001834
0001853
0001920
0001925
0001935
0001941
0002000
0002009
0002172

In UEFI v2.8B, there is a chapter called "31 - EFI Redfish Service Support".

A top-level RedfishPkg exists in edk2, and it seems like EmulatorPkg has
received some enablement. Not sure about the state in edk2-platforms (or
in other out-of-tree platforms).

Adding Abner and Nickle to the CC list (per "Maintainers.txt"); hopefully they
can summarize the status for you.

Thanks
Laszlo


Russell Peterson
 

Thanks for the response Laszlo and Abner. Very much appreciated.

Do I understand correctly that if I have a BMC with the proper schema for my system UEFI, when the system boots it (UEFI) will fetch data from the BMC via the Redfish host interface and that data would in effect, "take priority" over the data stored in the UPVS? I mean not only for boot order but also any other configuration data?

I assume UEFI has some type of discovery mechanism and authentication mechanism to find and use the BMC Redfish data. From what I have read this seems to be the case.

--Russ

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Abner Chang via groups.io
Sent: Sunday, March 14, 2021 9:24 PM
To: Laszlo Ersek <lersek@...>; Russell Peterson <russell@...>
Cc: discuss@edk2.groups.io; Wang, Nickle (HPS SW) <nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface



-----Original Message-----
From: Laszlo Ersek [mailto:lersek@...]
Sent: Saturday, March 13, 2021 6:11 AM
To: russell@...
Cc: discuss@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
<abner.chang@...>; Wang, Nickle (HPS SW) <nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface

Hi Russell,

On 03/11/21 22:02, Russell Peterson wrote:
Hello,

I am interested in a UEFI Redfish Host Interface that does not require an OS.
Redfish Host Interface is built for OS to communicate with Redfish service on either BMC or out-of-band service (I don’t see this use case yet). UEFI use case is similar to how OS communicates with Redfish service through Redfish HI.

That is, the Redfish service would be provided by UEFI itself (via an
IP interface)... or perhaps an EFI application.
This is interesting , however you will need edk2 web server and the implementation of Redfish service on edk2 as well. Not sure how this use case works for OS <-> in-band Redfish service on edk2. Or you just would like to build up an stand along Redfish service on edk2 and other Redfish clients can connect to it?

For example, if a BMC wanted to access EFI variables directly from
UEFI via
an IP interface with no functional OS present.
Redfish HI just provides the Redfish information to Redfish clients, the majority users are OS and firmware. Client sends the request to service for the property through HTTP. Rare use cases that service asks client for something on its own initiative, Redfish event service is one of the service-to-client action however client has to registers even first.
So BMC accesses to EFI variable through Redfish HI seems to me not an use case of generic Redfish services.


Is this crazy for me to think this? Already exists? Under
development? An
idea... but I would need to do some work?

At least the following TianoCore bugzilla
<https://bugzilla.tianocore.org/> tickets relate to RedFish, one way
or
another:
Laszlo, thanks for providing below information.
Abner

2337
2906
2910
2911
2912
2913
2918
2919
2930
2931
2932
2933
2934
2936
3102
3173
3174

At least the following USWG Mantis tickets relate to RedFish:

0001221
0001834
0001853
0001920
0001925
0001935
0001941
0002000
0002009
0002172

In UEFI v2.8B, there is a chapter called "31 - EFI Redfish Service Support".

A top-level RedfishPkg exists in edk2, and it seems like EmulatorPkg
has received some enablement. Not sure about the state in
edk2-platforms (or in other out-of-tree platforms).

Adding Abner and Nickle to the CC list (per "Maintainers.txt");
hopefully they can summarize the status for you.

Thanks
Laszlo


Abner Chang
 

-----Original Message-----
From: Russell Peterson [mailto:russell@...]
Sent: Monday, March 15, 2021 7:42 PM
To: discuss@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
<abner.chang@...>; Laszlo Ersek <lersek@...>
Cc: Wang, Nickle (HPS SW) <nickle.wang@...>
Subject: RE: [edk2-discuss] Redfish Host Interface

Thanks for the response Laszlo and Abner. Very much appreciated.

Do I understand correctly that if I have a BMC with the proper schema for my
system UEFI, when the system boots it (UEFI) will fetch data from the BMC
via the Redfish host interface and that data would in effect, "take priority"
over the data stored in the UPVS? I mean not only for boot order but also
any other configuration data?
Not quite sure what is UPVS stands for.
You are right, not only the boot order but also other properties defined in schema. Map HII to Redfish property using EFI keyword is the phase 2 plan for edk2.


I assume UEFI has some type of discovery mechanism and authentication
mechanism to find and use the BMC Redfish data. From what I have read
this seems to be the case.
Yes, the discovery mechanism for Redfish service is over Redfish HI or SSDP. Platform library has to provide the library to edk2 Redfish core code to build up SMBIOS type 42 table, and the library for acquiring Redfish credential which is OEM implementation-specific.
You can refer to below link for detail information,
https://github.com/tianocore/edk2-staging/tree/UEFI_Redfish, few diagrams and descriptions may out of date but not too far from the implementation on edk2.

We still in the progress of contributing edk2 Redfish foundation code. It is almost there, we can finish this phase 1 work once UEFI spec 2.9 is released because there are some spec updates for EFI Redfish Discover Protocol.
After edk2 Redfish foundation, we will start to contribute edk2 Redfish client code. That is what I mentioned to map HII (BIOS configuration) to Redfish property for the remote management.

Thanks
Abner





--Russ

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
Abner Chang via groups.io
Sent: Sunday, March 14, 2021 9:24 PM
To: Laszlo Ersek <lersek@...>; Russell Peterson
<russell@...>
Cc: discuss@edk2.groups.io; Wang, Nickle (HPS SW)
<nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface



-----Original Message-----
From: Laszlo Ersek [mailto:lersek@...]
Sent: Saturday, March 13, 2021 6:11 AM
To: russell@...
Cc: discuss@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
<abner.chang@...>; Wang, Nickle (HPS SW)
<nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface

Hi Russell,

On 03/11/21 22:02, Russell Peterson wrote:
Hello,

I am interested in a UEFI Redfish Host Interface that does not require an
OS.
Redfish Host Interface is built for OS to communicate with Redfish service on
either BMC or out-of-band service (I don’t see this use case yet). UEFI use
case is similar to how OS communicates with Redfish service through Redfish
HI.

That is, the Redfish service would be provided by UEFI itself (via an
IP interface)... or perhaps an EFI application.
This is interesting , however you will need edk2 web server and the
implementation of Redfish service on edk2 as well. Not sure how this use
case works for OS <-> in-band Redfish service on edk2. Or you just would like
to build up an stand along Redfish service on edk2 and other Redfish clients
can connect to it?

For example, if a BMC wanted to access EFI variables directly from
UEFI via
an IP interface with no functional OS present.
Redfish HI just provides the Redfish information to Redfish clients, the
majority users are OS and firmware. Client sends the request to service for
the property through HTTP. Rare use cases that service asks client for
something on its own initiative, Redfish event service is one of the service-
to-client action however client has to registers even first.
So BMC accesses to EFI variable through Redfish HI seems to me not an use
case of generic Redfish services.


Is this crazy for me to think this? Already exists? Under
development? An
idea... but I would need to do some work?

At least the following TianoCore bugzilla
<INVALID URI REMOVED
re.org_&d=DwIGaQ&c=C5b8zRQO1miGmBeVZ2LFWg&r=_SN6FZBN4Vgi4Ulk
skz6qU3NYR
O03nHp9P7Z5q59A3E&m=cleBHtjxzgg6TX8uY7CL9wbNT3KZExKhTcVbhTAay
M4&s=Bj48
Z9S2NrOzp1mB8LD4F83t22B1dBuQqeIcseTXQYQ&e= > tickets relate to
RedFish, one way or
another:
Laszlo, thanks for providing below information.
Abner

2337
2906
2910
2911
2912
2913
2918
2919
2930
2931
2932
2933
2934
2936
3102
3173
3174

At least the following USWG Mantis tickets relate to RedFish:

0001221
0001834
0001853
0001920
0001925
0001935
0001941
0002000
0002009
0002172

In UEFI v2.8B, there is a chapter called "31 - EFI Redfish Service Support".

A top-level RedfishPkg exists in edk2, and it seems like EmulatorPkg
has received some enablement. Not sure about the state in
edk2-platforms (or in other out-of-tree platforms).

Adding Abner and Nickle to the CC list (per "Maintainers.txt");
hopefully they can summarize the status for you.

Thanks
Laszlo





Russell Peterson
 

Thanks so much, Abner. This is all very helpful to me.

Regards,

Russell

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Abner Chang via groups.io
Sent: Monday, March 15, 2021 9:10 PM
To: Russell Peterson <russell@...>; discuss@edk2.groups.io; Laszlo Ersek <lersek@...>
Cc: Wang, Nickle (HPS SW) <nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface



-----Original Message-----
From: Russell Peterson [mailto:russell@...]
Sent: Monday, March 15, 2021 7:42 PM
To: discuss@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
<abner.chang@...>; Laszlo Ersek <lersek@...>
Cc: Wang, Nickle (HPS SW) <nickle.wang@...>
Subject: RE: [edk2-discuss] Redfish Host Interface

Thanks for the response Laszlo and Abner. Very much appreciated.

Do I understand correctly that if I have a BMC with the proper schema
for my system UEFI, when the system boots it (UEFI) will fetch data
from the BMC via the Redfish host interface and that data would in effect, "take priority"
over the data stored in the UPVS? I mean not only for boot order but
also any other configuration data?
Not quite sure what is UPVS stands for.
You are right, not only the boot order but also other properties defined in schema. Map HII to Redfish property using EFI keyword is the phase 2 plan for edk2.


I assume UEFI has some type of discovery mechanism and authentication
mechanism to find and use the BMC Redfish data. From what I have read
this seems to be the case.
Yes, the discovery mechanism for Redfish service is over Redfish HI or SSDP. Platform library has to provide the library to edk2 Redfish core code to build up SMBIOS type 42 table, and the library for acquiring Redfish credential which is OEM implementation-specific.
You can refer to below link for detail information, https://github.com/tianocore/edk2-staging/tree/UEFI_Redfish, few diagrams and descriptions may out of date but not too far from the implementation on edk2.

We still in the progress of contributing edk2 Redfish foundation code. It is almost there, we can finish this phase 1 work once UEFI spec 2.9 is released because there are some spec updates for EFI Redfish Discover Protocol.
After edk2 Redfish foundation, we will start to contribute edk2 Redfish client code. That is what I mentioned to map HII (BIOS configuration) to Redfish property for the remote management.

Thanks
Abner





--Russ

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
Abner Chang via groups.io
Sent: Sunday, March 14, 2021 9:24 PM
To: Laszlo Ersek <lersek@...>; Russell Peterson
<russell@...>
Cc: discuss@edk2.groups.io; Wang, Nickle (HPS SW)
<nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface



-----Original Message-----
From: Laszlo Ersek [mailto:lersek@...]
Sent: Saturday, March 13, 2021 6:11 AM
To: russell@...
Cc: discuss@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
<abner.chang@...>; Wang, Nickle (HPS SW)
<nickle.wang@...>
Subject: Re: [edk2-discuss] Redfish Host Interface

Hi Russell,

On 03/11/21 22:02, Russell Peterson wrote:
Hello,

I am interested in a UEFI Redfish Host Interface that does not
require an
OS.
Redfish Host Interface is built for OS to communicate with Redfish
service on either BMC or out-of-band service (I don’t see this use
case yet). UEFI use case is similar to how OS communicates with
Redfish service through Redfish HI.

That is, the Redfish service would be provided by UEFI itself (via
an IP interface)... or perhaps an EFI application.
This is interesting , however you will need edk2 web server and the
implementation of Redfish service on edk2 as well. Not sure how this
use case works for OS <-> in-band Redfish service on edk2. Or you just
would like to build up an stand along Redfish service on edk2 and
other Redfish clients can connect to it?

For example, if a BMC wanted to access EFI variables directly from
UEFI via
an IP interface with no functional OS present.
Redfish HI just provides the Redfish information to Redfish clients,
the majority users are OS and firmware. Client sends the request to
service for the property through HTTP. Rare use cases that service
asks client for something on its own initiative, Redfish event service
is one of the service- to-client action however client has to registers even first.
So BMC accesses to EFI variable through Redfish HI seems to me not an
use case of generic Redfish services.


Is this crazy for me to think this? Already exists? Under
development? An
idea... but I would need to do some work?

At least the following TianoCore bugzilla <INVALID URI REMOVED
re.org_&d=DwIGaQ&c=C5b8zRQO1miGmBeVZ2LFWg&r=_SN6FZBN4Vgi4Ulk
skz6qU3NYR
O03nHp9P7Z5q59A3E&m=cleBHtjxzgg6TX8uY7CL9wbNT3KZExKhTcVbhTAay
M4&s=Bj48
Z9S2NrOzp1mB8LD4F83t22B1dBuQqeIcseTXQYQ&e= > tickets relate to
RedFish, one way or
another:
Laszlo, thanks for providing below information.
Abner

2337
2906
2910
2911
2912
2913
2918
2919
2930
2931
2932
2933
2934
2936
3102
3173
3174

At least the following USWG Mantis tickets relate to RedFish:

0001221
0001834
0001853
0001920
0001925
0001935
0001941
0002000
0002009
0002172

In UEFI v2.8B, there is a chapter called "31 - EFI Redfish Service Support".

A top-level RedfishPkg exists in edk2, and it seems like EmulatorPkg
has received some enablement. Not sure about the state in
edk2-platforms (or in other out-of-tree platforms).

Adding Abner and Nickle to the CC list (per "Maintainers.txt");
hopefully they can summarize the status for you.

Thanks
Laszlo