Skip to content

TPT-4463: Support RDMA VPC interfaces #988

Open
yec-akamai wants to merge 4 commits into
proj/rdma-interfacesfrom
TPT-4463/support-rdma-interfaces
Open

TPT-4463: Support RDMA VPC interfaces #988
yec-akamai wants to merge 4 commits into
proj/rdma-interfacesfrom
TPT-4463/support-rdma-interfaces

Conversation

@yec-akamai

Copy link
Copy Markdown
Contributor

📝 Description

Add support to specify VPC type and RDMA VPC. Allow to create the RDMA intercase with the instance creation. Allow to update and delete the RDMA interface with the standalone interface endpoints.

✔️ How to Test

make test-unit

Copilot AI review requested due to automatic review settings June 8, 2026 20:35
@yec-akamai yec-akamai requested review from a team as code owners June 8, 2026 20:35
@yec-akamai yec-akamai added the new-feature for new features in the changelog. label Jun 8, 2026
@yec-akamai yec-akamai requested review from jriddle-linode and psnoch-akamai and removed request for a team June 8, 2026 20:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds first-class support for GPUDirect RDMA VPCs by introducing a VPC type enum, surfacing vpc_type on VPC/subnet responses and VPC create requests, and enabling RDMA VPC interface configuration via instance-create and interface update endpoints.

Changes:

  • Add VPCType (regular / rdma) and plumb vpc_type through VPC and subnet models + VPC create options.
  • Add RDMA VPC interface models/options (rdma_vpc) and support specifying RDMA interfaces during instance creation via a new LinodeInstanceInterfaces field.
  • Add unit tests + fixtures covering RDMA VPCs and RDMA interfaces.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
vpc.go Introduces VPCType and adds vpc_type to VPC + VPC create options.
vpc_subnet.go Adds vpc_type to VPCSubnet model for responses.
regions.go Adds a new region capability constant for GPUDirect RDMA.
interfaces.go Adds rdma_vpc to interface models and adds RDMA create/update option structs.
instances.go Adds LinodeInstanceInterfaces and extends marshaling conflict checks to support RDMA interface creation on instance create.
test/unit/rdma_vpc_test.go Adds unit tests for RDMA VPCs and RDMA interface behavior, including instance-create marshaling.
test/unit/fixtures/*.json Adds fixtures for RDMA VPC/interface unit tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread interfaces.go
Comment thread test/unit/fixtures/instance_create_with_rdma_interfaces.json Outdated
Comment thread test/unit/rdma_vpc_test.go
Comment thread test/unit/rdma_vpc_test.go
Comment thread test/unit/rdma_vpc_test.go
Comment thread interfaces.go Outdated
Comment thread interfaces.go Outdated
Comment thread instances.go
Comment on lines +278 to +280
if i.Interfaces != nil && i.LinodeInstanceInterfaces != nil {
return nil, fmt.Errorf("fields Interfaces and LinodeInstanceInterfaces cannot be specified together")
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The comment here is because we compare Interfaces and LinodeInstanceInterfaces are set at the same time.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@yec-akamai, I think that Copilot's comment was referring to lines 259-261 because it is not updated - currently the function compares 3 values (Interfaces, LinodeInterfaces, LinodeInstanceInterfaces), instead of previous 2 (Interfaces, LinodeInterfaces)

@mawilk90 mawilk90 requested review from mawilk90 and removed request for psnoch-akamai June 9, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-feature for new features in the changelog.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants