Skip to content

[Feature Request] Generic vhost-user #5687

@DemiMarie

Description

Feature Request

Implement a generic vhost-user frontend device. This is an alternative to #4266, which is specifically about vhost-user-blk.

Describe the desired solution

It is possible to implement a vhost-user frontend that knows very little about the specific device being implemented. When compared to per-device-type frontends, a generic frontend reduces the amount of code needed and allows using device types that Firecracker would never support natively. The only requirement is that the backend is responsible for handling configuration space.

This opens up many additional use-cases for Firecracker without adding any additional complexity on the Firecracker side. As shown by cloud-hypervisor/cloud-hypervisor#7221, the generic vhost-user frontend is roughly the same size as the other frontends, but offers much more functionality. For instance, it can be used with SPDK’s vhost-user-blk backend or with virtiofsd.

Describe possible alternatives

Implement separate frontends for each supported vhost-user device type. This needs more code and is less flexible.

Additional context

I saw that #4266 was about implementing a vhost-user-blk frontend. As demonstrated by cloud-hypervisor/cloud-hypervisor#7221, a generic vhost-user frontend would support more device types, while possibly requiring less code.

Checks

  • Have you searched the Firecracker Issues database for similar requests?
  • Have you read all the existing relevant Firecracker documentation?
  • Have you read and understood Firecracker's core tenets?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority: LowIndicates that an issue or pull request should be resolved behind issues or pull requests labelled `Status: ParkedIndicates that an issues or pull request will be revisited later

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions