Two bugs were causing virtio_net TX timeouts in guest VMs:
1. inject_rx_frame used the source VM's memory mapping to access the
destination VM's vring descriptors. Fixed by making inject_rx_frame
a static method that uses the vring's own internal memory via a new
memory() accessor in VringState.
2. handle_event called read_kick() redundantly after the event loop
already consumed the eventfd, potentially blocking on a drained fd.
We temporarily use a local vnet library for debugging.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>