Skip to content
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

refactor(storage): combine frontend and backend messages #380

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

artek-koltun
Copy link
Contributor

resolves #376

@artek-koltun artek-koltun added the Storage APIs or code related to storage area label Oct 4, 2023
int64 trsvcid = 1 [(google.api.field_behavior) = REQUIRED];

// Destination fabrics endpoint
FabricsEndpoint dst = 1 [(google.api.field_behavior) = REQUIRED];

// Subsystem NQN
string subnqn = 2 [(google.api.field_behavior) = REQUIRED];
Copy link
Contributor Author

@artek-koltun artek-koltun Oct 4, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want to discuss a possibility to move subnqn from NvmePath into NvmeRemoteController. I see NvmeRemoteController as a view into a remote subsystem, which can be reached by means of multiple NvmePaths. However, 2 NvmePaths from a single NvmeRemoteController cannot lead to different subsystems, so, in my opinion, it would make sense to put subnqn into the controller to state a subsystem we want to reach by means of multiple paths.

The same about hostnqn. We can state our hostnqn when we define our view to the subsystem.

If we need subnqn and hostnqn for a path, we can get that information from a corresponding controller,w e can find by means of controller_name_ref

@benlwalker could you please comment?

storage/v1alpha1/backend_nvme_tcp.proto Outdated Show resolved Hide resolved
// see https://github.com/aip-dev/google.aip.dev/issues/1147 for field_behavior annotations
oneof path {
// Required for pcie transport type. Shall contain BDF
string pcie = 4 [(google.api.field_behavior) = OPTIONAL];
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we try to use PciEndpoint here for symmetry with frontend?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, absolutely

Copy link
Contributor Author

@artek-koltun artek-koltun Nov 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Added comments how PcieEndpoint values correspond to BDF and added domain_id. Pls take a look

@artek-koltun artek-koltun added the help wanted Extra attention is needed label Oct 4, 2023
@artek-koltun artek-koltun requested a review from a team October 4, 2023 08:36
@artek-koltun artek-koltun marked this pull request as ready for review October 4, 2023 08:37
@artek-koltun artek-koltun requested a review from a team as a code owner October 4, 2023 08:37
@artek-koltun artek-koltun changed the title refactor: combine frontend and backend messages refactor(storage): combine frontend and backend messages Oct 4, 2023
Copy link
Member

@glimchb glimchb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment inside on pcie end point
And I think we can finally remove
backend_nvme_pcie.proto
and rename the backend_nvme_tcp.proto to backend_nvme.proto


// Required for Nvme over fabrics transport types
FabricsPath fabrics = 5 [(google.api.field_behavior) = OPTIONAL];
}
}

// Represents Fabrics transport path parameters
message FabricsPath {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking we get rid of FabricsPath and use only FabricsEndpoint it is too confusing to have them both...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed. Now the field behavior annotations are a bit less restrictive, but it may be ok for us

Copy link
Contributor Author

@artek-koltun artek-koltun Nov 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

source_* members are moved to FabricsEndpoint, but would it make sense to move it to NvmeRemoteControlelr, since they are only backend related parameters?

@artek-koltun
Copy link
Contributor Author

And I think we can finally remove backend_nvme_pcie.proto and rename the backend_nvme_tcp.proto to backend_nvme.proto

Previously, #363 was created to address that change. Covered in #382

@glimchb
Copy link
Member

glimchb commented Oct 5, 2023

merged #382

@artek-koltun artek-koltun force-pushed the refactor-combine-frontend-and-backend-messages branch from 23d319f to 60cc80e Compare November 8, 2023 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed Storage APIs or code related to storage area
Projects
None yet
Development

Successfully merging this pull request may close these issues.

nvme: consider combining FabricsEndpoint and FabricsPath
2 participants