Thread (47 messages) 47 messages, 5 authors, 2020-07-08

Re: [dpdk-dev] [PATCH v2 5/5] app/testpmd: support query RSS config in flow query

From: Di, ChenxuX <hidden>
Date: 2020-07-01 01:26:13

Hi,

For the current code about flow query <portid> <ruleid> count 
It is printf("%s:\n"
	" hits_set: %u\n"
	" bytes_set: %u\n"
	" hits: %" PRIu64 "\n"
	" bytes: %" PRIu64 "\n",
	name,
	query.count.hits_set,
	query.count.bytes_set,
	query.count.hits,
	query.count.bytes);
and it will display the info like:
COUNT:
 hits_set: xxx
 bytes_set : xxx
 hits: xxx
 bytes: xxx

so for the code style and info style like it, I add some space in the log to make sure the log like
RSS:
 Queues: none|0|1|...
 Function: default| Toeplitz| simple_xor| symmetric_toeplitz| Unknown function
 Types:
  none
  Ipv4-tcp
  Ipv4-udp
  
For the reason the types may be many types, and if the line in testpmd log is too long.
It may cause error, so the types info is displayed per line and with one more space before.
-----Original Message-----
From: Yang, Qiming
Sent: Tuesday, June 30, 2020 6:41 PM
To: Di, ChenxuX <redacted>; dev@dpdk.org
Cc: Xing, Beilei <redacted>
Subject: RE: [PATCH v2 5/5] app/testpmd: support query RSS config in flow query


quoted
-----Original Message-----
From: Di, ChenxuX <redacted>
Sent: Monday, June 15, 2020 10:19
To: dev@dpdk.org
Cc: Xing, Beilei <redacted>; Yang, Qiming
[off-list ref]; Di, ChenxuX [off-list ref]
Subject: [PATCH v2 5/5] app/testpmd: support query RSS config in flow
query

This patch support RSS action in flow query.
It can display the RSS configuration of the specified rule.

Signed-off-by: Chenxu Di <redacted>
---
 app/test-pmd/config.c | 55
+++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
f519246c7..7e3cccf9a 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1378,6 +1378,56 @@ port_flow_complain(struct rte_flow_error
*error)  return -err;  }

+static void
+rss_config_display(struct rte_flow_action_rss *rss_conf) { uint8_t i;
+
+if (rss_conf == NULL) {
+printf("Invalid rule\n");
+return;
+}
+
+printf("RSS:\n"
+       " queues:");
Two lines needed? And why don't you add the space in the end of this printf?
quoted
+if (rss_conf->queue_num == 0)
If(!rss_conf->queue_num)
quoted
+printf(" none");
+for (i = 0; i < rss_conf->queue_num; i++) printf(" %d",
+rss_conf->queue[i]);
+
+printf("\n function:");
+switch (rss_conf->func) {
+case RTE_ETH_HASH_FUNCTION_DEFAULT:
+printf(" default\n");
No needed space
quoted
+break;
+case RTE_ETH_HASH_FUNCTION_TOEPLITZ:
+printf(" toeplitz\n");
Same
quoted
+break;
+case RTE_ETH_HASH_FUNCTION_SIMPLE_XOR:
+printf(" simple_xor\n");
...
quoted
+break;
+case RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ:
+printf(" symmetric_toeplitz\n");
..
quoted
+break;
+default:
+printf(" Unknown function\n");
...
quoted
+return;
+}
+
+printf(" types:\n");
Same...
quoted
+if (rss_conf->types == 0) {
+printf("  none\n");
Same...
quoted
+return;
+}
+for (i = 0; rss_type_table[i].str; i++) { if ((rss_conf->types &
+    rss_type_table[i].rss_type) ==
+    rss_type_table[i].rss_type &&
+    rss_type_table[i].rss_type != 0)
+printf("  %s\n", rss_type_table[i].str);
All the same..
quoted
+}
+}
+
 /** Validate flow rule. */
 int
 port_flow_validate(portid_t port_id,
@@ -1564,6 +1614,7 @@ port_flow_query(portid_t port_id, uint32_t rule,
const char *name;  union {  struct rte_flow_query_count count;
+struct rte_flow_action_rss rss_conf;
 } query;
 int ret;
@@ -1585,6 +1636,7 @@ port_flow_query(portid_t port_id, uint32_t rule,
return port_flow_complain(&error);  switch (action->type) {  case
RTE_FLOW_ACTION_TYPE_COUNT:
+case RTE_FLOW_ACTION_TYPE_RSS:
 break;
 default:
 printf("Cannot query action type %d (%s)\n", @@ -1609,6
+1661,9 @@ port_flow_query(portid_t port_id, uint32_t rule,
        query.count.hits,
        query.count.bytes);
 break;
+case RTE_FLOW_ACTION_TYPE_RSS:
+rss_config_display(&query.rss_conf);
+break;
 default:
 printf("Cannot display result for action type %d (%s)\n",
        action->type, name);
--
2.17.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help