virtio: add packet buffering on tx
Type: feature
This patch adds packet buffering on tx for
slow backend which have some jitter/delays
in freeing the vrings.
There are some limitations to the current design:
1) It only works in poll mode.
2) Atleast 1 rx queue of an interface (with buffering
enabled) should be placed on each worker and main thread.
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ib93c350298b228e80426e58ac77f3bbc93b8be27
diff --git a/src/vnet/devices/virtio/pci.h b/src/vnet/devices/virtio/pci.h
index ab5c6f1..10df49c 100644
--- a/src/vnet/devices/virtio/pci.h
+++ b/src/vnet/devices/virtio/pci.h
@@ -214,7 +214,8 @@
_ (CSUM_OFFLOAD, 1) \
_ (GRO_COALESCE, 2) \
_ (PACKED, 3) \
- _ (IN_ORDER, 4)
+ _ (IN_ORDER, 4) \
+ _ (BUFFERING, 5)
typedef enum
{
@@ -234,6 +235,7 @@
u64 features;
u8 gso_enabled;
u8 checksum_offload_enabled;
+ u32 buffering_size;
u32 virtio_flags;
clib_error_t *error;
} virtio_pci_create_if_args_t;