docs: update Phase 1/6 status — multi-NIC + virtual devices

This commit is contained in:
2026-07-09 12:54:18 +03:00
parent 095055df4b
commit 0af4abe6e3
+27 -4
View File
@@ -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:** 34 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:**