Skip to content

feat(proto): add TransportType (TCP/RDMA) to spdkrpc + imrpc - #121

Open
abonillabeeche wants to merge 1 commit into
longhorn:mainfrom
abonillabeeche:rdma-transport
Open

abonillabeeche wants to merge 1 commit into
longhorn:mainfrom
abonillabeeche:rdma-transport

Conversation

@abonillabeeche

@abonillabeeche abonillabeeche commented Aug 20, 2026 •

Copy link
Copy Markdown

Issue longhorn/longhorn#13796

Adds a TransportType enum (TRANSPORT_TYPE_TCP = 0, TRANSPORT_TYPE_RDMA = 1) to imrpc and spdkrpc, and a transport_type field on:

Regenerated Go and Python bindings are included (make generate_grpc). TCP is the zero value, so older peers keep today's behavior.

Merge order: #121 -> longhorn/go-spdk-helper#308 -> longhorn/longhorn-spdk-engine#654 -> longhorn/longhorn-instance-manager#1616 -> longhorn/longhorn-manager#5107. longhorn/dep-versions#216 (build SPDK with RDMA) and the chart change longhorn/longhorn#13797 are independent. Each downstream PR only needs a go.mod/vendor bump once the one above it is merged; the branches are rebased on current master/main.

@abonillabeeche abonillabeeche changed the title proto: add DataEngineTransport (TCP/RDMA) to spdkrpc + imrpc feat(proto): add DataEngineTransport (TCP/RDMA) to spdkrpc + imrpc Aug 20, 2026
abonillabeeche added a commit to abonillabeeche/longhorn-spdk-engine that referenced this pull request Aug 22, 2026
Rename the struct field to TransportType on Engine and Replica and the
client-method params to transportType, and consume the renamed
spdkrpc.TransportType enum. No behavior change.

Ref: longhorn/longhorn#13796
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Signed-off-by: Alejandro Bonilla <[email protected]>
abonillabeeche added a commit to abonillabeeche/longhorn-instance-manager that referenced this pull request Aug 22, 2026
Consume the renamed imrpc/spdkrpc TransportType enum and rename the
IM-side field/params and the IM->SPDK conversion helper accordingly.
No behavior change.

Ref: longhorn/longhorn#13796
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Signed-off-by: Alejandro Bonilla <[email protected]>
abonillabeeche added a commit to abonillabeeche/longhorn-manager that referenced this pull request Aug 22, 2026
The v2 proto enum was renamed DataEngineTransport -> TransportType in
longhorn/types#121. Adapt at the instance-manager client boundary: the
generated imrpc type is now imrpc.TransportType and the IM client request
field is TransportType. longhorn-manager keeps its own DataEngineTransport
type and VolumeSpec field name (this repo's convention), converting to the
renamed enum in toIMRPCDataEngineTransport and setting the renamed IM
client field. No behavior change.

Ref: longhorn/longhorn#13796
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Signed-off-by: Alejandro Bonilla <[email protected]>
@abonillabeeche abonillabeeche changed the title feat(proto): add DataEngineTransport (TCP/RDMA) to spdkrpc + imrpc feat(proto): add TransportType (TCP/RDMA) to spdkrpc + imrpc Aug 22, 2026
Add a TransportType enum (TCP=0 default, RDMA=1) selecting the NVMe-oF
transport of the internal engine<->replica data fabric of a v2 volume,
and thread a transport_type field through:
- spdkrpc.EngineCreateRequest (field 15) and ReplicaCreateRequest (field 7)
- imrpc.SpdkInstanceSpec (field 17)

Mirrors the DataLayoutType precedent. Unset (0) == TCP preserves the
behavior of all existing volumes and older peers.

Ref: longhorn/longhorn#13796

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Alejandro Bonilla <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant