Skip to content

Conversation

@dreamliner787-9
Copy link
Contributor

@dreamliner787-9 dreamliner787-9 commented Oct 9, 2025

This PR adds:

  • Networking UIO driver to libvmm to allow creation of Ethernet driver VMs (maybe WiFi/Cellular in the future?)
  • A patched echo server example that uses an Ethernet driver VM.

The basic idea is:

  • The sDDF network control, data regions and notification from virtualisers are mapped into Linux userspace via UIO.
  • A promiscuous socket is opened to sniff all incoming frames. When a frame comes through from the socket, we enqueue the data into the appropriate sDDF queues and fault on a pre-determined address so the VMM can notify the RX virtualiser.
  • When a client wants to transmit data, we will get TX virt notifications via UIO, then we simply write the data out into the socket.

There is a prerequisite PR to this PR: au-ts/microkit_sdf_gen#25

A design issue to be aware of: the guest needs to know how many network clients there are and map their TX data regions into Linux userspace due to lack of DMA. In addition, the guest needs to know the physical address of data regions to deduct it from the DMA address it receives from the virtualisers to obtain an offset.

Currently this is worked around by patching the virtualisers config file into the VMM which contains the necessary information. I propose that we properly fix this by adding some sort of config flag to the virtualisers to pass a data offset rather than a DMA address.

UDP Performance:
Requested_Throughput,Receive_Throughput,Send_Throughput,Packet_Size,Minimum_RTT,Average_RTT,Maximum_RTT,Stdev_RTT,Median_RTT,Bad_Packets,Idle_Cycles,Total_Cycles
1000000000,17550188,999999918,1472,60702,586044,820693,82082.59,578942,0,0,0

TCP Performance:
Requested_Throughput,Receive_Throughput,Send_Throughput,Packet_Size,Minimum_RTT,Average_RTT,Maximum_RTT,Stdev_RTT,Median_RTT,Bad_Packets,Idle_Cycles,Total_Cycles
1000000000,25179006,25178369,1460,107794,277407,513069,68840.15,273578,0,0,0

Checklist to get this merged:

@dreamliner787-9 dreamliner787-9 force-pushed the eth_uio_rebased_new_2025 branch from f45bd52 to 71eeb6b Compare October 9, 2025 05:04
Signed-off-by: Bill Nguyen <[email protected]>
@dreamliner787-9 dreamliner787-9 force-pushed the eth_uio_rebased_new_2025 branch from 71eeb6b to ecd3666 Compare October 9, 2025 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants