virtio: Add RX queue full statisitics

In production network, often the host and the vm are managed by different
groups. The host statistics may not be readily available to the folks who
manage the VM. Having the RX queue full statistics in VPP can inform
that there might possibly be drops in the host.

Type: improvement

Change-Id: I43206647ac0d8092968c4187236d9696ae0acccd
Signed-off-by: Steven Luong <sluong@cisco.com>
This commit is contained in:
Steven Luong
2024-03-20 12:28:49 -07:00
committed by Beno�t Ganne
parent 0df582e8ec
commit 1b053782a5
2 changed files with 11 additions and 0 deletions

View File

@@ -282,6 +282,16 @@ virtio_device_input_gso_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
if (n_left == 0)
return 0;
if (PREDICT_FALSE (n_left == vring->queue_size))
{
/*
* Informational error logging when VPP is not pulling packets fast
* enough.
*/
vlib_error_count (vm, node->node_index, VIRTIO_INPUT_ERROR_FULL_RX_QUEUE,
1);
}
if (type == VIRTIO_IF_TYPE_TUN)
{
next_index = VNET_DEVICE_INPUT_NEXT_IP4_INPUT;

View File

@@ -17,6 +17,7 @@
#define foreach_virtio_input_error \
_ (BUFFER_ALLOC, "buffer alloc error") \
_ (FULL_RX_QUEUE, "full rx queue (driver tx drop)") \
_ (UNKNOWN, "unknown")
typedef enum