All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vipin Varghese <vipin.varghese@intel.com>
To: konstantin.ananyev@intel.com, stephen@networkplumber.org,
	reshma.pattan@intel.com, dev@dpdk.org, john.mcnamara@intel.com
Cc: thomas@monjalon.net, stephen1.byrne@intel.com,
	amol.patel@intel.com, Vipin Varghese <vipin.varghese@intel.com>
Subject: [PATCH v7 4/9] app/procinfo: add support for show port
Date: Thu, 13 Dec 2018 10:38:37 +0530	[thread overview]
Message-ID: <20181213050842.64587-5-vipin.varghese@intel.com> (raw)
In-Reply-To: <20181213050842.64587-1-vipin.varghese@intel.com>

Function show_port is used for displaying the port PMD information under
under primary process. The information shows basic, per queue and security.

Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
---

V5:
 - convert 100 to MAX_STRING_LEN - Reshma Pattan
 - RSS made for port - Reshma Pattan
 - update bdr_str to static - Stephen Hemminger
 - remove memset for link, dev_info, queue, stats - Stephen Hemminger

V3:
 - fix meson build - Reshma Pattan
 - change 100 to MAX_STRING_LEN - Reshma Pattan
 - memset to struct elements - Reshma Pattan
 - printf tab space - Reshma Pattan
 - remove 'drop packet information' - Vipin Varghese

V2:
 - redefine code format - Vipin Varghese
---
 app/proc-info/main.c      | 117 +++++++++++++++++++++++++++++++++++++-
 app/proc-info/meson.build |   2 +-
 2 files changed, 117 insertions(+), 2 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index c4e17668e..94dfdcd7f 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -29,6 +29,9 @@
 #include <rte_branch_prediction.h>
 #include <rte_string_fns.h>
 #include <rte_metrics.h>
+#include <rte_cycles.h>
+#include <rte_security.h>
+#include <rte_cryptodev.h>
 
 /* Maximum long option length for option parsing. */
 #define MAX_LONG_OPT_SZ 64
@@ -84,6 +87,9 @@ static char *mempool_iter_name;
 static uint32_t nb_xstats_ids;
 static uint64_t xstats_ids[MAX_NB_XSTATS_IDS];
 
+/* border variable to hold for show */
+static char bdr_str[MAX_STRING_LEN];
+
 /**< display usage */
 static void
 proc_info_usage(const char *prgname)
