Go to file
Harshavardhan Unnibhavi e20698695b vhost-user-vsock: virtio-vsock device emulation
This commit introduces a vhost-user-vsock device that enables
communicaton between an application running in the guest i.e
inside a VM and an application running on the host i.e outside
the VM. The device exposes unix sockets to which the VMM and
host-side applications connect to. Applications in the guest
communicate over VM sockets. Applicaitons on the host connect to
the unix socket i.e communicate over AF_UNIX sockets.

Signed-off-by: Harshavardhan Unnibhavi <harshanavkis@gmail.com>
[sgarzare: rebased, updated Cargo.lock, updated clap version to
 avoid build issues, and fixed clap issues with the new version]
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-12 14:21:54 +02:00
.cargo Initial commit 2021-05-26 10:18:40 +03:00
.github dependabot: Allow updating dependencies 2021-09-06 12:54:53 +05:30
gpio Update virtio-queue, vhost-user-backend and vm-memory 2022-09-20 16:12:48 +05:30
i2c Update virtio-queue, vhost-user-backend and vm-memory 2022-09-20 16:12:48 +05:30
rng Update virtio-queue, vhost-user-backend and vm-memory 2022-09-20 16:12:48 +05:30
rust-vmm-ci@5f36cc9604 build(deps): bump rust-vmm-ci from 258161e to 5f36cc9 2022-09-19 04:04:58 +00:00
vsock vhost-user-vsock: virtio-vsock device emulation 2022-10-12 14:21:54 +02:00
.gitignore Add .gitignore 2021-08-19 09:52:14 +03:00
.gitmodules Initial commit 2021-05-26 10:18:40 +03:00
Cargo.lock vhost-user-vsock: virtio-vsock device emulation 2022-10-12 14:21:54 +02:00
Cargo.toml vhost-user-vsock: virtio-vsock device emulation 2022-10-12 14:21:54 +02:00
CODEOWNERS fix CODEOWNERS file 2022-02-15 17:39:39 +02:00
coverage_config_x86_64.json gpio: Update Cargo.lock and coverage score 2022-04-04 12:38:51 +05:30
LICENSE-APACHE Initial commit 2021-05-26 10:18:40 +03:00
README.md vhost-user-vsock: virtio-vsock device emulation 2022-10-12 14:21:54 +02:00

vhost-device

Design

This repository hosts various 'vhost-user' device backends in their own crates. See their individual README.md files for specific information about those crates.

Here is the list of device backends that we support:

Testing and Code Coverage

Like the wider rust-vmm project we expect new features to come with comprehensive code coverage. However as a multi-binary repository there are cases where avoiding a drop in coverage can be hard and an exception to the approach is allowable. These are:

  • adding a new binary target (aim at least 60% overall coverage)
  • expanding the main function (a small drop is acceptable)

However any new feature added to an existing binary should not cause a drop in coverage. The general aim should be to always improve coverage.

Separation of Concerns

The binaries built by this repository can be run with any VMM which can act as a vhost-user frontend. Typically they have been tested with QEMU although the rust-vmm project does provide a vhost-user frontend crate for rust based VMMs.

While it's possible to implement all parts of the backend inside the vhost-device workspace consideration should be given to separating the VirtQueue handling and response logic to a crate in vm-virtio devices. This way a monolithic rust-vmm VMM implementation can reuse the core logic to service the virtio requests directly in the application.