|
@@ -172,6 +172,17 @@ static void net_vhost_user_cleanup(NetClientState *nc)
|
|
qemu_purge_queued_packets(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)
|
|
static bool vhost_user_has_vnet_hdr(NetClientState *nc)
|
|
{
|
|
{
|
|
assert(nc->info->type == NET_CLIENT_DRIVER_VHOST_USER);
|
|
assert(nc->info->type == NET_CLIENT_DRIVER_VHOST_USER);
|
|
@@ -193,6 +204,8 @@ static NetClientInfo net_vhost_user_info = {
|
|
.cleanup = net_vhost_user_cleanup,
|
|
.cleanup = net_vhost_user_cleanup,
|
|
.has_vnet_hdr = vhost_user_has_vnet_hdr,
|
|
.has_vnet_hdr = vhost_user_has_vnet_hdr,
|
|
.has_ufo = vhost_user_has_ufo,
|
|
.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,
|
|
static gboolean net_vhost_user_watch(GIOChannel *chan, GIOCondition cond,
|