#include <rte_memory.h>
#include <rte_mempool.h>
-#include <rte_mbuf.h>
+
+struct rte_mbuf;
#define VHOST_MEMORY_MAX_NREGIONS 8
uint16_t vhost_hlen; /**< Vhost header length (varies depending on RX merge buffers. */
volatile uint16_t last_used_idx; /**< Last index used on the available ring */
volatile uint16_t last_used_idx_res; /**< Used for multiple devices reserving buffers. */
- eventfd_t callfd; /**< Currently unused as polling mode is enabled. */
- eventfd_t kickfd; /**< Used to notify the guest (trigger interrupt). */
+ eventfd_t callfd; /**< Used to notify the guest (trigger interrupt). */
+ eventfd_t kickfd; /**< Currently unused as polling mode is enabled. */
struct buf_vector buf_vec[BUF_VECTOR_MAX]; /**< for scatter RX. */
} __rte_cache_aligned;
/**
* Device operations to add/remove device.
+ *
+ * Make sure to set VIRTIO_DEV_RUNNING to the device flags in new_device and
+ * remove it in destroy_device.
+ *
*/
struct virtio_net_device_ops {
int (*new_device)(struct virtio_net *); /**< Add device. */
/* Register vhost driver. dev_name could be different for multiple instance support. */
int rte_vhost_driver_register(const char *dev_name);
+/* Unregister vhost driver. This is only meaningful to vhost user. */
+int rte_vhost_driver_unregister(const char *dev_name);
+
/* Register callbacks. */
int rte_vhost_driver_callback_register(struct virtio_net_device_ops const * const);
/* Start vhost driver session blocking loop. */
* be received from the physical port or from another virtual device. A packet
* count is returned to indicate the number of packets that were succesfully
* added to the RX queue.
+ * @param dev
+ * virtio-net device
* @param queue_id
* virtio queue index in mq case
+ * @param pkts
+ * array to contain packets to be enqueued
+ * @param count
+ * packets num to be enqueued
* @return
* num of packets enqueued
*/
* This function gets guest buffers from the virtio device TX virtqueue,
* construct host mbufs, copies guest buffer content to host mbufs and
* store them in pkts to be processed.
+ * @param dev
+ * virtio-net device
+ * @param queue_id
+ * virtio queue index in mq case
* @param mbuf_pool
* mbuf_pool where host mbuf is allocated.
- * @param queue_id
- * virtio queue index in mq case.
+ * @param pkts
+ * array to contain packets to be dequeued
+ * @param count
+ * packets num to be dequeued
* @return
* num of packets dequeued
*/