@@ -641,7 +647,116 @@ metrics_display(int port_id)
 static void
 show_port(void)
 {
-	printf(" port\n");
+	uint16_t i = 0;
+	int ret = 0, j, k;
+
+	snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD %"PRIu64,
+			rte_get_tsc_hz());
+	STATS_BDR_STR(10, bdr_str);
+
+	RTE_ETH_FOREACH_DEV(i) {
+		uint16_t mtu = 0;
+		struct rte_eth_link link;
+		struct rte_eth_dev_info dev_info;
+		struct rte_eth_rxq_info queue_info;
+		struct rte_eth_stats stats;
+		struct rte_eth_rss_conf rss_conf;
+
+		memset(&rss_conf, 0, sizeof(rss_conf));
+
+		snprintf(bdr_str, MAX_STRING_LEN, " Port (%u)", i);
+		STATS_BDR_STR(5, bdr_str);
+		printf("  - generic config\n");
+
+		printf("\t  -- Socket %d\n", rte_eth_dev_socket_id(i));
+		rte_eth_link_get(i, &link);
+		printf("\t  -- link speed %d duplex %d,"
+			" auto neg %d status %d\n",
+			link.link_speed,
+			link.link_duplex,
+			link.link_autoneg,
+			link.link_status);
+		printf("\t  -- promiscuous (%d)\n",
+			rte_eth_promiscuous_get(i));
+		ret = rte_eth_dev_get_mtu(i, &mtu);
+		if (ret == 0)
+			printf("\t  -- mtu (%d)\n", mtu);
+
+		printf("  - queue\n");
+
+		rte_eth_dev_info_get(i, &dev_info);
+
+		for (j = 0; j < dev_info.nb_rx_queues; j++) {
+			ret = rte_eth_rx_queue_info_get(i, j, &queue_info);
+			if (ret == 0) {
+				printf("\t  -- queue %d rx scatter %d"
+					" descriptors %d offloads 0x%"PRIx64
+					" mempool socket %d\n",
+					j,
+					queue_info.scattered_rx,
+					queue_info.nb_desc,
+					queue_info.conf.offloads,
+					queue_info.mp->socket_id);
+
+				ret = rte_eth_stats_get(i, &stats);
+				if (ret == 0) {
+					printf("\t  -- packet input %"PRIu64
+						" output %"PRIu64""
+						" error %"PRIu64"\n",
+						stats.q_ipackets[j],
+						stats.q_opackets[j],
+						stats.q_errors[j]);
+				}
+			}
+		}
+
+		ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf);
+		if (ret == 0) {
+			if (rss_conf.rss_key) {
+				printf("\t  -- RSS len %u key (hex):",
+					rss_conf.rss_key_len);
+				for (k = 0; k < rss_conf.rss_key_len; k++)
+					printf(" %x", rss_conf.rss_key[k]);
+				printf("\t  -- hf 0x%"PRIx64"\n",
+					rss_conf.rss_hf);
+			}
+		}
+
+		ret = rte_eth_stats_get(i, &stats);
+		if (ret == 0) {
+			printf("\t  -- packet input %"PRIu64
+				" output %"PRIu64"\n",
+				stats.ipackets,
+				stats.opackets);
+			printf("\t  -- packet error input %"PRIu64
+				" output %"PRIu64"\n",
+				stats.ierrors,
+				stats.oerrors);
+			printf("\t  -- RX no mbuf %"PRIu64"\n",
+				stats.rx_nombuf);
+		}
+
+		printf("  - cyrpto context\n");
+		void *ptr_ctx = rte_eth_dev_get_sec_ctx(i);
+		printf("\t  -- security context - %p\n", ptr_ctx);
+
+		if (ptr_ctx) {
+			printf("\t  -- size %u\n",
+				rte_security_session_get_size(ptr_ctx));
+			const struct rte_security_capability *ptr_sec_cap =
+				rte_security_capabilities_get(ptr_ctx);
+			if (ptr_sec_cap) {
+				printf("\t  -- action (0x%x), protocol (0x%x),"
+					" offload flags (0x%x)\n",
+					ptr_sec_cap->action,
+					ptr_sec_cap->protocol,
+					ptr_sec_cap->ol_flags);
+				printf("\t  -- capabilities - oper type %x\n",
+					ptr_sec_cap->crypto_capabilities->op);
+			}
+		}
+	}
+	STATS_BDR_STR(50, "");
 }
 
 static void
diff --git a/app/proc-info/meson.build b/app/proc-info/meson.build
index a52b2ee4a..866b390d6 100644
--- a/app/proc-info/meson.build
+++ b/app/proc-info/meson.build
@@ -3,4 +3,4 @@
 
 sources = files('main.c')
 allow_experimental_apis = true
-deps += ['ethdev', 'metrics']
+deps += ['ethdev', 'metrics', 'security']
-- 
2.17.1

  parent reply	other threads:[~2018-12-13  5:09 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 14:15 [PATCH v5 1/9] app/procinfo: add usage for new debug Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 2/9] app/procinfo: add compare for new options Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 3/9] app/procinfo: add prototype for debug instances Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 4/9] app/procinfo: add support for show port Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 5/9] app/procinfo: add support for show tm Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 6/9] app/procinfo: add support for show crypto Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 7/9] app/procinfo: add support for debug ring Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 8/9] app/procinfo: add support for show mempool Vipin Varghese
