-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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?