crypto/cnxk: add digest support
[dpdk.git] / lib / vhost / vhost.h
index f628714..8ffe387 100644 (file)
 #include "rte_vhost_async.h"
 
 /* Used to indicate that the device is running on a data core */
-#define VIRTIO_DEV_RUNNING 1
+#define VIRTIO_DEV_RUNNING ((uint32_t)1 << 0)
 /* Used to indicate that the device is ready to operate */
-#define VIRTIO_DEV_READY 2
+#define VIRTIO_DEV_READY ((uint32_t)1 << 1)
 /* Used to indicate that the built-in vhost net device backend is enabled */
-#define VIRTIO_DEV_BUILTIN_VIRTIO_NET 4
+#define VIRTIO_DEV_BUILTIN_VIRTIO_NET ((uint32_t)1 << 2)
 /* Used to indicate that the device has its own data path and configured */
-#define VIRTIO_DEV_VDPA_CONFIGURED 8
+#define VIRTIO_DEV_VDPA_CONFIGURED ((uint32_t)1 << 3)
 /* Used to indicate that the feature negotiation failed */
-#define VIRTIO_DEV_FEATURES_FAILED 16
+#define VIRTIO_DEV_FEATURES_FAILED ((uint32_t)1 << 4)
+/* Used to indicate that the virtio_net tx code should fill TX ol_flags */
+#define VIRTIO_DEV_LEGACY_OL_FLAGS ((uint32_t)1 << 5)
 
 /* Backend value set by guest. */
 #define VIRTIO_DEV_STOPPED -1
@@ -162,6 +164,7 @@ struct vhost_virtqueue {
 
        uint16_t                batch_copy_nb_elems;
        struct batch_copy_elem  *batch_copy_elems;
+       int                     numa_node;
        bool                    used_wrap_counter;
        bool                    avail_wrap_counter;
 
@@ -201,9 +204,18 @@ struct vhost_virtqueue {
        uint16_t        async_pkts_idx;
        uint16_t        async_pkts_inflight_n;
        uint16_t        async_last_pkts_n;
-       struct vring_used_elem  *async_descs_split;
-       uint16_t async_desc_idx;
-       uint16_t last_async_desc_idx;
+       union {
+               struct vring_used_elem  *async_descs_split;
+               struct vring_used_elem_packed *async_buffers_packed;
+       };
+       union {
+               uint16_t async_desc_idx_split;
+               uint16_t async_buffer_idx_packed;
+       };
+       union {
+               uint16_t last_async_desc_idx_split;
+               uint16_t last_async_buffer_idx_packed;
+       };
 
        /* vq async features */
        bool            async_inorder;
@@ -674,7 +686,7 @@ int alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx);
 void vhost_attach_vdpa_device(int vid, struct rte_vdpa_device *dev);
 
 void vhost_set_ifname(int, const char *if_name, unsigned int if_len);
-void vhost_set_builtin_virtio_net(int vid, bool enable);
+void vhost_setup_virtio_net(int vid, bool enable, bool legacy_ol_flags);
 void vhost_enable_extbuf(int vid);
 void vhost_enable_linearbuf(int vid);
 int vhost_enable_guest_notification(struct virtio_net *dev,