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 int vhost_net_get_config(struct vhost_net
*net
, uint8_t *config
,
34 int vhost_net_set_config(struct vhost_net
*net
, const uint8_t *data
,
35 uint32_t offset
, uint32_t size
, uint32_t flags
);
36 bool vhost_net_virtqueue_pending(VHostNetState
*net
, int n
);
37 void vhost_net_virtqueue_mask(VHostNetState
*net
, VirtIODevice
*dev
,
39 int vhost_net_notify_migration_done(VHostNetState
*net
, char* mac_addr
);
40 VHostNetState
*get_vhost_net(NetClientState
*nc
);
42 int vhost_set_vring_enable(NetClientState
* nc
, int enable
);
44 uint64_t vhost_net_get_acked_features(VHostNetState
*net
);
46 int vhost_net_set_mtu(struct vhost_net
*net
, uint16_t mtu
);