oxidecomputer / oxidecomputer/omicron

Require encompassing pool type address lot to create an ip pool.

Open
#3,448 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

RFD 267 talks about integrating with a customer's network. Central to that is the concept of address lots to communicate usable addresses. These address lots can be of different kinds/type but the pool type In particular indicates that an address lot is to be bound to an IP pool. Specifically, the RFD says:

Once these address blocks are created. Addresses within these blocks may be used for things like rack switch addresses and ip-pools. The Oxide platform tracks the use of these addresses to make sure that they are not used in an inconsistent way such as assigning the same address twice or trying to use an address that is not in an address block.

The DB models and APIs for interacting with address lots were added in #2645 but as noted in the PR:

  • IP pools are not currently being tied to an address lot and they should be.

Without this, right now there's nothing to stop one from creating an invalid IP Pool, i.e. it might not be routed properly.

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 with RFD 267's address-lot rules and review the database models and APIs introduced in issue #2645. Trace IP pool creation to determine where the encompassing pool-type address lot must be checked. Done means an IP pool cannot be created without a valid encompassing pool address lot, preventing unroutable configurations.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.