oxidecomputer / oxidecomputer/omicron

External IPs should store the type of their parent as an enum

Open
#5,228 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

database networking
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Today, we're differentiating the type of an external IP's parent (service or instance) using the is_service flag. The communication probe PR (#4585) adds a new class of entity which an IP can be owned and used by, and stores this using the is_probe flag.

When we add additional networking objects which could own one or more external IPs (e.g., load balancers, Internet gateways) we will want to represent the type of an IP's current owner using a single enum.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing external IP representation and how the is_service and is_probe flags are used, then read communication probe PR #4585 for the newer ownership case. Define the enum around the currently supported parent types and verify that existing service, instance, and probe ownership remain representable.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.