crypto: make crypto-dispatch node working in adaptive mode
[vpp.git] / src / vnet / devices / virtio / pci.h
index ab5c6f1..0cada61 100644 (file)
@@ -87,7 +87,7 @@ typedef enum
 
 #define VIRTIO_PCI_QUEUE_ADDR_SHIFT 12
 
-#define VIRTIO_PCI_VRING_ALIGN 4096
+#define VNET_VIRTIO_PCI_VRING_ALIGN 4096
 
 typedef enum
 {
@@ -192,10 +192,13 @@ typedef struct _virtio_pci_func
     u16 (*get_queue_size) (vlib_main_t * vm, virtio_if_t * vif, u16 queue_id);
   void (*set_queue_size) (vlib_main_t * vm, virtio_if_t * vif, u16 queue_id,
                          u16 queue_size);
-    u8 (*setup_queue) (vlib_main_t * vm, virtio_if_t * vif, u16 queue_id,
-                      void *p);
+  u8 (*setup_queue) (vlib_main_t *vm, virtio_if_t *vif, u16 queue_id,
+                    vnet_virtio_vring_t *vring);
   void (*del_queue) (vlib_main_t * vm, virtio_if_t * vif, u16 queue_id);
-  void (*notify_queue) (vlib_main_t * vm, virtio_if_t * vif, u16 queue_id);
+    u16 (*get_queue_notify_off) (vlib_main_t * vm, virtio_if_t * vif,
+                                u16 queue_id);
+  void (*notify_queue) (vlib_main_t * vm, virtio_if_t * vif, u16 queue_id,
+                       u16 queue_notify_offset);
 
     u16 (*set_config_irq) (vlib_main_t * vm, virtio_if_t * vif, u16 vec);
     u16 (*set_queue_irq) (vlib_main_t * vm, virtio_if_t * vif, u16 vec,
@@ -214,7 +217,8 @@ typedef struct _virtio_pci_func
   _ (CSUM_OFFLOAD, 1)         \
   _ (GRO_COALESCE, 2)         \
   _ (PACKED, 3)               \
-  _ (IN_ORDER, 4)
+  _ (IN_ORDER, 4)            \
+  _ (BUFFERING, 5)
 
 typedef enum
 {
@@ -223,6 +227,13 @@ typedef enum
 #undef _
 } virtio_flag_t;
 
+typedef enum
+{
+  VIRTIO_BIND_NONE = 0,
+  VIRTIO_BIND_DEFAULT = 1,
+  VIRTIO_BIND_FORCE = 2,
+} __clib_packed virtio_bind_t;
+
 typedef struct
 {
   u32 addr;
@@ -234,6 +245,8 @@ typedef struct
   u64 features;
   u8 gso_enabled;
   u8 checksum_offload_enabled;
+  virtio_bind_t bind;
+  u32 buffering_size;
   u32 virtio_flags;
   clib_error_t *error;
 } virtio_pci_create_if_args_t;