From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
To: <dev@dpdk.org>
Cc: <bruce.richardson@intel.com>, <ciara.power@intel.com>,
<jerinj@marvell.com>, <kirankumark@marvell.com>,
<ndabilpuram@marvell.com>, <skori@marvell.com>,
<skoteshwar@marvell.com>, <asekhar@marvell.com>,
<pbhagavatula@marvell.com>, <anoobj@marvell.com>,
<adwivedi@marvell.com>, <ktejasree@marvell.com>,
Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Subject: [dpdk-dev] [v7, 4/6] net/cnxk: add telemetry endpoing to ethdev
Date: Wed, 8 Sep 2021 22:33:06 +0530 [thread overview]
Message-ID: <ecbbd86c292fd301fb2e64959115987eb431d879.1631120194.git.gmuthukrishn@marvell.com> (raw)
In-Reply-To: <cover.1631120194.git.gmuthukrishn@marvell.com>
Add telemetry endpoint to ethdev.
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
drivers/net/cnxk/cnxk_ethdev_telemetry.c | 129 +++++++++++++++++++++++
drivers/net/cnxk/meson.build | 1 +
2 files changed, 130 insertions(+)
create mode 100644 drivers/net/cnxk/cnxk_ethdev_telemetry.c
diff --git a/drivers/net/cnxk/cnxk_ethdev_telemetry.c b/drivers/net/cnxk/cnxk_ethdev_telemetry.c
new file mode 100644
index 0000000000..de8c468670
--- /dev/null
+++ b/drivers/net/cnxk/cnxk_ethdev_telemetry.c
@@ -0,0 +1,129 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell International Ltd.
+ */
+
+#include <rte_telemetry.h>
+
+#include "cnxk_ethdev.h"
+
+/* Macro to count no of words in eth_info_s size */
+#define ETH_INFO_SZ \
+ (RTE_ALIGN_CEIL(sizeof(struct eth_info_s), sizeof(uint64_t)) / \
+ sizeof(uint64_t))
+#define MACADDR_LEN 18
+
+static int
+ethdev_tel_handle_info(const char *cmd __rte_unused,
+ const char *params __rte_unused, struct rte_tel_data *d)
+{
+ struct rte_eth_dev *eth_dev;
+ struct rte_tel_data *i_data;
+ struct cnxk_eth_dev *dev;
+ union eth_info_u {
+ struct eth_info_s {
+ /** PF/VF information */
+ uint16_t pf_func;
+ /** No of rx queues */
+ uint16_t rx_queues;
+ /** No of tx queues */
+ uint16_t tx_queues;
+ /** Port ID */
+ uint16_t port_id;
+ /** MAC entries */
+ char mac_addr[MACADDR_LEN];
+ uint8_t max_mac_entries;
+ bool dmac_filter_ena;
+ uint8_t dmac_filter_count;
+ uint16_t flags;
+ uint8_t ptype_disable;
+ bool scalar_ena;
+ bool ptp_ena;
+ /* Offload capabilities */
+ uint64_t rx_offload_capa;
+ uint64_t tx_offload_capa;
+ uint32_t speed_capa;
+ /* Configured offloads */
+ uint64_t rx_offloads;
+ uint64_t tx_offloads;
+ /* Platform specific offload flags */
+ uint16_t rx_offload_flags;
+ uint16_t tx_offload_flags;
+ /* ETHDEV RSS HF bitmask */
+ uint64_t ethdev_rss_hf;
+ } info;
+ uint64_t val[ETH_INFO_SZ];
+ } eth_info;
+ struct eth_info_s *info;
+ unsigned int i, j = 0;
+ int n_ports;
+
+ n_ports = rte_eth_dev_count_avail();
+ if (!n_ports) {
+ plt_err("No active ethernet ports found.");
+ return -1;
+ }
+
+ rte_tel_data_start_dict(d);
+ rte_tel_data_add_dict_int(d, "n_ports", n_ports);
+
+ i_data = rte_tel_data_alloc();
+ rte_tel_data_start_array(i_data, RTE_TEL_U64_VAL);
+
+ for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
+ /* Skip if port is unused */
+ if (!rte_eth_dev_is_valid_port(i))
+ continue;
+
+ eth_dev = &rte_eth_devices[i];
+ if (eth_dev) {
+ memset(ð_info, 0, sizeof(eth_info));
+ info = ð_info.info;
+ dev = cnxk_eth_pmd_priv(eth_dev);
+ if (dev) {
+ info->pf_func = roc_nix_get_pf_func(&dev->nix);
+ memset(info->mac_addr, 0, MACADDR_LEN);
+ snprintf(info->mac_addr, MACADDR_LEN,
+ "%02x:%02x:%02x:%02x:%02x:%02x",
+ dev->mac_addr[0], dev->mac_addr[1],
+ dev->mac_addr[2], dev->mac_addr[3],
+ dev->mac_addr[4], dev->mac_addr[5]);
+ info->max_mac_entries = dev->max_mac_entries;
+ info->dmac_filter_ena = dev->dmac_filter_enable;
+ info->dmac_filter_count =
+ dev->dmac_filter_count;
+ info->flags = dev->flags;
+ info->ptype_disable = dev->ptype_disable;
+ info->scalar_ena = dev->scalar_ena;
+ info->ptp_ena = dev->ptp_en;
+ info->rx_offload_capa = dev->rx_offload_capa;
+ info->tx_offload_capa = dev->tx_offload_capa;
+ info->rx_offloads = dev->rx_offloads;
+ info->tx_offloads = dev->tx_offloads;
+ info->rx_offload_flags = dev->rx_offload_flags;
+ info->tx_offload_flags = dev->tx_offload_flags;
+ info->ethdev_rss_hf = dev->ethdev_rss_hf;
+ }
+
+ if (eth_dev->data) {
+ info->rx_queues = eth_dev->data->nb_rx_queues;
+ info->tx_queues = eth_dev->data->nb_tx_queues;
+ info->port_id = eth_dev->data->port_id;
+ }
+
+ for (j = 0; j < ETH_INFO_SZ; j++)
+ rte_tel_data_add_array_u64(i_data,
+ eth_info.val[j]);
+
+ j++;
+ }
+ }
+
+ rte_tel_data_add_dict_container(d, "info", i_data, 0);
+ return 0;
+}
+
+RTE_INIT(cnxk_ethdev_init_telemetry)
+{
+ rte_telemetry_register_cmd("/cnxk/ethdev/info", ethdev_tel_handle_info,
+ "Returns ethdev device information");
+}
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index d1d4b4e15e..5b3b8422fb 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -13,6 +13,7 @@ sources = files(
'cnxk_ethdev_devargs.c',
'cnxk_ethdev_ops.c',
'cnxk_ethdev_sec.c',
+ 'cnxk_ethdev_telemetry.c',
'cnxk_link.c',
'cnxk_lookup.c',
'cnxk_ptp.c',
--
2.25.1
next prev parent reply other threads:[~2021-09-08 17:03 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-29 15:25 [dpdk-dev] [v1, 0/3] common/cnxk: enable npa telemetry Gowrishankar Muthukrishnan
2021-07-29 15:25 ` [dpdk-dev] [v1, 1/3] telemetry: enable storing pointer value Gowrishankar Muthukrishnan
2021-07-29 15:48 ` Bruce Richardson
2021-07-30 12:08 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-08-01 17:40 ` Gowrishankar Muthukrishnan
2021-07-29 15:25 ` [dpdk-dev] [v1, 2/3] test/telemetry: add unit tests for " Gowrishankar Muthukrishnan
2021-07-29 15:25 ` [dpdk-dev] [v1, 3/3] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 0/3] common/cnxk: enable npa telemetry Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 1/3] telemetry: enable storing pointer value Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 2/3] test/telemetry: add unit tests for " Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 3/3] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 0/3] common/cnxk: enable npa telemetry Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 1/3] telemetry: enable storing pointer value Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 2/3] test/telemetry: add unit tests for " Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 3/3] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-11 15:59 ` [dpdk-dev] [v3, 0/3] common/cnxk: enable npa telemetry Power, Ciara
2021-08-11 16:18 ` Gowrishankar Muthukrishnan
2021-08-24 8:53 ` Gowrishankar Muthukrishnan
2021-08-25 10:09 ` Thomas Monjalon
2021-08-25 14:38 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-08-26 17:15 ` [dpdk-dev] [v4, 0/2] cnxk: enable npa and mempool telemetry Gowrishankar Muthukrishnan
2021-08-26 17:15 ` [dpdk-dev] [v4, 1/2] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-26 18:06 ` Bruce Richardson
2021-08-27 6:43 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-08-26 17:15 ` [dpdk-dev] [v4, 2/2] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-08-27 6:41 ` [dpdk-dev] [v5, 0/2] cnxk: enable npa and mempool telemetry Gowrishankar Muthukrishnan
2021-08-27 6:41 ` [dpdk-dev] [v5, 1/2] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-27 6:41 ` [dpdk-dev] [v5, 2/2] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 0/4] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 2/4] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 3/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 4/4] net/cnxk: add telemetry endpoing to ethdev Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 0/6] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 1/6] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 2/6] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 3/6] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-09-08 17:03 ` Gowrishankar Muthukrishnan [this message]
2021-09-08 17:03 ` [dpdk-dev] [v7, 5/6] telemetry: fix json output buffer size Gowrishankar Muthukrishnan
2021-09-21 11:02 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-09-22 9:21 ` Power, Ciara
2021-09-23 5:53 ` Gowrishankar Muthukrishnan
2021-09-30 8:47 ` Power, Ciara
2021-09-30 9:00 ` Gowrishankar Muthukrishnan
2021-10-07 9:04 ` Power, Ciara
2021-09-23 6:21 ` [dpdk-dev] [v3] " Gowrishankar Muthukrishnan
2021-09-23 6:26 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-09-29 4:18 ` [dpdk-dev] [v5] " Gowrishankar Muthukrishnan
2021-10-06 17:38 ` Thomas Monjalon
2021-10-07 4:58 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-10-07 7:22 ` Thomas Monjalon
2021-10-07 8:36 ` Gowrishankar Muthukrishnan
2021-10-11 10:54 ` [dpdk-dev] [v6] telemetry: remove limitation on JSON output buffer length Gowrishankar Muthukrishnan
2021-10-13 11:06 ` Power, Ciara
2021-10-13 15:25 ` Thomas Monjalon
2021-09-08 17:03 ` [dpdk-dev] [v7, 6/6] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-09-21 11:32 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-09-29 6:45 ` [dpdk-dev] [v1] cryptodev: add telemetry endpoint for cryptodev info Gowrishankar Muthukrishnan
2021-10-22 12:28 ` [dpdk-dev] [v2] cryptodev: add telemetry endpoint for cryptodev capabilities Gowrishankar Muthukrishnan
2021-10-22 12:37 ` [dpdk-dev] [v5] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-10-22 12:59 ` [dpdk-dev] [v6] " Gowrishankar Muthukrishnan
2021-10-22 12:57 ` [dpdk-dev] [v3] cryptodev: add telemetry endpoint for cryptodev capabilities Gowrishankar Muthukrishnan
2021-10-22 16:02 ` [dpdk-dev] [v7] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-10-26 13:44 ` [dpdk-dev] [v8] " Gowrishankar Muthukrishnan
2021-10-26 14:10 ` Akhil Goyal
2021-11-03 4:43 ` Gowrishankar Muthukrishnan
2021-10-30 17:41 ` [dpdk-dev] [v9] " Gowrishankar Muthukrishnan
2021-10-30 17:45 ` [dpdk-dev] [v1] security: add telemetry endpoint for cryptodev security capabilities Gowrishankar Muthukrishnan
2021-10-31 5:24 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-11-02 14:42 ` [dpdk-dev] [v3] " Gowrishankar Muthukrishnan
2021-11-02 14:52 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-11-03 19:37 ` Akhil Goyal
2021-11-04 4:29 ` Gowrishankar Muthukrishnan
2021-11-04 5:11 ` [dpdk-dev] [v5] " Gowrishankar Muthukrishnan
2021-11-04 10:50 ` Akhil Goyal
2021-10-25 7:26 ` [dpdk-dev] [v3] cryptodev: add telemetry endpoint for cryptodev capabilities Akhil Goyal
2021-10-26 13:13 ` [dpdk-dev] [v5] " Gowrishankar Muthukrishnan
2021-10-26 14:12 ` Akhil Goyal
2021-10-26 15:44 ` Gowrishankar Muthukrishnan
2021-10-26 18:34 ` Akhil Goyal
2021-10-26 12:52 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-09-29 7:01 ` [dpdk-dev] [v3] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-09-29 8:56 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-09-16 8:52 ` [dpdk-dev] [v7, 0/6] cnxk: enable telemetry endpoints Jerin Jacob
2021-09-21 10:52 ` [dpdk-dev] [v8, 0/4] cnxk: enable telemetry endpoints for mempool and ethdev Gowrishankar Muthukrishnan
2021-09-21 10:52 ` [dpdk-dev] [v8, 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-09-21 10:52 ` [dpdk-dev] [v8, 2/4] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-29 6:40 ` [dpdk-dev] [v1] mempool: add telemetry endpoint for mempool info Gowrishankar Muthukrishnan
2021-10-13 15:21 ` Thomas Monjalon
2021-10-13 15:26 ` Bruce Richardson
2021-10-13 15:40 ` Bruce Richardson
2021-10-22 3:28 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-10-22 5:55 ` David Marchand
2021-10-22 16:11 ` [dpdk-dev] [v3] " Gowrishankar Muthukrishnan
2021-10-22 20:38 ` Thomas Monjalon
2021-09-21 10:52 ` [dpdk-dev] [v8, 3/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-09-21 10:52 ` [dpdk-dev] [v8, 4/4] net/cnxk: add telemetry endpoing to ethdev Gowrishankar Muthukrishnan
2021-09-21 11:27 ` Jerin Jacob
2021-09-21 11:53 ` Bruce Richardson
2021-09-21 12:16 ` Olivier Matz
2021-09-29 4:25 ` [dpdk-dev] [v1] ethdev: add telemetry endpoint for device info Gowrishankar Muthukrishnan
2021-10-11 14:40 ` Ferruh Yigit
2021-10-11 15:40 ` Bruce Richardson
2021-10-11 15:44 ` Ferruh Yigit
2021-10-14 21:47 ` Ferruh Yigit
2021-09-29 6:54 ` [dpdk-dev] [v9 0/4] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-09-29 6:55 ` [dpdk-dev] [v9 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-10-14 15:22 ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-29 6:55 ` [dpdk-dev] [v9 2/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-10-14 16:37 ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-29 6:55 ` [dpdk-dev] [v9 3/4] mempool/cnxk: add telemetry endpoints mempool Gowrishankar Muthukrishnan
2021-10-14 16:43 ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-29 6:55 ` [dpdk-dev] [v9 4/4] net/cnxk: add telemetry endpoints to ethdev Gowrishankar Muthukrishnan
2021-10-14 16:47 ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-19 11:27 ` [dpdk-dev] [v10 0/4] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 2/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 3/4] mempool/cnxk: add telemetry endpoints mempool Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 4/4] net/cnxk: add telemetry endpoints to ethdev Gowrishankar Muthukrishnan
2021-10-19 16:42 ` [dpdk-dev] [v9 0/4] cnxk: enable telemetry endpoints Jerin Jacob
2021-10-20 13:30 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ecbbd86c292fd301fb2e64959115987eb431d879.1631120194.git.gmuthukrishn@marvell.com \
--to=gmuthukrishn@marvell.com \
--cc=adwivedi@marvell.com \
--cc=anoobj@marvell.com \
--cc=asekhar@marvell.com \
--cc=bruce.richardson@intel.com \
--cc=ciara.power@intel.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=kirankumark@marvell.com \
--cc=ktejasree@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=pbhagavatula@marvell.com \
--cc=skori@marvell.com \
--cc=skoteshwar@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).