DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] ethdev: support action with any config object type
@ 2019-07-01 14:10 Dekel Peled
  2019-07-02  8:09 ` Andrew Rybchenko
  2019-07-02 14:17 ` [dpdk-dev] [PATCH v2] " Dekel Peled
  0 siblings, 2 replies; 11+ messages in thread
From: Dekel Peled @ 2019-07-01 14:10 UTC (permalink / raw)
  To: adrien.mazarguil, wenzhuo.lu, jingjing.wu, bernard.iremonger,
	yskoh, shahafs, viacheslavo, arybchenko
  Cc: dev, orika

In current implementation, an action which requires parameters
must accept them enclosed in a structure.
Some actions require a single, trivial type parameter, but it still
must be enclosed in a structure.
This obligation results in multiple, action-specific structures, each
containing a single trivial type parameter.

This patch introduces a new approach, allowing an action configuration
object of any type, trivial or a structure.

This patch introduces, in test-pmd, a new macro ARG_ENTRY_HTON, to
allow using a single argument, not enclosed in a structure.

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
 app/test-pmd/cmdline_flow.c        |  8 ++++++++
 doc/guides/prog_guide/rte_flow.rst |  5 +++--
 lib/librte_ethdev/rte_flow.h       | 11 ++++++-----
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 201bd9d..fa7bd13 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -485,6 +485,14 @@ struct token {
 		.size = sizeof(((s *)0)->f), \
 	})
 
+/** Same as ARGS_ENTRY_HTON() for a single argument, without structure. */
+#define ARG_ENTRY_HTON(s) \
+	(&(const struct arg){ \
+		.hton = 1, \
+		.offset = 0, \
+		.size = sizeof(s), \
+	})
+
 /** Parser output buffer layout expected by cmd_flow_parsed(). */
 struct buffer {
 	enum index command; /**< Flow command. */
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index a34d012..67deed7 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -1213,8 +1213,9 @@ Matches an application specific 32 bit metadata item.
 Actions
 ~~~~~~~
 
-Each possible action is represented by a type. Some have associated
-configuration structures. Several actions combined in a list can be assigned
+Each possible action is represented by a type.
+An action can have an associated configuration object.
+Several actions combined in a list can be assigned
 to a flow rule and are performed in order.
 
 They fall in three categories:
diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
index f3a8fb1..2232856 100644
--- a/lib/librte_ethdev/rte_flow.h
+++ b/lib/librte_ethdev/rte_flow.h
@@ -1244,9 +1244,10 @@ struct rte_flow_item {
 /**
  * Action types.
  *
- * Each possible action is represented by a type. Some have associated
- * configuration structures. Several actions combined in a list can be
- * assigned to a flow rule and are performed in order.
+ * Each possible action is represented by a type.
+ * An action can have an associated configuration object.
+ * Several actions combined in a list can be assigned
+ * to a flow rule and are performed in order.
  *
  * They fall in three categories:
  *
@@ -2136,11 +2137,11 @@ struct rte_flow_action_set_mac {
  *
  * A list of actions is terminated by a END action.
  *
- * For simple actions without a configuration structure, conf remains NULL.
+ * For simple actions without a configuration object, conf remains NULL.
  */
 struct rte_flow_action {
 	enum rte_flow_action_type type; /**< Action type. */
-	const void *conf; /**< Pointer to action configuration structure. */
+	const void *conf; /**< Pointer to action configuration object. */
 };
 
 /**
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-07-03 17:45 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-01 14:10 [dpdk-dev] [PATCH] ethdev: support action with any config object type Dekel Peled
2019-07-02  8:09 ` Andrew Rybchenko
2019-07-02  8:42   ` Dekel Peled
2019-07-02  9:57     ` Adrien Mazarguil
2019-07-02 10:11       ` Andrew Rybchenko
2019-07-02 10:15         ` Dekel Peled
2019-07-02 10:17       ` Dekel Peled
2019-07-02 14:17 ` [dpdk-dev] [PATCH v2] " Dekel Peled
2019-07-02 15:07   ` Andrew Rybchenko
2019-07-02 15:15   ` Adrien Mazarguil
2019-07-03 17:45     ` Ferruh Yigit

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).