DPDK patches and discussions
 help / color / mirror / Atom feed
From: Huisong Li <lihuisong@huawei.com>
To: <xiaoyun.li@intel.com>, <aman.deep.singh@intel.com>,
	<yuying.zhang@intel.com>, <ferruh.yigit@xilinx.com>,
	<andrew.rybchenko@oktetlabs.ru>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>, <huangdaode@huawei.com>,
	<lihuisong@huawei.com>
Subject: [PATCH V3 app/testpmd 3/4] app/testpmd: compact RSS types output in some commands
Date: Tue, 7 Jun 2022 16:32:45 +0800	[thread overview]
Message-ID: <20220607083246.12259-4-lihuisong@huawei.com> (raw)
In-Reply-To: <20220607083246.12259-1-lihuisong@huawei.com>

From: Ferruh Yigit <ferruh.yigit@xilinx.com>

In port info command output, 'show port info all', supported RSS offload
types printed one type per line, and although this information is not
most important part of the command it takes big part of the command
output.

In port RSS hash and flow RSS command output, 'show port 0 rss-hash',
and 'flow query 0 0 rss', all enabled RSS types are printed on one line.
If there are many types, the print will be very long.

Compacting these RSS offloads and types output by fixing the length of the
character string printed on each line, instead of one per line or one line.
Output becomes as following:

Supported RSS offload flow types:
  ipv4-frag  ipv4-tcp  ipv4-udp  ipv4-sctp  ipv4-other  ipv6-frag  ipv6-tcp
  ipv6-udp  ipv6-sctp  ipv6-other  l4-dst-only  l4-src-only  l3-dst-only
  l3-src-only

