vhost-user: support cross-endian vnet headers
vhost-user already has a way to communicate the endianness of the guest via the vring endianness messages. The vring endianness always matches the vnet header endianness so there is no need to do anything else in the backend. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1543851204-41186-9-git-send-email-pbonzini@redhat.com> Message-Id: <1550165756-21617-5-git-send-email-pbonzini@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
18658a3ced
commit
ba28889838
@ -172,6 +172,17 @@ static void net_vhost_user_cleanup(NetClientState *nc)
|
||||
qemu_purge_queued_packets(nc);
|
||||
}
|
||||
|
||||
static int vhost_user_set_vnet_endianness(NetClientState *nc,
|
||||
bool enable)
|
||||
{
|
||||
/* Nothing to do. If the server supports
|
||||
* VHOST_USER_PROTOCOL_F_CROSS_ENDIAN, it will get the
|
||||
* vnet header endianness from there. If it doesn't, negotiation
|
||||
* fails.
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool vhost_user_has_vnet_hdr(NetClientState *nc)
|
||||
{
|
||||
assert(nc->info->type == NET_CLIENT_DRIVER_VHOST_USER);
|
||||
@ -193,6 +204,8 @@ static NetClientInfo net_vhost_user_info = {
|
||||
.cleanup = net_vhost_user_cleanup,
|
||||
.has_vnet_hdr = vhost_user_has_vnet_hdr,
|
||||
.has_ufo = vhost_user_has_ufo,
|
||||
.set_vnet_be = vhost_user_set_vnet_endianness,
|
||||
.set_vnet_le = vhost_user_set_vnet_endianness,
|
||||
};
|
||||
|
||||
static gboolean net_vhost_user_watch(GIOChannel *chan, GIOCondition cond,
|
||||
|
Loading…
Reference in New Issue
Block a user