oxidecomputer / oxidecomputer/opte

Want prefix margin support

Open
#49 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

At some point we will probably want the ability for an OPTE/xde client to negotiate a prefix margin for its outbound packets/mblks. Such a capability allows one to a) avoid additional allocation in the OPTE layer and b) OPTE could of course create its own mblk header pool; but by having the client create the margin we can keep everything in one mblk which may allow us to add additional optimizations down the stack.

For example, could we add an mblk flag to indicate to downstream consumers that all data is in one mblk and use optimized functions for any needed header parsing of their own? Specifically I'm thinking of things like mac_ether_offload_info() which have to greatly complicate their code to guard against chained packets. That said, why not go one step further and have OPTE provide this MEOI data by attaching it to the mblk somehow? That brings up a large discussion around mblk changes, but it's worth considering as it allows us to remove redundant parsing work.

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

Begin by tracing the OPTE/xde client outbound packet and mblk path, then inspect the downstream mac_ether_offload_info() handling mentioned in the issue. The proposal spans prefix negotiation, mblk flags or metadata, and parsing optimizations, so the first milestone is agreeing on a focused design and scope; done would require an accepted implementation and tests for the chosen behavior.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.