oxidecomputer / oxidecomputer/opte

`InnerFlowId` used by a port/layer/flowtable should be generic

Open
#754 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

The InnerFlowId type is itself a generic 5-tuple, and probably applicable to most NetworkImpls that OPTE would conceivably want to support. We want to get to the point where this is an associated type, probably having a reasonable set of trait bounds (Hash, Copy, Eq, ...).

https://github.com/oxidecomputer/opte/blob/61aa21ddc13beafe5e3c3240237a54721f113cac/lib/opte/README.adoc?plain=1#L109-L113

We need to be sure that stateful rule implementations / header transformation generators within a given NetworkImpl can correctly assume that they are receiving their own FlowId type from packet metadara, rather than the generic variant.

Related to #108.

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 the linked lib/opte/README.adoc section, then trace InnerFlowId through the port, layer, and flowtable components and the NetworkImpl abstraction. Determine how stateful rule implementations and header transformation generators receive flow metadata. Done means NetworkImpl can provide its own FlowId type with suitable trait bounds and those consumers use that type consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.