Skip to content

Conversation

@bnaecker
Copy link
Collaborator

  • Add dual-stack VPC private address configuration type and include it in the shared NetworkInterface type.
  • Add database model support for reading / writing the dual-stack NIC type to the database, handling serialization into optional fields.
  • Update all the callsites to handle the new dual-stack-aware type.
  • Add a bunch of conversions for the APIs which rely on that new type, of which there are many. This also adds the conversions and older types into the sled-agent-types crate, so they can be used in a few places that don't directly depend on the sled-agent-api crate itself, notably reconfigurator and nexus-inventory.
  • Update the sled-agent reconciler to deserialize previous versions of its sled-configuration ledgers, convert them, and write them out again as the new versions.
  • Updates the OPTE PortManager type with the new dual-stack support. This is only for private IP addresses, though. We still need some work to support OPTE ports with dual stack external addresses. This is about half of Enable dual-stack OPTE ports in the sled-agent #9247, the VPC-private part.
  • Closes Want dual-stack support for NICs between Nexus and sled-agent #9246

@bnaecker bnaecker marked this pull request as draft November 12, 2025 04:49
@bnaecker bnaecker force-pushed the dual-stack-internal-nic-types branch from 9d04b7a to 83a21bb Compare November 12, 2025 20:41
@bnaecker bnaecker marked this pull request as ready for review November 12, 2025 20:42
@bnaecker bnaecker force-pushed the dual-stack-internal-nic-types branch from 83a21bb to 2033231 Compare November 12, 2025 20:48
@bnaecker
Copy link
Collaborator Author

Thanks in advance to the reviewers. It turns out we use the NetworkInterface type basically everywhere, and so this change is uncomfortably large.

- Add dual-stack VPC private address configuration type and include it
  in the shared NetworkInterface type.
- Add database model support for reading / writing the dual-stack NIC
  type to the database, handling serialization into optional fields.
- Update all the callsites to handle the new dual-stack-aware type.
- Add a bunch of conversions for the APIs which rely on that new type,
  of which there are many. This also adds the conversions and older
  types into the `sled-agent-types` crate, so they can be used in a few
  places that don't directly depend on the `sled-agent-api` crate
  itself, notably reconfigurator and `nexus-inventory`.
- Update the sled-agent reconciler to deserialize previous versions of
  its sled-configuration ledgers, convert them, and write them out again
  as the new versions.
- Updates the OPTE `PortManager` type with the new dual-stack support.
  This is only for private IP addresses, though. We still need some work
  to support OPTE ports with dual stack external addresses. This is
  about half of #9247, the VPC-private part.
- Closes #9246
@bnaecker bnaecker force-pushed the dual-stack-internal-nic-types branch from 2033231 to fe87906 Compare November 12, 2025 20:49
@bnaecker
Copy link
Collaborator Author

I'll figure out how to resolve the conflicts with the multicast work on Monday.

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.

Want dual-stack support for NICs between Nexus and sled-agent

2 participants