transport: storage: add support for SPDM over the storage binding (DSP0286)
This series adds libspdm transport support for SPDM over Storage Binding Specification [1]. This allows for example NVMe or SCSI devices that conform to [1] to communicate with a host requester using the storage transport medium as defined in [1].
[1] https://www.dmtf.org/sites/default/files/standards/documents/DSP0286_1.0.0WIP90.pdf
@alistair23
A couple of high level comments.
- This pull request will not be able to be merged until DSP0286 has been published, but that looks to be soonish.
- The WDC-authored files have a WDC copyright. I believe (not 100 % sure) that per the "DMTF Members’ Software Submission Policy" it should have the DMTF copyright. If you want to keep the WDC copyright we can talk to the DMTF open source folks to clarify things.
A couple of high level comments.
1. This pull request will not be able to be merged until DSP0286 has been published, but that looks to be soonish.
Yeah that sounds good, just wanted to get comments early on
2. The WDC-authored files have a WDC copyright. I believe (not 100 % sure) that per the "DMTF Members’ Software Submission Policy" it should have the DMTF copyright. If you want to keep the WDC copyright we can talk to the DMTF open source folks to clarify things.
I've updated the license header with an author tag, is that sufficient? Diff: https://github.com/DMTF/libspdm/compare/7a14888587717c8a16e7390388fd39629e7a7076..c63269b162af091a35ef282052980087a378c68f
Presumably authorship is recorded in the commit log, but if you want to put it in the file itself:
/**
* Copyright Notice:
* Copyright 2024 DMTF. All rights reserved.
* License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
**/
/**
* Author: Wilfred Mallawa <[email protected]>
* Alistair Francis <[email protected]>
**/
Usually, the implementation for WIP should NOT be posted to main, but a WIP specific branch For example, StorageBinding_WIP, in this case.
The WIP branch can be merged into main, after the WIP spec becomes official standard.
Usually, the implementation for WIP should NOT be posted to main, but a WIP specific branch For example, StorageBinding_WIP, in this case.
The WIP branch can be merged into main, after the WIP spec becomes official standard.
Okay noted, are you happy to keep this up for now? since review is in progress.
Okay noted, are you happy to keep this up for now? since review is in progress.
That is fine. We can keep reviewing and address all feedback in this PR.
Whenever you think it is done and ready for merge, you can switch to branch merge request.
@twilfredo , do you want to keep it in PR? or do you want to push to a branch, and keep updating the branch?
I am OK either way. But I just feel a branch might be more helpful.
@twilfredo , do you want to keep it in PR? or do you want to push to a branch, and keep updating the branch?
I am OK either way. But I just feel a branch might be more helpful.
I'll stick to the PR is that's okay with everyone. I'm just waiting for the spec to be ratified so I can address all the changes in one go.
What is the correct way to generate a seed for the fuzzing tests to go here unit_test/fuzzing/seeds mapping to the respective tests.
As requested by @jyao1 I have added some unit tests to test the storage transport api, but I'm unsure about how the seeds are generated (hence why some of the the CI is failing also).
ping!
@twilfredo , would you please:
1. fix CI failure. 2. Check if it aligns to latest published [DSP0286](https://www.dmtf.org/sites/default/files/standards/documents/DSP0286_1.0.0.pdf)
Good to see the spec being released! and yeah I will work on getting this upto date. Thanks!
@twilfredo , the next release (Q2) will be end of June. Please let us know if this can be completed at that time windows.
@twilfredo , the next release (Q2) will be end of June. Please let us know if this can be completed at that time windows.
As an update: I have all of the changes discussed above added and tested with the respective modifications to the NVMe driver (in spdm-utils), things are working in emulation (QEMU).
Just need to support and test the SPDM Storage Secured Message Descriptors. So hopefully I will have something ready next week and we can try to get this out before the next release.
@steven-bellock to review this week.
@steven-bellock , any other feedback? I plan to merge.
The only question I have is on https://github.com/DMTF/libspdm/pull/2827/files#diff-a33eea86d3de869868084e61740e8f7f239d30b691d59a00dd2c7539a1a074a7 but we can discuss that on Monday's meeting.