Add /dmadev/list_names telemetry endpoint which returns a dictionary
keyed by device ID with device name as the value, so users can
identify devices by name directly from the telemetry output.
Original /dmadev/list output:
{"/dmadev/list": [0, 1]}
New /dmadev/list_names output:
{"/dmadev/list_names": {"0": "hisi_sec2-0-dma0",
"1": "hisi_sec2-0-dma1"}}
Signed-off-by: Chengwen Feng <[email protected]>
---
lib/dmadev/rte_dmadev.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c
index b75b4f9bd1..98ef7e2b93 100644
--- a/lib/dmadev/rte_dmadev.c
+++ b/lib/dmadev/rte_dmadev.c
@@ -1157,6 +1157,27 @@ dmadev_handle_dev_list(const char *cmd __rte_unused,
return 0;
}
+static int
+dmadev_handle_dev_list_names(const char *cmd __rte_unused,
+ const char *params __rte_unused,
+ struct rte_tel_data *d)
+{
+ char id_str[RTE_TEL_MAX_STRING_LEN];
+ struct rte_dma_dev *dev;
+ int dev_id;
+
+ rte_tel_data_start_dict(d);
+ for (dev_id = 0; dev_id < dma_devices_max; dev_id++) {
+ if (!rte_dma_is_valid(dev_id))
+ continue;
+ dev = &rte_dma_devices[dev_id];
+ sprintf(id_str, "%d", dev_id);
+ rte_tel_data_add_dict_string(d, id_str, dev->data->dev_name);
+ }
+
+ return 0;
+}
+
#define ADD_CAPA(td, dc, c) rte_tel_data_add_dict_int(td,
dma_capability_name(c), !!(dc & c))
static int
@@ -1309,6 +1330,8 @@ RTE_INIT(dmadev_init_telemetry)
{
rte_telemetry_register_cmd("/dmadev/list", dmadev_handle_dev_list,
"Returns list of available dmadev devices by IDs. No
parameters.");
+ rte_telemetry_register_cmd("/dmadev/list_names",
dmadev_handle_dev_list_names,
+ "Returns dict of available dmadev devices by ID-NAMEs.
No parameters.");
rte_telemetry_register_cmd("/dmadev/info", dmadev_handle_dev_info,
"Returns information for a dmadev. Parameters: int
dev_id");
rte_telemetry_register_cmd("/dmadev/stats", dmadev_handle_dev_stats,
--
2.17.1