Skip to content

Add dual-stack support to the IncompleteNetworkInterface #9244

@bnaecker

Description

@bnaecker

We use a helper type IncompleteNetworkInterface in a bunch of places to describe the properties we'd like an eventual NIC to have. For example, that has a field ip, which is an Option<IpAddr> -- None means we'd like to auto-assign a VPC-private address and Some(addr) means we'd like to use an explicit address.

This needs to be extended to support dual-stack NICs, allowing an IP address of one or both versions. We probably want to change the existing optional type to be a bit richer, letting us express three choices:

  • No IP at all
  • Auto-assign an IP
  • Use an explicit IP

We can then use that new type for the existing ip field and a new ipv6 field or similar. We need to modify the constructors to enforce whatever invariants we want, such as ensuring at least one IP address of either family.

  • Add enum for more fine-grained control over IP allocation for either family (none, auto, explicit)
  • Add field for IPv6, modify existing field to be explicitly IPv4
  • Update constructors for plus call sites, of which there are...many

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions