Skip to content

cyberus-technology/usbvfiod

Repository files navigation

Hercules CI

usbvfiod

usbvfiod is a Rust-based tool designed to enable USB device passthrough to Cloud Hypervisor virtual machines using the vfio-user protocol. Other VMMs might also work, but are currently not the main target.

This project is under active development. We are planning to work on this project in the following order:

  1. Validating our Assumptions (Done)
    • We are looking for suitable libraries to use and finalize our design.
  2. Towards USB Storage Passthrough (Done)
    • We build up a virtual XHCI controller and the necessary plumbing to pass-through USB devices from the host.
    • Our initial test target will be USB storage devices.
  3. Broaden Device Support (Done)
    • We broaden the set of USB devices we support and actively test.
    • Our current focus is enabling USB-2 devices and devices with interrupt endpoints.
  4. Hotplug Devices (Done)
    • We enable attach and detach of exposed devices during runtime.
  5. Stability & Error Recovery (Done)
    • We seek out points where we currently panic but should not have to panic.
  6. Windows Guest Support (🚧 Ongoing 🚧)
    • Enable all features required for the Windows xHCI driver to interact with devices through the controller.
  7. Everything Beyond
    • Many topics remain open. We stay flexible regarding upcoming features.
    • Missing features include isochronous endpoint support, non-Linux Host support, and support for other VMMs than Cloud Hypervisor.

If you want to use this code in production and need professional support, please get in touch.

Documentation

Find the overview of documentation here.

Funding

This open-source project was developed within the Edge Gateway Platform project and is sponsored by secunet Security Networks AG. This project has received public funding from the European Union NextGenerationEU within the Important Project of Common European Interest – Cloud Infrastructures and Services (IPCEI-CIS) under grant agreement 13IPC022.

Bundesministerium für Wirtschaft und Energie (BMWE)-EU and secunet funding logo

About

A tool for USB device pass-through using the vfio-user protocol.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

 
 
 

Contributors