## Summary Provide a paravirtualized network interface using virtio-net so Rustalis can exchange packets in QEMU without depending on a physical NIC driver. ## Scope - Discover supported virtio-net PCI devices through the existing PCI/driver registry. - Negotiate required virtio features and configure receive/transmit virtqueues. - Validate descriptor chains and packet lengths before accessing buffers. - Connect the driver to the network-device and packet-buffer abstractions. - Define queue reset and device-error handling. ## Acceptance criteria - Feature negotiation rejects unsupported required features cleanly. - Host tests cover descriptor validation and queue bookkeeping. - QEMU integration instructions describe the required network device configuration. - RX/TX failures are reported without corrupting queue state or leaking buffers. ## Engineering constraints - Keep the kernel Rust-first, `no_std`, and x86_64-compatible. - Integrate with existing Rustalis subsystem interfaces; do not create a parallel implementation. - Document ownership, initialization order, failure behavior, and any architecture-specific unsafe invariants. - Add host-side tests for hardware-independent logic and QEMU coverage for hardware paths where practical. - Do not claim verification that has not actually been run.
Activity