libspdm icon indicating copy to clipboard operation
libspdm copied to clipboard

transport: storage: add support for SPDM over the storage binding (DSP0286)

Open twilfredo opened this issue 1 year ago • 9 comments

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

twilfredo avatar Sep 05 '24 02:09 twilfredo

@alistair23

twilfredo avatar Sep 05 '24 02:09 twilfredo

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

steven-bellock avatar Sep 05 '24 14:09 steven-bellock

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

twilfredo avatar Sep 06 '24 04:09 twilfredo

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]>
  **/

steven-bellock avatar Sep 06 '24 16:09 steven-bellock

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.

jyao1 avatar Sep 11 '24 02:09 jyao1

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.

twilfredo avatar Sep 11 '24 03:09 twilfredo

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.

jyao1 avatar Sep 11 '24 03:09 jyao1

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

jyao1 avatar Nov 01 '24 02:11 jyao1

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

twilfredo avatar Nov 01 '24 06:11 twilfredo

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

twilfredo avatar Nov 27 '24 06:11 twilfredo

ping!

twilfredo avatar Dec 17 '24 00:12 twilfredo

@twilfredo , would you please:

  1. fix CI failure.
  2. Check if it aligns to latest published DSP0286

jyao1 avatar May 29 '25 06:05 jyao1

@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 avatar May 29 '25 06:05 twilfredo

@twilfredo , the next release (Q2) will be end of June. Please let us know if this can be completed at that time windows.

jyao1 avatar Jun 05 '25 02:06 jyao1

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

twilfredo avatar Jun 06 '25 00:06 twilfredo

@steven-bellock to review this week.

steven-bellock avatar Jun 23 '25 14:06 steven-bellock

@steven-bellock , any other feedback? I plan to merge.

jyao1 avatar Jun 27 '25 03:06 jyao1

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.

steven-bellock avatar Jun 27 '25 21:06 steven-bellock