17b28c615SPaolo Bonzini /*
27b28c615SPaolo Bonzini * vhost-net support
37b28c615SPaolo Bonzini *
47b28c615SPaolo Bonzini * Copyright Red Hat, Inc. 2010
57b28c615SPaolo Bonzini *
67b28c615SPaolo Bonzini * Authors:
77b28c615SPaolo Bonzini * Michael S. Tsirkin <mst@redhat.com>
87b28c615SPaolo Bonzini *
97b28c615SPaolo Bonzini * This work is licensed under the terms of the GNU GPL, version 2 or later.
107b28c615SPaolo Bonzini * See the COPYING file in the top-level directory.
117b28c615SPaolo Bonzini */
127b28c615SPaolo Bonzini
137b28c615SPaolo Bonzini #include "qemu/osdep.h"
147b28c615SPaolo Bonzini #include "net/net.h"
157b28c615SPaolo Bonzini #include "net/tap.h"
167b28c615SPaolo Bonzini #include "net/vhost-user.h"
177b28c615SPaolo Bonzini
187b28c615SPaolo Bonzini #include "hw/virtio/virtio-net.h"
197b28c615SPaolo Bonzini #include "net/vhost_net.h"
207b28c615SPaolo Bonzini #include "qemu/error-report.h"
217b28c615SPaolo Bonzini
227b28c615SPaolo Bonzini
vhost_net_get_max_queues(VHostNetState * net)237b28c615SPaolo Bonzini uint64_t vhost_net_get_max_queues(VHostNetState *net)
247b28c615SPaolo Bonzini {
257b28c615SPaolo Bonzini return 1;
267b28c615SPaolo Bonzini }
277b28c615SPaolo Bonzini
vhost_net_init(VhostNetOptions * options)287b28c615SPaolo Bonzini struct vhost_net *vhost_net_init(VhostNetOptions *options)
297b28c615SPaolo Bonzini {
307b28c615SPaolo Bonzini error_report("vhost-net support is not compiled in");
317b28c615SPaolo Bonzini return NULL;
327b28c615SPaolo Bonzini }
337b28c615SPaolo Bonzini
vhost_net_start(VirtIODevice * dev,NetClientState * ncs,int data_queue_pairs,int cvq)347b28c615SPaolo Bonzini int vhost_net_start(VirtIODevice *dev,
357b28c615SPaolo Bonzini NetClientState *ncs,
3605ba3f63SJason Wang int data_queue_pairs, int cvq)
377b28c615SPaolo Bonzini {
387b28c615SPaolo Bonzini return -ENOSYS;
397b28c615SPaolo Bonzini }
vhost_net_stop(VirtIODevice * dev,NetClientState * ncs,int data_queue_pairs,int cvq)407b28c615SPaolo Bonzini void vhost_net_stop(VirtIODevice *dev,
417b28c615SPaolo Bonzini NetClientState *ncs,
4205ba3f63SJason Wang int data_queue_pairs, int cvq)
437b28c615SPaolo Bonzini {
447b28c615SPaolo Bonzini }
457b28c615SPaolo Bonzini
vhost_net_cleanup(struct vhost_net * net)467b28c615SPaolo Bonzini void vhost_net_cleanup(struct vhost_net *net)
477b28c615SPaolo Bonzini {
487b28c615SPaolo Bonzini }
497b28c615SPaolo Bonzini
vhost_net_get_features(struct vhost_net * net,uint64_t features)507b28c615SPaolo Bonzini uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t features)
517b28c615SPaolo Bonzini {
527b28c615SPaolo Bonzini return features;
537b28c615SPaolo Bonzini }
547b28c615SPaolo Bonzini
vhost_net_get_config(struct vhost_net * net,uint8_t * config,uint32_t config_len)5538140cc4SCindy Lu int vhost_net_get_config(struct vhost_net *net, uint8_t *config,
5638140cc4SCindy Lu uint32_t config_len)
5738140cc4SCindy Lu {
5838140cc4SCindy Lu return 0;
5938140cc4SCindy Lu }
vhost_net_set_config(struct vhost_net * net,const uint8_t * data,uint32_t offset,uint32_t size,uint32_t flags)6038140cc4SCindy Lu int vhost_net_set_config(struct vhost_net *net, const uint8_t *data,
6138140cc4SCindy Lu uint32_t offset, uint32_t size, uint32_t flags)
6238140cc4SCindy Lu {
6338140cc4SCindy Lu return 0;
6438140cc4SCindy Lu }
6538140cc4SCindy Lu
vhost_net_ack_features(struct vhost_net * net,uint64_t features)667b28c615SPaolo Bonzini void vhost_net_ack_features(struct vhost_net *net, uint64_t features)
677b28c615SPaolo Bonzini {
687b28c615SPaolo Bonzini }
697b28c615SPaolo Bonzini
vhost_net_get_acked_features(VHostNetState * net)707b28c615SPaolo Bonzini uint64_t vhost_net_get_acked_features(VHostNetState *net)
717b28c615SPaolo Bonzini {
727b28c615SPaolo Bonzini return 0;
737b28c615SPaolo Bonzini }
747b28c615SPaolo Bonzini
vhost_net_virtqueue_pending(VHostNetState * net,int idx)757b28c615SPaolo Bonzini bool vhost_net_virtqueue_pending(VHostNetState *net, int idx)
767b28c615SPaolo Bonzini {
777b28c615SPaolo Bonzini return false;
787b28c615SPaolo Bonzini }
797b28c615SPaolo Bonzini
vhost_net_virtqueue_mask(VHostNetState * net,VirtIODevice * dev,int idx,bool mask)807b28c615SPaolo Bonzini void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev,
817b28c615SPaolo Bonzini int idx, bool mask)
827b28c615SPaolo Bonzini {
837b28c615SPaolo Bonzini }
847b28c615SPaolo Bonzini
vhost_net_config_pending(VHostNetState * net)85*8aab0d1dSCindy Lu bool vhost_net_config_pending(VHostNetState *net)
86*8aab0d1dSCindy Lu {
87*8aab0d1dSCindy Lu return false;
88*8aab0d1dSCindy Lu }
89*8aab0d1dSCindy Lu
vhost_net_config_mask(VHostNetState * net,VirtIODevice * dev,bool mask)90*8aab0d1dSCindy Lu void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask)
91*8aab0d1dSCindy Lu {
92*8aab0d1dSCindy Lu }
93*8aab0d1dSCindy Lu
vhost_net_notify_migration_done(struct vhost_net * net,char * mac_addr)947b28c615SPaolo Bonzini int vhost_net_notify_migration_done(struct vhost_net *net, char* mac_addr)
957b28c615SPaolo Bonzini {
967b28c615SPaolo Bonzini return -1;
977b28c615SPaolo Bonzini }
987b28c615SPaolo Bonzini
get_vhost_net(NetClientState * nc)997b28c615SPaolo Bonzini VHostNetState *get_vhost_net(NetClientState *nc)
1007b28c615SPaolo Bonzini {
1017b28c615SPaolo Bonzini return 0;
1027b28c615SPaolo Bonzini }
1037b28c615SPaolo Bonzini
vhost_set_vring_enable(NetClientState * nc,int enable)1047b28c615SPaolo Bonzini int vhost_set_vring_enable(NetClientState *nc, int enable)
1057b28c615SPaolo Bonzini {
1067b28c615SPaolo Bonzini return 0;
1077b28c615SPaolo Bonzini }
1087b28c615SPaolo Bonzini
vhost_net_set_mtu(struct vhost_net * net,uint16_t mtu)1097b28c615SPaolo Bonzini int vhost_net_set_mtu(struct vhost_net *net, uint16_t mtu)
1107b28c615SPaolo Bonzini {
1117b28c615SPaolo Bonzini return 0;
1127b28c615SPaolo Bonzini }
113c2daa08eSKangjie Xu
vhost_net_virtqueue_reset(VirtIODevice * vdev,NetClientState * nc,int vq_index)114c2daa08eSKangjie Xu void vhost_net_virtqueue_reset(VirtIODevice *vdev, NetClientState *nc,
115c2daa08eSKangjie Xu int vq_index)
116c2daa08eSKangjie Xu {
117c2daa08eSKangjie Xu
118c2daa08eSKangjie Xu }
11910f8a115SKangjie Xu
vhost_net_virtqueue_restart(VirtIODevice * vdev,NetClientState * nc,int vq_index)12010f8a115SKangjie Xu int vhost_net_virtqueue_restart(VirtIODevice *vdev, NetClientState *nc,
12110f8a115SKangjie Xu int vq_index)
12210f8a115SKangjie Xu {
12310f8a115SKangjie Xu return 0;
12410f8a115SKangjie Xu }
125c9bdc449SHyman Huang(黄勇)
vhost_net_save_acked_features(NetClientState * nc)126c9bdc449SHyman Huang(黄勇) void vhost_net_save_acked_features(NetClientState *nc)
127c9bdc449SHyman Huang(黄勇) {
128c9bdc449SHyman Huang(黄勇)
129c9bdc449SHyman Huang(黄勇) }
130