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.