summaryrefslogtreecommitdiffstats
path: root/src/vnet/dev
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2023-12-21 15:54:14 +0100
committerDamjan Marion <damarion@cisco.com>2023-12-21 15:55:39 +0100
commit28b6dfa723c00f38eac05c4546a1773a89063369 (patch)
treeb97111a73386fbd485273cd5c2d16312021e7cf6 /src/vnet/dev
parentf3b0004f8a5de433bf8a601a7e21c7f73b321cee (diff)
dev: per-queue format callbacks
Change-Id: Ia9fa6fab6288b4d0876022e72bf4f49bd00a19d2 Type: improvement Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vnet/dev')
-rw-r--r--src/vnet/dev/dev.h2
-rw-r--r--src/vnet/dev/format.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/src/vnet/dev/dev.h b/src/vnet/dev/dev.h
index 951e5054d42..e7c6ca45fb5 100644
--- a/src/vnet/dev/dev.h
+++ b/src/vnet/dev/dev.h
@@ -115,6 +115,7 @@ typedef struct
vnet_dev_rx_queue_op_t *start;
vnet_dev_rx_queue_op_no_rv_t *stop;
vnet_dev_rx_queue_op_no_rv_t *free;
+ format_function_t *format_info;
} vnet_dev_rx_queue_ops_t;
typedef struct
@@ -123,6 +124,7 @@ typedef struct
vnet_dev_tx_queue_op_t *start;
vnet_dev_tx_queue_op_no_rv_t *stop;
vnet_dev_tx_queue_op_no_rv_t *free;
+ format_function_t *format_info;
} vnet_dev_tx_queue_ops_t;
typedef struct
diff --git a/src/vnet/dev/format.c b/src/vnet/dev/format.c
index ff301615e10..848cd13a6c3 100644
--- a/src/vnet/dev/format.c
+++ b/src/vnet/dev/format.c
@@ -163,6 +163,9 @@ format_vnet_dev_rx_queue_info (u8 *s, va_list *args)
format_white_space, indent, rxq->rx_thread_index,
rxq->enabled ? "en" : "dis", rxq->started ? "" : "not-",
rxq->interrupt_mode ? "interrupt" : "polling");
+ if (rxq->port->rx_queue_ops.format_info)
+ s = format (s, "\n%U%U", format_white_space, indent,
+ rxq->port->rx_queue_ops.format_info, a, rxq);
return s;
}
@@ -184,6 +187,9 @@ format_vnet_dev_tx_queue_info (u8 *s, va_list *args)
else
s = format (s, "Used by thread%s %U", n > 1 ? "s" : "", format_bitmap_list,
txq->assigned_threads);
+ if (txq->port->tx_queue_ops.format_info)
+ s = format (s, "\n%U%U", format_white_space, indent,
+ txq->port->tx_queue_ops.format_info, a, txq);
return s;
}