microsoft / microsoft/openvmm

Define a canonical, bound IPv4 egress policy

Open
#4,428 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1.9k
Forks
238
Avg merge
1d 15h
Merged PRs (30d)
100

Description

Tracking issue: MicroVM support and private snapshot restore.

Motivation

A sandbox network attachment needs an explicit description of permitted IPv4
egress. Configuration should have one validated representation and an unambiguous
binding to the network identity it governs, so creation and restore cannot apply
different interpretations of the same policy.

Proposed Scope

  • Introduce a reusable IPv4 egress-policy resource and validation API.
  • Define accepted inputs, canonical representation, and the identity to which a
    validated policy is bound.
  • Reject malformed, unsupported, or ambiguous input before a consumer uses it to
    authorize an attachment.
  • Define how policy resources are compared and transported without losing their
    binding or validation requirements.
  • Keep this PR focused on the policy contract, independent of a specific network
    device or snapshot transaction.

Acceptance Criteria

  • Equivalent supported inputs produce equivalent canonical policies.
  • Tests cover address and prefix boundaries, invalid inputs, and the defined
    behavior for empty or conflicting rules.
  • A policy cannot silently be reused for an incompatible network binding.
  • Resource round trips preserve the policy and its binding, with validation
    enforced at the appropriate input boundary.
  • Documentation states the allow/deny semantics and unsupported policy forms
    without implying that defining a resource alone enforces it at runtime.

Dependencies

No feature prerequisites. Network attachment reconstruction will consume this
contract separately.

Non-Goals

This issue does not add IPv6 policy, a general-purpose firewall, Consomme flow
limits, or network snapshot persistence.

Contributor guide

No contributing guide indexed for this repository

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 00-microvm.md and the issue's proposed scope to establish how the IPv4 egress-policy resource fits the microVM and private snapshot work. Define the accepted inputs, canonical form, network binding, validation boundary, comparison and round-trip behavior, then use the acceptance criteria to verify boundary, invalid-input, conflict, and documentation coverage.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.