5 #include "hw/virtio/vhost-backend.h"
7 #define VHOST_NET_INIT_FAILED \
8 "vhost-net requested but could not be initialized"
11 typedef struct vhost_net VHostNetState
;
13 typedef struct VhostNetOptions
{
14 VhostBackendType backend_type
;
15 NetClientState
*net_backend
;
16 uint32_t busyloop_timeout
;
20 uint64_t vhost_net_get_max_queues(VHostNetState
*net
);
21 struct vhost_net
*vhost_net_init(VhostNetOptions
*options
);
23 int vhost_net_start(VirtIODevice
*dev
, NetClientState
*ncs
, int total_queues
);
24 void vhost_net_stop(VirtIODevice
*dev
, NetClientState
*ncs
, int total_queues
);
26 void vhost_net_cleanup(VHostNetState
*net
);
28 uint64_t vhost_net_get_features(VHostNetState
*net
, uint64_t features
);
29 void vhost_net_ack_features(VHostNetState
*net
, uint64_t features
);
31 bool vhost_net_virtqueue_pending(VHostNetState
*net
, int n
);
32 void vhost_net_virtqueue_mask(VHostNetState
*net
, VirtIODevice
*dev
,
34 int vhost_net_notify_migration_done(VHostNetState
*net
, char* mac_addr
);
35 VHostNetState
*get_vhost_net(NetClientState
*nc
);
37 int vhost_set_vring_enable(NetClientState
* nc
, int enable
);
39 uint64_t vhost_net_get_acked_features(VHostNetState
*net
);
41 int vhost_net_set_mtu(struct vhost_net
*net
, uint16_t mtu
);