Quoting from the definition of VHOST_USER_SET_PROTOCOL_FEATURES in
vhost-user.rst:

>   Only legal if feature bit ``VHOST_USER_F_PROTOCOL_FEATURES`` is present in
>   ``VHOST_USER_GET_FEATURES``.
> 
> .. Note::
>    Slave that reported ``VHOST_USER_F_PROTOCOL_FEATURES`` must support
>    this message even before ``VHOST_USER_SET_FEATURES`` was called.

To me, this could mean either of two things:

(1) If VHOST_USER_F_PROTOCOL_FEATURES hasn't been set, upon receiving
    VHOST_USER_SET_PROTOCOL_FEATURES, a backend should enable the
    protocol features immediately.

(2) If VHOST_USER_F_PROTOCOL_FEATURES hasn't been set, upon receiving
    VHOST_USER_SET_PROTOCOL_FEATURES, a backend should store those
    feature bits, but not actually consider them to be enabled until
    after VHOST_USER_SET_FEATURES has been received (presumably
    containing VHOST_USER_F_PROTOCOL_FEATURES).

The reason I bring this up is that QEMU appears to interpret it as (1),
while the vhost-user-net backend in Intel's cloud-hypervisor[1]
interprets it as (2).  So I'm looking for a clarification.

[1]: https://github.com/cloud-hypervisor/cloud-hypervisor

Thanks in advance.

Reply via email to