From 0af4abe6e3e44ce1a588c17bc694ab11bcf0b025 Mon Sep 17 00:00:00 2001 From: vasilito Date: Thu, 9 Jul 2026 12:54:18 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20update=20Phase=201/6=20status=20?= =?UTF-8?q?=E2=80=94=20multi-NIC=20+=20virtual=20devices?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- local/docs/NETWORKING-IMPROVEMENT-PLAN.md | 31 ++++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/local/docs/NETWORKING-IMPROVEMENT-PLAN.md b/local/docs/NETWORKING-IMPROVEMENT-PLAN.md index e027ac7c08..dd1d84401e 100644 --- a/local/docs/NETWORKING-IMPROVEMENT-PLAN.md +++ b/local/docs/NETWORKING-IMPROVEMENT-PLAN.md @@ -316,6 +316,14 @@ Network-critical components (relibc, kernel, base) have all required commits pre ### Phase 1: Multi-NIC and Driver Feature Surface +**Status: 🟡 PARTIALLY COMPLETE (updated 2026-07-09)** + +`Smolnetd::new()` now accepts `Vec<(Fd, EthernetAddress, String)>` — +multiple Ethernet adapters with MAC addresses. The single-NIC FIXME +in main.rs has been removed (R59). + +**Original plan below:** + **Goal:** Remove the single-NIC FIXME and give the stack visibility into driver capabilities. **Duration:** 3–4 weeks. @@ -689,12 +697,27 @@ validate the stack on real NICs. ### Phase 6: Forwarding, Virtual Devices, and Advanced Features +**Status: 🟡 IN PROGRESS (updated 2026-07-09)** + **Virtual devices status (2026-07-09):** - VLAN: ✅ Parent device integration (R63), tagged frames forwarded to parent. -- Bridge: ✅ MAC learning, aging, STP BPDU handling. -- TUN: ✅ Scheme interface, event loop wired (R2). -- VXLAN/GRE/IPIP: Implemented as device types, not yet functional (require - parent device integration — same pattern as VLAN R63 fix). +- Bridge: ✅ MAC learning, aging, STP BPDU handling, 5 unit tests +- TUN: ✅ Scheme interface, event loop wired (R2) +- VXLAN: ✅ Encapsulation/decapsulation, parent forwarding (R64) +- GRE: ✅ Encapsulation/decapsulation with key, parent forwarding (R64) +- IPIP: ✅ IP-in-IP tunnel, parent forwarding (R64) +- Bond: ✅ Round-robin slave forwarding with statistics + +**Remaining VM work:** +- VXLAN/GRE/IPIP inbound RX wiring: decapsulated packets need to be + re-injected into the parent's RX path (requires `DeviceList` integration + at the recv path, currently works only through external `push_received()`) + +**Forwarding status:** +- IPv4 forwarding: ✅ through `forward_packets()` +- IPv6 forwarding: ⚠️ `forward_packets` only processes IPv4; IPv6 skips + to local delivery +- IP forwarding toggle: ✅ `sysctl/net/ipv4/ip_forward` **Original plan below:**