-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Redfish schema version forward compatibility support #97
Merged
nicklela
merged 6 commits into
tianocore:main
from
nicklela:schema-version-forward-compatibility
Sep 4, 2024
Merged
Redfish schema version forward compatibility support #97
nicklela
merged 6 commits into
tianocore:main
from
nicklela:schema-version-forward-compatibility
Sep 4, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nicklela
force-pushed
the
schema-version-forward-compatibility
branch
from
August 27, 2024 02:18
b1e63c9
to
cff8cdd
Compare
@changab @igorkulchytskyy This is big change. I would suggest you to review them by the commit order. |
changab
approved these changes
Aug 27, 2024
@igorkulchytskyy may I have your review to this change? Thanks! |
RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourceConfigLib.c
Show resolved
Hide resolved
Add the ability to support newer schema version with current Redfish feature drivers. PcdRedfishCompatibleSchemaSupport is introduced to enable this function in Redfish drivers. When PCD is enabled, Redfish driver will try its best to handle resource with newer schema version. With this ability, BIOS does not have dependency to BMC firmware. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
implement compatible schema support to computer system driver. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
implement compatible schema support to bios driver. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
implement compatible schema support to boot options driver. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
implement compatible schema support to secure boot driver. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
implement compatible schema support to memory driver. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
nicklela
force-pushed
the
schema-version-forward-compatibility
branch
from
September 4, 2024 06:12
cff8cdd
to
32b976e
Compare
igorkulchytskyy
approved these changes
Sep 4, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Problem statement
In current EFI_REST_JSON_STRUCTURE_PROTOCOL design, there is one-to-one mapping between Redfish schema version and Redfish feature driver. When BMC supports new Redfish schema version, the corresponding BIOS firmware update is required to include new feature driver. Otherwise, Redfish feature driver cannot find correct schema version support and entire UEFI Redfish function is failing. This creates trouble for firmware release management because BMC firmware and BIOS firmware are coupled together. And there is no guarantee that user will always update both two firmware together.
Discussion
To decouple BMC firmware and BIOS firmware, we need a way to support newer Redfish schema version by using existing Redfish feature drivers. Redfish schema supports backward compatibility where deprecated attributes still stay in newer schema version (with "deprecated" and "versionDeprecated" presented). So, In theory, Redfish feature driver in old schema version can support newer schema version without problem.
Solution
EdkIIRedfishResourceConfigLib is used to find correct schema version of feature driver. When there is no matched driver can be found in system, it tries to find "best match" schema version of feature driver. The rule is:
After "best match" feature driver is found, feature driver will update schema version in JSON context so EFI_REST_JSON_STRUCTURE_PROTOCOL can work. A PCD "PcdRedfishCompatibleSchemaSupport" is introduced to turn of compatibility support when user wants "perfect match" schema version support in system.
How This Was Tested