oxidecomputer / oxidecomputer/opte
Actions and other `NetworkImpl`-defined objects could expose simple K/V property reads
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 77
- Forks
- 11
- Avg merge
- 9d 20h
- Merged PRs (30d)
- 8
Description
If we want to know what VNI a given port operates on, opteadm won't really help us figure this out. The actions which are guaranteed to know this all reside in the overlay layer:
BRM42220057 # opteadm dump-layer -p opte1 overlay
Port opte1 - Layer overlay
======================================================================
Inbound Flows
----------------------------------------------------------------------
PROTO SRC IP SPORT/TY DST IP DPORT HITS ACTION
Outbound Flows
----------------------------------------------------------------------
PROTO SRC IP SPORT/TY DST IP DPORT HITS ACTION
Inbound Rules
----------------------------------------------------------------------
ID PRI HITS PREDICATES ACTION
0 1 98 * "Static: Decap"
1 2 0 * "Meta: mcast-vni-validator"
DEF -- 0 -- "deny"
Outbound Rules
----------------------------------------------------------------------
ID PRI HITS PREDICATES ACTION
0 1 117 * "Static: Encap"
DEF -- 0 -- "deny"
However, Static: Encap tells us nothing about what the action is programmed to do, what its parameters are, etc.
It would be nice if actions on a rule could list out their fixed propertes, analogous to dladm show-linkprop (potentially with a view towards being machine-readable if requested). In this scenario, we would want to query overlay/out/0:vni.
We could probably extend this to ports themselves having a K/V map to hold various optional facts the control plane may want to stash for other diagnostic tools to make use of. Generally we want to make things work such that we're not putting oxide-vpc specfic information into opteadm.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the opteadm dump-layer output and the NetworkImpl-defined actions described in the issue, focusing on how overlay/out/0 could expose action properties. Define how fixed properties and optional port key/value data should be represented and whether a machine-readable view is needed; done means a query such as overlay/out/0:vni reveals the programmed VNI without oxide-vpc-specific logic in opteadm.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, networking, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100