Signed-off-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
 app/test-pmd/config.c | 64 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 48 insertions(+), 16 deletions(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 9cb1211f00..209cbcc514 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -66,6 +66,8 @@
 
 #define NS_PER_SEC 1E9
 
+#define MAX_CHAR_NUM_PER_LINE 64
+
 static const struct {
 	enum tx_pkt_split split;
 	const char *name;
@@ -198,6 +200,8 @@ const struct rss_type_info rss_type_table[] = {
 static void
 rss_types_display(uint64_t rss_types)
 {
+	uint16_t total_len = 0;
+	uint16_t str_len = 0;
 	uint16_t i;
 
 	if (rss_types == 0)
@@ -206,9 +210,18 @@ rss_types_display(uint64_t rss_types)
 	for (i = 0; rss_type_table[i].str; i++) {
 		if (rss_type_table[i].rss_type == 0)
 			continue;
+
 		if ((rss_types & rss_type_table[i].rss_type) ==
-						rss_type_table[i].rss_type)
+						rss_type_table[i].rss_type) {
+			/* contain two blanks */
+			str_len = strlen(rss_type_table[i].str) + 2;
+			if (total_len + str_len > MAX_CHAR_NUM_PER_LINE) {
+				printf("\n");
+				total_len = 0;
+			}
 			printf("  %s", rss_type_table[i].str);
+			total_len += str_len;
+		}
 	}
 }
 
@@ -766,6 +779,38 @@ rss_offload_to_str(uint64_t rss_offload)
 	return NULL;
 }
 
+static void
+rss_offload_types_display(uint64_t rss_offload_types)
+{
+#define USER_DEFINED_DISPLAY_STR_LEN 23
+
+	uint16_t total_len = 0;
+	uint16_t str_len = 0;
+	uint64_t rss_offload;
+	uint16_t i;
+
+	for (i = 0; i < sizeof(rss_offload_types) * CHAR_BIT; i++) {
+		rss_offload = RTE_BIT64(i);
+		if ((rss_offload_types & rss_offload) != 0) {
+			const char *p = rss_offload_to_str(rss_offload);
+
+			str_len = p ? strlen(p) : USER_DEFINED_DISPLAY_STR_LEN;
+			str_len += 2; /* add two blanks */
+			if (total_len + str_len >= MAX_CHAR_NUM_PER_LINE) {
+				total_len = 0;
+				printf("\n");
+			}
+
+			if (p)
+				printf("  %s", p);
+			else
+				printf("  user defined 0x%"PRIx64"",
+				       rss_offload);
+			total_len += str_len;
+		}
+	}
+}
+
 void
 port_infos_display(portid_t port_id)
 {
@@ -870,22 +915,9 @@ port_infos_display(portid_t port_id)
 	if (!dev_info.flow_type_rss_offloads)
 		printf("No RSS offload flow type is supported.\n");
 	else {
-		uint64_t rss_offload_types = dev_info.flow_type_rss_offloads;
-		uint16_t i;
-
 		printf("Supported RSS offload flow types:\n");
-		for (i = 0; i < sizeof(rss_offload_types) * CHAR_BIT; i++) {
-			uint64_t rss_offload = RTE_BIT64(i);
-			if ((rss_offload_types & rss_offload) != 0) {
-				const char *p =
-					rss_offload_to_str(rss_offload);
-				if (p)
-					printf("  %s\n", p);
-				else
-					printf("  user defined 0x%"PRIx64"\n",
-					       rss_offload);
-			}
-		}
+		rss_offload_types_display(dev_info.flow_type_rss_offloads);
+		printf("\n");
 	}
 
 	printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize);
-- 
2.33.0


  parent reply	other threads:[~2022-06-07  8:34 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-29 10:24 [PATCH V2 0/2] fix RSS types display Huisong Li
2022-04-29 10:24 ` [PATCH V2 1/2] app/testpmd: fix supported RSS offload display Huisong Li
2022-04-29 10:24 ` [PATCH V2 2/2] app/testpmd: unify RSS types display Huisong Li
2022-06-07  8:32 ` [PATCH V3 app/testpmd 0/4] fix RSS types and flow type Huisong Li
2022-06-07  8:32   ` [PATCH V3 app/testpmd 1/4] app/testpmd: fix supported RSS offload display Huisong Li
2022-06-07 15:45     ` Ferruh Yigit
2022-06-09  3:25       ` lihuisong (C)
2022-06-17  1:38         ` lihuisong (C)
2022-06-20 12:35         ` Ferruh Yigit
2022-06-21  2:17           ` lihuisong (C)
2022-06-07  8:32   ` [PATCH V3 app/testpmd 2/4] app/testpmd: unify RSS types display and obtaination Huisong Li
2022-06-07 15:46     ` Ferruh Yigit
2022-06-09  3:25       ` lihuisong (C)
2022-06-07  8:32   ` Huisong Li [this message]
2022-06-07 15:46     ` [PATCH V3 app/testpmd 3/4] app/testpmd: compact RSS types output in some commands Ferruh Yigit
2022-06-09  3:41       ` lihuisong (C)
2022-06-20 12:37         ` Ferruh Yigit
2022-06-07  8:32   ` [PATCH V3 app/testpmd 4/4] app/testpmd: remove duplicated flow type to string table Huisong Li
2022-06-07 15:47     ` Ferruh Yigit
2022-06-09  3:26       ` lihuisong (C)
2022-06-20 12:38         ` Ferruh Yigit
2022-06-21  2:18           ` lihuisong (C)
2022-06-21  7:51             ` Ferruh Yigit
2022-06-21 12:21               ` lihuisong (C)
2022-06-24  4:12 ` [PATCH V4 0/7] app/testpmd: fix RSS and flow type Huisong Li
2022-06-24  4:12   ` [PATCH V4 1/7] app/testpmd: fix supported RSS offload display Huisong Li
2022-06-24  4:12   ` [PATCH V4 2/7] app/testpmd: unify the name of L2 payload offload Huisong Li
2022-06-24  4:12   ` [PATCH V4 3/7] app/testpmd: refactor config all RSS command Huisong Li
2022-06-24  4:12   ` [PATCH V4 4/7] app/testpmd: unify RSS types display Huisong Li
2022-06-24  4:12   ` [PATCH V4 5/7] app/testpmd: compact RSS types output in some commands Huisong Li
2022-06-24  4:12   ` [PATCH V4 6/7] app/testpmd: reorder elements in RSS type table array Huisong Li
2022-06-24  4:12   ` [PATCH V4 7/7] app/testpmd: remove duplicated flow type to string table Huisong Li
2022-06-24  7:23 ` [PATCH V5 0/7] app/testpmd: fix RSS and flow type Huisong Li
2022-06-24  7:23   ` [PATCH V5 1/7] app/testpmd: fix supported RSS offload display Huisong Li
2022-06-24 13:01     ` Ferruh Yigit
2022-06-25  2:12       ` lihuisong (C)
2022-06-28 13:18         ` Ferruh Yigit
2022-06-24  7:23   ` [PATCH V5 2/7] app/testpmd: unify the name of L2 payload offload Huisong Li
2022-06-24 13:53     ` Ferruh Yigit
2022-06-25  2:12       ` lihuisong (C)
2022-06-28 13:17         ` Ferruh Yigit
2022-06-29  1:47           ` lihuisong (C)
2022-06-24  7:23   ` [PATCH V5 3/7] app/testpmd: refactor config all RSS command Huisong Li
2022-06-24 13:55     ` Ferruh Yigit
2022-06-25  2:13       ` lihuisong (C)
2022-06-24  7:23   ` [PATCH V5 4/7] app/testpmd: unify RSS types display Huisong Li
2022-06-24  7:23   ` [PATCH V5 5/7] app/testpmd: compact RSS types output in some commands Huisong Li
2022-06-24 14:04     ` Ferruh Yigit
2022-06-25  2:13       ` lihuisong (C)
2022-06-28 13:18         ` Ferruh Yigit
2022-06-24  7:24   ` [PATCH V5 6/7] app/testpmd: reorder elements in RSS type table array Huisong Li
2022-06-24 14:00     ` Ferruh Yigit
2022-06-25  2:14       ` lihuisong (C)
2022-06-24  7:24   ` [PATCH V5 7/7] app/testpmd: remove duplicated flow type to string table Huisong Li
2022-06-24  8:55   ` [PATCH V5 0/7] app/testpmd: fix RSS and flow type lihuisong (C)
2022-06-24  8:59     ` David Marchand
2022-06-24  9:54       ` lihuisong (C)
2022-06-24 10:44         ` Ferruh Yigit
2022-06-25  1:09           ` lihuisong (C)
2022-06-28 13:18             ` Ferruh Yigit
2022-06-29  8:34 ` [PATCH V6 0/8] " Huisong Li
2022-06-29  8:34   ` [PATCH V6 1/8] app/testpmd: fix supported RSS offload display Huisong Li
2022-06-29  8:34   ` [PATCH V6 2/8] app/testpmd: unify the name of L2 payload offload Huisong Li
2022-06-29  8:34   ` [PATCH V6 3/8] doc: testpmd rename RSS type ether to L2 payload Huisong Li
2022-06-29  8:34   ` [PATCH V6 4/8] app/testpmd: refactor config all RSS command Huisong Li
2022-06-29  8:34   ` [PATCH V6 5/8] app/testpmd: unify RSS types display Huisong Li
2022-06-29  8:34   ` [PATCH V6 6/8] app/testpmd: compact RSS types output in some commands Huisong Li
2022-06-29  8:34   ` [PATCH V6 7/8] app/testpmd: reorder elements in RSS type table array Huisong Li
2022-06-29  8:34   ` [PATCH V6 8/8] app/testpmd: remove duplicated flow type to string table Huisong Li
2022-06-29  9:59   ` [PATCH V6 0/8] app/testpmd: fix RSS and flow type lihuisong (C)
2022-06-29 14:13     ` Ferruh Yigit
2022-06-29 20:05   ` 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=20220607083246.12259-4-lihuisong@huawei.com \
    --to=lihuisong@huawei.com \
    --cc=aman.deep.singh@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@xilinx.com \
    --cc=huangdaode@huawei.com \
    --cc=thomas@monjalon.net \
    --cc=xiaoyun.li@intel.com \
    --cc=yuying.zhang@intel.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).