oxidecomputer / oxidecomputer/opte

Should be able to export and import flowtable state during migration

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

Nobody has claimed this yet.

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

Description

During live instance migration, we currently setup an identical OPTE port on the new sled with regard to firewall rules, external IPs, etc. However this loses several pieces of stateful information currently encoded in the flowtable:

  • Stateful firewall entries needed for pairwise allow,
  • Temporary port allocations for SNAT'd flows,
  • External IP affinity for each flow.

Some of these can be regenerated depending on how hosts behave, but otherwise these will impact VPC-external traffic. To minimise this, we want to ideally carry this state over to the new sled once execution stops.

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 tracing the flowtable state used by the OPTE port during live instance migration. Identify how execution stops and how the replacement port is initialized, then determine how stateful firewall entries, temporary SNAT port allocations, and external IP affinity can be exported and restored. Done means those state items survive migration and external traffic is minimally disrupted.

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
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.