2018-11-22 14:15 ` [PATCH v5 9/9] doc/procinfo: add information for debug options Vipin Varghese
2018-11-22 18:08   ` Mcnamara, John
2018-11-23  4:58     ` Varghese, Vipin
2018-12-03  5:49 ` [PATCH v6 0/9] app/proc-info: improve debug of proc-info tool Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 1/9] app/procinfo: add usage for new debug Vipin Varghese
2018-12-12 14:14     ` Pattan, Reshma
2018-12-12 15:06       ` Varghese, Vipin
2018-12-13  5:08     ` [PATCH v7 0/9] app/proc-info: improve debug of proc-info tool Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 1/9] app/procinfo: add usage for new debug Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 2/9] app/procinfo: add compare for new options Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 3/9] app/procinfo: add prototype for debug instances Vipin Varghese
2018-12-13  5:08       ` Vipin Varghese [this message]
2018-12-13  5:08       ` [PATCH v7 5/9] app/procinfo: add support for show tm Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 6/9] app/procinfo: add support for show crypto Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 7/9] app/procinfo: add support for debug ring Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 8/9] app/procinfo: add support for show iter mempool Vipin Varghese
2018-12-13  5:08       ` [PATCH v7 9/9] doc/procinfo: add information for debug options Vipin Varghese
2018-12-13 14:42       ` [PATCH v7 0/9] app/proc-info: improve debug of proc-info tool Pattan, Reshma
2018-12-13 16:21         ` Varghese, Vipin
2018-12-22 21:02           ` Thomas Monjalon
2018-12-26  5:21             ` Varghese, Vipin
2018-12-26 21:33               ` Thomas Monjalon
2018-12-27  2:46                 ` Varghese, Vipin
2018-12-27  9:32                   ` Thomas Monjalon
2018-12-27 10:45                     ` Varghese, Vipin
2019-01-07 15:38       ` [PATCH v8 0/7] app/proc-info: enhance " Vipin Varghese
2019-01-07 15:38         ` [PATCH v8 1/7] app/procinfo: prepare for new debug functions Vipin Varghese
2019-01-09 23:45           ` Thomas Monjalon
2019-01-10  3:08             ` Varghese, Vipin
2019-01-10  8:39               ` Thomas Monjalon
2019-01-10  8:53                 ` Varghese, Vipin
2019-01-10  9:09                   ` Thomas Monjalon
2019-01-10 21:36           ` [PATCH v9 0/6] app/proc-info: enhance debug of proc-info tool Vipin Varghese
2019-01-10 21:36             ` [PATCH v9 1/6] app/procinfo: add support for show port Vipin Varghese
2019-01-10 17:40               ` Thomas Monjalon
2019-01-11  3:57                 ` Varghese, Vipin
2019-01-11 10:22                   ` Thomas Monjalon
2019-01-10 21:36             ` [PATCH v9 2/6] app/procinfo: add support for show tm Vipin Varghese
2019-01-10 21:36             ` [PATCH v9 3/6] app/procinfo: add support for show crypto Vipin Varghese
2019-01-10 21:36             ` [PATCH v9 4/6] app/procinfo: add support for debug ring Vipin Varghese
2019-01-10 21:36             ` [PATCH v9 5/6] app/procinfo: add support for show mempool Vipin Varghese
2019-01-10 21:36             ` [PATCH v9 6/6] app/procinfo: add support for iter mempool Vipin Varghese
2019-01-11 14:46             ` [PATCH v9 0/6] app/proc-info: enhance debug of proc-info tool Thomas Monjalon
2019-01-14  0:07               ` Varghese, Vipin
2019-01-07 15:38         ` [PATCH v8 2/7] app/procinfo: add support for show port Vipin Varghese
2019-01-07 15:38         ` [PATCH v8 3/7] app/procinfo: add support for show tm Vipin Varghese
2019-01-07 15:38         ` [PATCH v8 4/7] app/procinfo: add support for show crypto Vipin Varghese
2019-01-07 15:38         ` [PATCH v8 5/7] app/procinfo: add support for debug ring Vipin Varghese
2019-01-07 15:38         ` [PATCH v8 6/7] app/procinfo: add support for show mempool Vipin Varghese
2019-01-07 15:38         ` [PATCH v8 7/7] app/procinfo: add support for iter mempool Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 2/9] app/procinfo: add compare for new options Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 3/9] app/procinfo: add prototype for debug instances Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 4/9] app/procinfo: add support for show port Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 5/9] app/procinfo: add support for show tm Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 6/9] app/procinfo: add support for show crypto Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 7/9] app/procinfo: add support for debug ring Vipin Varghese
2018-12-03  5:49   ` [PATCH v6 8/9] app/procinfo: add support for show iter mempool Vipin Varghese
2018-12-12 16:10     ` Pattan, Reshma
2018-12-13  2:26       ` Varghese, Vipin
2018-12-03  5:50   ` [PATCH v6 9/9] doc/procinfo: add information for debug options Vipin Varghese

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=20181213050842.64587-5-vipin.varghese@intel.com \
    --to=vipin.varghese@intel.com \
    --cc=amol.patel@intel.com \
    --cc=dev@dpdk.org \
    --cc=john.mcnamara@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=reshma.pattan@intel.com \
    --cc=stephen1.byrne@intel.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.