oxidecomputer / oxidecomputer/opte

Need to track NAT exhaustion

Open
#318 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
77
Forks
11
Avg merge
9d 20h
Merged PRs (30d)
8

Description

One of the ways a flow can fail is due to resource exhaustion. The best current example is NAT exhaustion, e.g., running out of ports in a NAT Pool for making outbound connections. Here is where we handle the generic failure of a layer to generate an action descriptor. We need to hook in some basic statistics about things like NAT exhaustion. That could be directly at the above location, or possibly here which is where the Port object itself would get an error related to resource exhaustion from processing an inbound packet (either using a cached UFT entry or processing each layer serially).

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 reading the generic layer failure handling in opte/src/engine/layer.rs near line 949 and the Port error path in opte/src/engine/port.rs near line 1653. Trace how resource-exhaustion errors from inbound packet processing reach those locations, then determine where basic NAT-exhaustion statistics should be recorded. Done means NAT Pool port exhaustion is represented in the requested statistics.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.