vhost-user-backend: SET_VRING_KICK not disabling the vring

This was introduced in 7f326dd314fdea0f98a19fa039c630b50deaec0b, but
doesn't work with qemu versions < 7.2. SET_FEATURES is received before
SET_VRING_KICK, we will enable the vrings in set_features() and disabled
them later in set_vring_kick().

Currently, the libvhostuser in qemu disables the vring upon receiving
RESET_OWNER, but that message is currently deprecated. There is not a
sane place to disable the vring, since according to the spec we can only
do that upon receiving RESET_OWNER (deprecated), RESET_DEVICE (currently
not supported in this crate), and SET_VRING_ENABLE.

The current state of the vhost-user spec is a mess, we need a more
formal spec that just a wall of english.

Signed-off-by: German Maglione <gmaglione@redhat.com>
1 file changed
tree: e11979585fb90e14cb4c6458f1510c30ad219c45
  1. .buildkite/
  2. .cargo/
  3. .github/
  4. vhost/
  5. vhost-user-backend/
  6. .gitignore
  7. .gitmodules
  8. Cargo.toml
  9. CODEOWNERS
  10. coverage_config_aarch64.json
  11. coverage_config_x86_64.json
  12. LICENSE
  13. LICENSE-BSD-3-Clause
  14. README.md
README.md

vhost

The vhost workspace hosts libraries related to the vhost and vhost-user protocols. It currently consists of the following crates:

  • vhost -> A pure rust library for vDPA, vhost and vhost-user.
  • vhost-user-backend -> It provides a framework to implement vhost-user backend services.