qemu/include/net/vhost_net.h
<<
>>
Prefs
   1#ifndef VHOST_NET_H
   2#define VHOST_NET_H
   3
   4#include "net/net.h"
   5#include "hw/virtio/vhost-backend.h"
   6
   7#define VHOST_NET_INIT_FAILED \
   8    "vhost-net requested but could not be initialized"
   9
  10struct vhost_net;
  11typedef struct vhost_net VHostNetState;
  12
  13typedef struct VhostNetOptions {
  14    VhostBackendType backend_type;
  15    NetClientState *net_backend;
  16    uint32_t busyloop_timeout;
  17    unsigned int nvqs;
  18    void *opaque;
  19} VhostNetOptions;
  20
  21uint64_t vhost_net_get_max_queues(VHostNetState *net);
  22struct vhost_net *vhost_net_init(VhostNetOptions *options);
  23
  24int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
  25                    int data_queue_pairs, int cvq);
  26void vhost_net_stop(VirtIODevice *dev, NetClientState *ncs,
  27                    int data_queue_pairs, int cvq);
  28
  29void vhost_net_cleanup(VHostNetState *net);
  30
  31uint64_t vhost_net_get_features(VHostNetState *net, uint64_t features);
  32void vhost_net_ack_features(VHostNetState *net, uint64_t features);
  33
  34int vhost_net_get_config(struct vhost_net *net,  uint8_t *config,
  35                         uint32_t config_len);
  36
  37int vhost_net_set_config(struct vhost_net *net, const uint8_t *data,
  38                         uint32_t offset, uint32_t size, uint32_t flags);
  39bool vhost_net_virtqueue_pending(VHostNetState *net, int n);
  40void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev,
  41                              int idx, bool mask);
  42bool vhost_net_config_pending(VHostNetState *net);
  43void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask);
  44int vhost_net_notify_migration_done(VHostNetState *net, char* mac_addr);
  45VHostNetState *get_vhost_net(NetClientState *nc);
  46
  47int vhost_set_vring_enable(NetClientState * nc, int enable);
  48
  49uint64_t vhost_net_get_acked_features(VHostNetState *net);
  50
  51int vhost_net_set_mtu(struct vhost_net *net, uint16_t mtu);
  52
  53void vhost_net_virtqueue_reset(VirtIODevice *vdev, NetClientState *nc,
  54                               int vq_index);
  55int vhost_net_virtqueue_restart(VirtIODevice *vdev, NetClientState *nc,
  56                                int vq_index);
  57
  58void vhost_net_save_acked_features(NetClientState *nc);
  59#endif
  60