Date
1 - 19 of 19
EDK2 RedfishPkg problems with using it by third party modules
Igor Kulchytskyy <igork@...>
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
https://edk2.groups.io/g/devel/files/Designs/2022/EDK2RedfishPkgProblems.pptx
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10 min discussion).
Thank you,
Igor
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
https://edk2.groups.io/g/devel/files/Designs/2022/EDK2RedfishPkgProblems.pptx
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10 min discussion).
Thank you,
Igor
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues comprehensively. Unfortunately it was too late for me to arrange a meeting with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner
toggle quoted message
Show quoted text
Appreciate for bringing these RedfishPkg implementation/architecture issues comprehensively. Unfortunately it was too late for me to arrange a meeting with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner
-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
INVALID URI REMOVED
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4b
jCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential and proprietary
to American Megatrends (AMI). This communication is intended to be read only
by the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
toggle quoted message
Show quoted text
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message-----
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io; igork@...
Cc: Felix Polyudov <Felixp@...>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io <discuss@edk2.groups.io>; igork@... <igork@...>
Cc: Felix Polyudov <Felixp@...>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
Abner
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io <discuss@edk2.groups.io>; igork@... <igork@...>
Cc: Felix Polyudov <Felixp@...>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message-----
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io; igork@...
Cc: Felix Polyudov <Felixp@...>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Igor Kulchytskyy <igork@...>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io; Igor Kulchytskyy <igork@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|a1d78573f5fe40f8824308da579975e8|27e97857e15f486cb58e86c2b3040f93|1|0|637918613868084066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EgwLK4hFnjFphN7uU+kCq4qglGbhsbEYRaX9wrSp/rI=&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg&data=05|01|igork@ami.com|a1d78573f5fe40f8824308da579975e8|27e97857e15f486cb58e86c2b3040f93|1|0|637918613868084066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=0k71TTFGPprVOoYbUFO/mkA5DAtTjURbCAK3+AGm2UU=&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/DMTF/libredfish&data=05|01|igork@ami.com|a1d78573f5fe40f8824308da579975e8|27e97857e15f486cb58e86c2b3040f93|1|0|637918613868084066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=N52ZgrsH989DZRC7PBAFgtXsduczl3xYLVhBHQ8song=&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
Abner
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Igor Kulchytskyy <igork@...>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io; Igor Kulchytskyy <igork@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|a1d78573f5fe40f8824308da579975e8|27e97857e15f486cb58e86c2b3040f93|1|0|637918613868084066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EgwLK4hFnjFphN7uU+kCq4qglGbhsbEYRaX9wrSp/rI=&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg&data=05|01|igork@ami.com|a1d78573f5fe40f8824308da579975e8|27e97857e15f486cb58e86c2b3040f93|1|0|637918613868084066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=0k71TTFGPprVOoYbUFO/mkA5DAtTjURbCAK3+AGm2UU=&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/DMTF/libredfish&data=05|01|igork@ami.com|a1d78573f5fe40f8824308da579975e8|27e97857e15f486cb58e86c2b3040f93|1|0|637918613868084066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=N52ZgrsH989DZRC7PBAFgtXsduczl3xYLVhBHQ8song=&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io; Igor Kulchytskyy <igork@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Ca1d78573f5fe40f8824308da579975e8%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637918613868084066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=EgwLK4hFnjFphN7uU%2BkCq4qglGbhsbEYRaX9wrSp%2FrI%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Ca1d78573f5fe40f8824308da579975e8%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637918613868084066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=0k71TTFGPprVOoYbUFO%2FmkA5DAtTjURbCAK3%2BAGm2UU%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Ca1d78573f5fe40f8824308da579975e8%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637918613868084066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=N52ZgrsH989DZRC7PBAFgtXsduczl3xYLVhBHQ8song%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io; Igor Kulchytskyy <igork@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Ca1d78573f5fe40f8824308da579975e8%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637918613868084066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=EgwLK4hFnjFphN7uU%2BkCq4qglGbhsbEYRaX9wrSp%2FrI%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Ca1d78573f5fe40f8824308da579975e8%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637918613868084066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=0k71TTFGPprVOoYbUFO%2FmkA5DAtTjURbCAK3%2BAGm2UU%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Ca1d78573f5fe40f8824308da579975e8%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637918613868084066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=N52ZgrsH989DZRC7PBAFgtXsduczl3xYLVhBHQ8song%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=EN9yDk6foTtUTquPSfsoWmvl%2FjBEGBaXaAQOdbYTzV4%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=EN9yDk6foTtUTquPSfsoWmvl%2FjBEGBaXaAQOdbYTzV4%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BVH%2FZgjmvkurWmogU97tZ%2BgvznHG5eHYgZZ%2FLWmAYsg%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bxsxmUHftCIciRBuzYR6wLh6eprdmP8KQpVFqou6yyk%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=EN9yDk6foTtUTquPSfsoWmvl%2FjBEGBaXaAQOdbYTzV4%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=EN9yDk6foTtUTquPSfsoWmvl%2FjBEGBaXaAQOdbYTzV4%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BVH%2FZgjmvkurWmogU97tZ%2BgvznHG5eHYgZZ%2FLWmAYsg%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Cddfe99870b044e29beda08da58a169d3%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637919747557414854%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bxsxmUHftCIciRBuzYR6wLh6eprdmP8KQpVFqou6yyk%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Wang, Nickle (Server BIOS) <nickle.wang@...>
Include Abner from AMD.com. The HPE one should be deprecated soon.
Thanks,
Nickle
________________________________
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 03:15
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I’m planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=+VH/ZgjmvkurWmogU97tZ+gvznHG5eHYgZZ/LWmAYsg=&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/DMTF/libredfish&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=bxsxmUHftCIciRBuzYR6wLh6eprdmP8KQpVFqou6yyk=&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Thanks,
Nickle
________________________________
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 03:15
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I’m planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=+VH/ZgjmvkurWmogU97tZ+gvznHG5eHYgZZ/LWmAYsg=&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/DMTF/libredfish&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=bxsxmUHftCIciRBuzYR6wLh6eprdmP8KQpVFqou6yyk=&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Wang, Nickle (Server BIOS) <nickle.wang@...>
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=+VH/ZgjmvkurWmogU97tZ+gvznHG5eHYgZZ/LWmAYsg=&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/DMTF/libredfish&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=bxsxmUHftCIciRBuzYR6wLh6eprdmP8KQpVFqou6yyk=&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https://aka.ms/AAb9ysg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=EN9yDk6foTtUTquPSfsoWmvl/jBEGBaXaAQOdbYTzV4=&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=+VH/ZgjmvkurWmogU97tZ+gvznHG5eHYgZZ/LWmAYsg=&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https://github.com/DMTF/libredfish&data=05|01|igork@ami.com|ddfe99870b044e29beda08da58a169d3|27e97857e15f486cb58e86c2b3040f93|1|0|637919747557414854|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=bxsxmUHftCIciRBuzYR6wLh6eprdmP8KQpVFqou6yyk=&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I’m planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=i4%2BXgS0jiCkxT4WVVE%2BTdx9RJxX0mUJRoP5k08jPJq8%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=i4%2BXgS0jiCkxT4WVVE%2BTdx9RJxX0mUJRoP5k08jPJq8%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bj3wfI4pcZ%2BHW0opAoXtCyCR6Ii9MXBj7mwi9mGRGd4%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yaj1RrtcPt5bfbh5timmaUVXfqextrhBQyYVlkyHfQk%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I’m planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=i4%2BXgS0jiCkxT4WVVE%2BTdx9RJxX0mUJRoP5k08jPJq8%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=i4%2BXgS0jiCkxT4WVVE%2BTdx9RJxX0mUJRoP5k08jPJq8%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bj3wfI4pcZ%2BHW0opAoXtCyCR6Ii9MXBj7mwi9mGRGd4%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Cad6755b871534525e8f408da70f4790d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637946492571055759%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yaj1RrtcPt5bfbh5timmaUVXfqextrhBQyYVlkyHfQk%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Chang, Abner
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client
Thanks
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=8NwE0U1nzZvmmB%2BTbMwd2W%2Fw%2BsP6GAImOPBsJni3LPI%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4eRQwkfD3i7AnTfYopgn%2FPtLvLMHkwFwL771wYAX7nw%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client
Thanks
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=8NwE0U1nzZvmmB%2BTbMwd2W%2Fw%2BsP6GAImOPBsJni3LPI%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4eRQwkfD3i7AnTfYopgn%2FPtLvLMHkwFwL771wYAX7nw%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Chang, Abner
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=8NwE0U1nzZvmmB%2BTbMwd2W%2Fw%2BsP6GAImOPBsJni3LPI%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4eRQwkfD3i7AnTfYopgn%2FPtLvLMHkwFwL771wYAX7nw%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vRN2vynTaoVhZr6hwgdc8akpzX7Jts%2FTgKfAJovrtTg%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=8NwE0U1nzZvmmB%2BTbMwd2W%2Fw%2BsP6GAImOPBsJni3LPI%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7C70643c1c617449e6907208da70f7999e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637946506016322803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4eRQwkfD3i7AnTfYopgn%2FPtLvLMHkwFwL771wYAX7nw%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=lF0HFQLQQJGVZ0ZLD9l7CBX%2FsMibf3rAK0ygHshiduE%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzQjfMk9SkN5Z3w0D%2FJevvifc%2FihhgTVWOPoR7rqGgc%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzQjfMk9SkN5Z3w0D%2FJevvifc%2FihhgTVWOPoR7rqGgc%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzQjfMk9SkN5Z3w0D%2FJevvifc%2FihhgTVWOPoR7rqGgc%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6j0wfcFtG1jffeFrn1DuLX8bZbZZlxtPbaX8LjVg%2Bgc%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=8YGjZu0LLxK%2FcZmeFZexc8TXOlYv1%2BRHre5lrhBRs1o%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=lF0HFQLQQJGVZ0ZLD9l7CBX%2FsMibf3rAK0ygHshiduE%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzQjfMk9SkN5Z3w0D%2FJevvifc%2FihhgTVWOPoR7rqGgc%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzQjfMk9SkN5Z3w0D%2FJevvifc%2FihhgTVWOPoR7rqGgc%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzQjfMk9SkN5Z3w0D%2FJevvifc%2FihhgTVWOPoR7rqGgc%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6j0wfcFtG1jffeFrn1DuLX8bZbZZlxtPbaX8LjVg%2Bgc%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7C18205ec5a91b4999d6a308da730e6209%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637948802895478596%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=8YGjZu0LLxK%2FcZmeFZexc8TXOlYv1%2BRHre5lrhBRs1o%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Chang, Abner
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=AXj8Rf0be3F8CyS5tghyerisrGoNTw3dQQ3w6s%2Fh05c%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=GMILyQHYqrq%2FUFGeJSLxvA%2F8%2F5K39OM81uwroKfCBmM%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=GMILyQHYqrq%2FUFGeJSLxvA%2F8%2F5K39OM81uwroKfCBmM%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=GMILyQHYqrq%2FUFGeJSLxvA%2F8%2F5K39OM81uwroKfCBmM%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=zqGeOs4kywPp8ipaD3uS0I33ENLN6xDqmXCLaH%2FLxog%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BCCR36hbJvjhqynwmPXtcHmG%2BoTlgxS6%2BIOf%2B4Kgolo%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=AXj8Rf0be3F8CyS5tghyerisrGoNTw3dQQ3w6s%2Fh05c%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=GMILyQHYqrq%2FUFGeJSLxvA%2F8%2F5K39OM81uwroKfCBmM%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=GMILyQHYqrq%2FUFGeJSLxvA%2F8%2F5K39OM81uwroKfCBmM%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=GMILyQHYqrq%2FUFGeJSLxvA%2F8%2F5K39OM81uwroKfCBmM%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=zqGeOs4kywPp8ipaD3uS0I33ENLN6xDqmXCLaH%2FLxog%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7Ce2061d8932334127156608da73c1cb90%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637949573518543593%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BCCR36hbJvjhqynwmPXtcHmG%2BoTlgxS6%2BIOf%2B4Kgolo%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Chang, Abner
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rpVW3dVmZij1S33S%2Fz2Ae1afojdYYBlMkIX0XSoizvs%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=juJI2VUM3TqXbIB8TMcAy4rN7oDC1Dlw15lxaYFuwLI%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=juJI2VUM3TqXbIB8TMcAy4rN7oDC1Dlw15lxaYFuwLI%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=juJI2VUM3TqXbIB8TMcAy4rN7oDC1Dlw15lxaYFuwLI%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=E4zsntymFDBEpWnQLNuvrwqS1iTc6QH5owPOT8bUusE%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=RCOyS6F3YvbytpAJb0JfLZkM92avpjYXo1E0SMmEB7o%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rpVW3dVmZij1S33S%2Fz2Ae1afojdYYBlMkIX0XSoizvs%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=juJI2VUM3TqXbIB8TMcAy4rN7oDC1Dlw15lxaYFuwLI%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=juJI2VUM3TqXbIB8TMcAy4rN7oDC1Dlw15lxaYFuwLI%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=juJI2VUM3TqXbIB8TMcAy4rN7oDC1Dlw15lxaYFuwLI%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=E4zsntymFDBEpWnQLNuvrwqS1iTc6QH5owPOT8bUusE%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7C63f3627633e74bff07a908da74be3798%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950657596935879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=RCOyS6F3YvbytpAJb0JfLZkM92avpjYXo1E0SMmEB7o%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Chang, Abner
[AMD Official Use Only - General]
Ok, I will have a patch for this. See if that addresses this issue. Thank you Igor.
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Wednesday, August 3, 2022 8:37 AM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Ok. Sounds as a right solution!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 2, 2022 7:52:24 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=THFDq7oCEwq6%2BqA2oheLCn%2Fxtm%2FA3647PmljtNIjK5g%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4bcozvx560eQ1IKUZX4CoOngEPicKp69V7bmTGv9fuw%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wLVQ%2FPVihC4eYLEU7%2F%2Bmr8rIvGXoSR4Y1fZiDzVK9rQ%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Ok, I will have a patch for this. See if that addresses this issue. Thank you Igor.
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Wednesday, August 3, 2022 8:37 AM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Ok. Sounds as a right solution!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 2, 2022 7:52:24 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=THFDq7oCEwq6%2BqA2oheLCn%2Fxtm%2FA3647PmljtNIjK5g%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pAjpS5HmaMMKjddzBqh3q%2BwTxe%2FDX%2FZn4vOxfdPvfM4%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4bcozvx560eQ1IKUZX4CoOngEPicKp69V7bmTGv9fuw%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com%7Ce7bcd59ae22f4e26ae8c08da74e83ff7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637950838136053460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wLVQ%2FPVihC4eYLEU7%2F%2Bmr8rIvGXoSR4Y1fZiDzVK9rQ%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=T0PAkg3KJ6EHpL%2FehdIPOvI3ycwRFVV%2F%2FWiDk6%2BoaZg%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qLosHYa8y9rBD9f7uEKrdcpCEj9BW%2BnEqwa4%2Fy6DAbg%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qLosHYa8y9rBD9f7uEKrdcpCEj9BW%2BnEqwa4%2Fy6DAbg%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qLosHYa8y9rBD9f7uEKrdcpCEj9BW%2BnEqwa4%2Fy6DAbg%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=u0o05j8zyvu2rWTJ%2BkmouaBFWaRiR1TUK1kA8roIrR0%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=czoF1jFu3r9KHTnugddqxTGwtL8%2BY3Waq5EvwXJeSOk%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=T0PAkg3KJ6EHpL%2FehdIPOvI3ycwRFVV%2F%2FWiDk6%2BoaZg%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qLosHYa8y9rBD9f7uEKrdcpCEj9BW%2BnEqwa4%2Fy6DAbg%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qLosHYa8y9rBD9f7uEKrdcpCEj9BW%2BnEqwa4%2Fy6DAbg%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qLosHYa8y9rBD9f7uEKrdcpCEj9BW%2BnEqwa4%2Fy6DAbg%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=u0o05j8zyvu2rWTJ%2BkmouaBFWaRiR1TUK1kA8roIrR0%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7C7499bb180fd349fe790d08da743d26fa%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950103251497067%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=czoF1jFu3r9KHTnugddqxTGwtL8%2BY3Waq5EvwXJeSOk%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
Ok. Sounds as a right solution!
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Chang, Abner <Abner.Chang@...>
Sent: Tuesday, August 2, 2022 7:52:24 PM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
“This check is to prevent from the multiple Redfish servers are discovered on the same network interface.”
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn’t trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don’t think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811544932898%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=zRGfmmxQgOM%2FveTdp5xFKsVZitcnDgLGju1ipHVLfQ4%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=yU0Nn56Ndq1E8NTeDkXegXxnVXdU%2BWBWPTxspBOLI9U%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I’m planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=yU0Nn56Ndq1E8NTeDkXegXxnVXdU%2BWBWPTxspBOLI9U%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=yU0Nn56Ndq1E8NTeDkXegXxnVXdU%2BWBWPTxspBOLI9U%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=WYB3j97TjivYWAGM6JRMAAR9c5SrBR8HEVHyQbveoIY%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=XAwz8e75g2r3x1%2FdWuyhv1EHnXMH390uJJW5YbKAypo%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Chang, Abner <Abner.Chang@...>
Sent: Tuesday, August 2, 2022 7:52:24 PM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io <discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
“This check is to prevent from the multiple Redfish servers are discovered on the same network interface.”
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn’t trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don’t think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811544932898%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=zRGfmmxQgOM%2FveTdp5xFKsVZitcnDgLGju1ipHVLfQ4%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=yU0Nn56Ndq1E8NTeDkXegXxnVXdU%2BWBWPTxspBOLI9U%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I’m planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=yU0Nn56Ndq1E8NTeDkXegXxnVXdU%2BWBWPTxspBOLI9U%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=yU0Nn56Ndq1E8NTeDkXegXxnVXdU%2BWBWPTxspBOLI9U%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=WYB3j97TjivYWAGM6JRMAAR9c5SrBR8HEVHyQbveoIY%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json”
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn’t introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7Cb62dff09c90244abd11008da74e21006%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950811545089118%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=XAwz8e75g2r3x1%2FdWuyhv1EHnXMH390uJJW5YbKAypo%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
Igor Kulchytskyy <igork@...>
Hi Abner,
I've just sent you and Nickle the patch for one of the issue from my previous list.
This is my first patch created for the EDK2 project.
Could you, please, check it and tell me if I did everything correctly?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...>
Sent: Tuesday, August 02, 2022 8:44 PM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Ok, I will have a patch for this. See if that addresses this issue. Thank you Igor.
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Wednesday, August 3, 2022 8:37 AM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Ok. Sounds as a right solution!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476703983%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=YCm8zqoUFh2khmQTT5LE6bw%2F5CDLsLxYZkkT2CWRwVc%3D&reserved=0>
________________________________
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 2, 2022 7:52:24 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=kTd4vJhOfiuCpX0ZI8MjqtmxSXpU2iS5OkltpW8T4Uc%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5meT6%2FNXH1TaZHY5vEAgUEQ7QvpXrz3GbJvwduSR%2BU8%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5meT6%2FNXH1TaZHY5vEAgUEQ7QvpXrz3GbJvwduSR%2BU8%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5meT6%2FNXH1TaZHY5vEAgUEQ7QvpXrz3GbJvwduSR%2BU8%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=JMv%2FRwV3VUG0aktJ4H8Eak31v%2F99nXgb%2F0t8GatCfuM%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pmbi3lTr2F9RZ%2BrNvuYKwe4fLSze4R%2BjDVV7rnLHQug%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
I've just sent you and Nickle the patch for one of the issue from my previous list.
This is my first patch created for the EDK2 project.
Could you, please, check it and tell me if I did everything correctly?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...>
Sent: Tuesday, August 02, 2022 8:44 PM
To: Igor Kulchytskyy <igork@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>; discuss@edk2.groups.io
Cc: Felix Polyudov <Felixp@...>; Wang, Nickle (Server BIOS) <nickle.wang@...>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Ok, I will have a patch for this. See if that addresses this issue. Thank you Igor.
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Wednesday, August 3, 2022 8:37 AM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Ok. Sounds as a right solution!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476703983%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=YCm8zqoUFh2khmQTT5LE6bw%2F5CDLsLxYZkkT2CWRwVc%3D&reserved=0>
________________________________
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 2, 2022 7:52:24 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Right, that is exact what I mean. So, no more ReinstallProtocol of the EFI_REDFISH_DISCOVER_PROTOCOL for multiple network interfaces.
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Wednesday, August 3, 2022 3:36 AM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
"This check is to prevent from the multiple Redfish servers are discovered on the same network interface."
Do you mean that we may have one Redfish service on one interface and second on another network interface.
So, you mean discover protocol would be installed on both interfaces and the right Redfish service would be selected by MAC address or some other mechanism. Right?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Tuesday, August 02, 2022 12:12 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
This check is to prevent from the multiple Redfish servers are discovered on the same network interface. For example, if we use EFI_REDFISH_DISCOVER_SSDP for the discovery. However, The RedfishServiceDiscoveredCallback function would only be invoked once because we use EFI_REDFISH_DISCOVER_HOST_INTERFACE to discover the Redfish service.
I didn't trace the code but I think RedfishConfigHandlerDriver leads to RedfishConfigDriverBIndingStop be called because the handle that opened EFI_REDFISH_DISCOVER_PROTOCOL also has the EFI_DRIVER_BINDING_PROTOCOL installed on it. It would then result in the all of ConfigHandler stop. Is this the root cause you observed as well?
So, having the EFI_REDFISH_DISCOVER_PROTOCOL installed on each network interface would be the proper fix IMO.
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Monday, August 1, 2022 9:29 PM
To: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Abner,
I think what you suggested should work good.
But may we also consider one thing.
As we know there could be only one Redfish service which provide the services to BIOS.
And in the RedfishConfigHandlerDriver as I can see you make such verification:
if (gRedfishServiceDiscovered) {
//
// Only support one Redfish service on platform.
//
return;
}
So, maybe it can be checked in this case also. If there is Redfish service present on one interface, then there is no need to check another interface and just skip it in Supported function of the RedfishDiscoverDxe driver? What do you think?
Thank you,
Igor
From: Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Sent: Sunday, July 31, 2022 12:05 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
I got the point of the issue you raised here, I think we should associate EFI_REDFISH_DISCOVER_PROTOCOL with each interface interrace.
So, we will install EFI_REDFISH_DISCOVER_PROTOCOL on the new EFI_HANDLE for each network interface. Do not reinstall EFI_REDFISH_DISCOVER_PROTOCOL on the existing handle that results in stopping the upper layer driver that manages the EFI_REDFISH_DISCOVER_PROTOCOL instance.
When the EFI Redfish discover driver image is unloaded, we will disconnect all of the EFI_REDFISH_DISCOVER_PROTOCOL instances.
We will also stop the specific the EFI_REDFISH_DISCOVER_PROTOCOL instance when RedfishDiscoverDriverBindingStop is invoked.
How do you think? Is there anything I missed?
Abner
From: Chang, Abner
Sent: Saturday, July 30, 2022 9:59 AM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[AMD Official Use Only - General]
Hi Igor,
Sorry for the late reply.
Yes, please send the patch to mailing list, we will check it. Thanks for this effort.
Regarding the #5,
I will look at this issue and get back to you soon. Your explanation of this issue is clear and I don't think the debug log is needed at this moment.
BTW, you may also interested in the PoC of edk2 Redfish client solution that was just pushed to the below branch few days ago,
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=kTd4vJhOfiuCpX0ZI8MjqtmxSXpU2iS5OkltpW8T4Uc%3D&reserved=0>
Thanks
Abner
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 8:17 AM
To: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: Re: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
[CAUTION: External Email]
Hi Nickle,
Thank you for forwarding my emails to the right address!
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5meT6%2FNXH1TaZHY5vEAgUEQ7QvpXrz3GbJvwduSR%2BU8%3D&reserved=0>
________________________________
From: Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Sent: Thursday, July 28, 2022 7:54:07 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; Chang, Abner <Abner.Chang@...<mailto:Abner.Chang@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] RE: Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Add Abner from AMD.com
Thanks,
Nickle
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Friday, July 29, 2022 3:16 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
As I can see in the Redfish group activities you are back with that work on supporting RedfishPkg.
It is nice to have you back.
I have the solutions for issues #1, 4, 6, 7.
And I'm planning to send the patches to you for the review.
Issues #2 and #3 could be solved by the external Redfish modules themselves.
Could we please discuss the issue #5?
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Let me remind what this issue about.
Problem Statement:
System may have more than one network interface. For example, the system may use Lan over USB to connect to BMC and a regular network card to connect to the out of band services. Such configurations are not supported by the current implementation
Details:
According to EDK2 Redfish architecture all external modules in order to use Redfish functionality should implement EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL protocol with two functions Init and Stop.
But there is a problem with calling those functions by RedfishPkg modules. RedfishDiscoverDxe module installs EfiRedfishDiscoverProtocol for Lan over USB interface and after that callback function in RedfishConfigHandlerDriver called which leads to the call of Init function. But if system also has regular NIC, then ReinstallProtocol called. And because of that Stop function called for Lan over USB, but after that no Init function called since DiscoverProtocol cannot match MAC address of regular network interface with the MAC address of virtual network interface.
And because of that the whole connection to BMC stopped.
Have you had a chance to look at it?
Do you need more details from us? BIOS log file?
Thank you,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Monday, June 27, 2022 8:59 PM
To: Igor Kulchytskyy <igork@...<mailto:igork@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Sure. We can discuss these issues through email for now. Apologize messed up the original submitter of this message. Thanks for creating that slide.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5meT6%2FNXH1TaZHY5vEAgUEQ7QvpXrz3GbJvwduSR%2BU8%3D&reserved=0>
________________________________
From: Igor Kulchytskyy <igork@...<mailto:igork@...>>
Sent: Tuesday, June 28, 2022 1:47:05 AM
To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: RE: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
Hi Abner,
Thank you for the answers. I need a time to analyze them.
Let me check that RedfishClientPkg and come back to you.
I think it is a good way of discussion we have right now though email thread.
Best regards,
Igor
From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@...<mailto:abner.chang@...>>
Sent: Sunday, June 26, 2022 1:29 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; Igor Kulchytskyy <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>; Wang, Nickle (Server BIOS) <nickle.wang@...<mailto:nickle.wang@...>>
Subject: [EXTERNAL] Re: EDK2 RedfishPkg problems with using it by third party modules
**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**
Loop in Nickle Wang to the thread. Who is the owner of RedfishClientPkg.
Abner
Get Outlook for Android<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5meT6%2FNXH1TaZHY5vEAgUEQ7QvpXrz3GbJvwduSR%2BU8%3D&reserved=0>
________________________________
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Monday, June 27, 2022 1:03:15 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>>; igork@...<mailto:igork@...> <igork@...<mailto:igork@...>>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Issue #1. Lan over USB support
Ans: Yes, we can support that in RedfishDiscoverDxe.
Issue #2. Host Interface MAC Address
Ans: Ok, I understand the concern. However, RedfishHostInterfaceDxe is a DXE driver which doesn't require any hardware initialization. Having it to publish SMBIOS record when the BDS driver connection seems to me not quite make sense.
We can design a mechanism to have RedfishHostInterfaceDxe listen to the SNP protocol. Introduce the Redfish Host Interface update notification to let RedfsihDiscovryDxe updates the Redfish Host interface record.
Issue #3. Service UUID of the Host Interface
Ans: Not quite understand the issue. Service UUID is defined in the SMBIOS type42 Redfish over IP protocol. Platform firmware is responsible to provide the SMBIOS type 42 record and the service UUID should be known to the platform firmware. It says service UUID can be hardcoded and returned in SMBIOS type 42. Or I misunderstanding the description of this issue.
Issue #4. RedfishPkg as SDK
Ans: In the entire Redfish edk2 solution, we want to reduce the implementation effort. RedfishClinetPkg is introduce to incorporate with RedfishPkg to manipulate the Redfish properties. We think developers has not need to touch those low level functions.
Please refer to below link for the RedfishclientPackage.
https://github.com/tianocore/edk2-staging/tree/edk2-redfish-client/RedfishClientPkg<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-staging%2Ftree%2Fedk2-redfish-client%2FRedfishClientPkg&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=JMv%2FRwV3VUG0aktJ4H8Eak31v%2F99nXgb%2F0t8GatCfuM%3D&reserved=0>
Of course, we can make The RedfishLib public if there is a demand for platform firmware to implement the proprietary feature.
Issue #5. Multiple Network Interfaces
Ans: Please allow me to figure out the implementation of code. It has been a while.
Issue #6. POST request with ContentType other than "application/json"
Ans: The open source edk2 Redfish solution is simply follow the Redfish service standard, the content type of the Redfish properties is JSON. Other type of contents must be supported by BMC and which is not in the scope of standard Redfish support on edk2.
We ever thought about other content type to support other payload format such as PLDM or XML format that is adopted by OpenBMC. However, those solutions are depends on the BMC implementation. BMC Redfish service can accept the HTTP/JSON request from out of band. Use JSON content type on edk2 firmware doesn't introduce the burden to BMC. We will have to abstract the payload generation to flexibly support different content types. However, does it worth?
Issue #7. DELETE request with the body
Ans: Hmm. This makes sense to me. For example if a component is remove from platform, the Redfish collection member or some resource has to be deleted. PATCH can update the collection member but we may still need to delete the properties if it is no longer needed.
RedfishLib is leverage from the LibRedfish as indicated in the below link,
https://github.com/DMTF/libredfish<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2Flibredfish&data=05%7C01%7Cigork%40ami.com%7C92d220215b7147ac56a408da74e942b0%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C637950842476860185%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pmbi3lTr2F9RZ%2BrNvuYKwe4fLSze4R%2BjDVV7rnLHQug%3D&reserved=0>.
We can improve the functionalities in RedfishLib because libredfish is not maintained by DMTF/Redfish anymore if my memory serves me right.
Thanks again for these inputs. We can have the further discussions either through email or the TianoCore design meeting. Your team is welcome to contribute to edk2 Redfish solution as well.
Abner
-----Original Message------The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
From: Chang, Abner (HPS SW/FW Technologist)
Sent: Saturday, June 25, 2022 11:07 PM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>; igork@...<mailto:igork@...>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: RE: EDK2 RedfishPkg problems with using it by third party modules
Hi Felix,
Appreciate for bringing these RedfishPkg implementation/architecture issues
comprehensively. Unfortunately it was too late for me to arrange a meeting
with you on 6/24 because I saw this email on my 6/24 noon. Is the meeting you
referred the TianoCore design meeting?
I will reply to you through email before we setting up a meeting for this.
Thanks
Abner-----Original Message-----INVALID URI REMOVED<INVALID%20URI%20REMOVED>
From: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io> <discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>> On Behalf Of Igor
Kulchytskyy via groups.io
Sent: Thursday, June 23, 2022 6:16 AM
To: discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Cc: Felix Polyudov <Felixp@...<mailto:Felixp@...>>
Subject: [edk2-discuss] EDK2 RedfishPkg problems with using it by third party
modules
Hello.
I would like to discuss the issues I faced when I tried to use EDK2 RedfishPkg
modules along with AMI's Redfish modules in our project.
I uploaded the ppt document with the description of the problems:
2/EDK2RedfishPkgProblems.pptx__;!!NpxR!mHXgLbc5z9FuGt7kERA8GMecs8L4bjCYce_Ejcu6cuL3ySPqlioduEgwIv-m7G9HMw3EOMrmOm7hRIZuRN-G1PuT$proprietary
Could we have a meeting scheduled on 06/24/2022?
Our presentation should take about 30 min (20 min presentation itself and 10
min discussion).
Thank you,
Igor
-The information contained in this message may be confidential andto American Megatrends (AMI). This communication is intended to be readonlyby the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that any
distribution of this message, in any form, is strictly prohibited. Please promptly
notify the sender by reply e-mail or by telephone at 770-246-8600, and then
delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.