netvalidate

command
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2026 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Overview

Headless go-virtio net validate harness: boots tamago/amd64 under QEMU, drives a real virtio-net-pci device through the go-virtio/net driver, and performs a TX (and, if the host peer plays along, RX) frame round-trip against a host-side raw-frame peer.

Unlike blk (self-contained) and console (host echoes), net REQUIRES a host observer: a virtio-net TX frame leaves the guest and lands on the QEMU netdev backend; only the host can confirm it arrived. run-net.sh wires a `-netdev dgram` backend to a tiny Python peer that:

  1. receives the guest's TX frame as a RAW Ethernet frame (no length prefix on the dgram backend), checks our magic EtherType + payload, and reports TX-OBSERVED on its log; then
  2. sends a RAW response frame back so the guest's ReceiveFrame path is exercised too (best-effort: if RX doesn't complete under TCG the harness still PASSES on the TX observation and reports the RX wall).

The guest prints NET-VALIDATE: ... lines over the SERIAL console (COM1, a device separate from the virtio-net under test). The TX verdict is the guest's own "frame handed to device" plus the HOST's TX-OBSERVED line (run-net.sh cross-checks both). RX is asserted in-guest when a frame comes back.

Like blk/console, QEMU's virtio-net-pci defaults transitional (legacy DID 0x1000); run-net.sh passes disable-legacy=on so the device advertises the modern DID 0x1041 the modern-only driver (pci.Probe for 0x1041) requires.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL