[05/13] app/flow-perf: add flag action support

Message ID 20200830111544.4190-6-wisamm@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series app/flow-perf: add support for new items/actions |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Wisam Jaddo Aug. 30, 2020, 11:15 a.m. UTC
  Introudce flag action support to flow perf
application.

Signed-off-by: Wisam Jaddo <wisamm@mellanox.com>
Acked-by: Alexander Kozyrev <akozyrev@nvidia.com>
---
 app/test-flow-perf/actions_gen.c       | 14 ++++++++++++++
 app/test-flow-perf/main.c              | 10 ++++++++++
 doc/guides/rel_notes/release_20_08.rst |  1 +
 doc/guides/tools/flow-perf.rst         |  3 +++
 4 files changed, 28 insertions(+)
  

Patch

diff --git a/app/test-flow-perf/actions_gen.c b/app/test-flow-perf/actions_gen.c
index 7e0637595a..9fe11abc94 100644
--- a/app/test-flow-perf/actions_gen.c
+++ b/app/test-flow-perf/actions_gen.c
@@ -428,6 +428,14 @@  add_set_ipv6_dscp(struct rte_flow_action *actions,
 	actions[actions_counter].conf = &set_dscp;
 }
 
+static void
+add_flag(struct rte_flow_action *actions,
+	uint8_t actions_counter,
+	__rte_unused struct additional_para para)
+{
+	actions[actions_counter].type = RTE_FLOW_ACTION_TYPE_FLAG;
+}
+
 void
 fill_actions(struct rte_flow_action *actions, uint64_t *flow_actions,
 	uint32_t counter, uint16_t next_table, uint16_t hairpinq)
@@ -482,6 +490,12 @@  fill_actions(struct rte_flow_action *actions, uint64_t *flow_actions,
 			.mask = FLOW_ACTION_MASK(RTE_FLOW_ACTION_TYPE_SET_TAG),
 			.funct = add_set_tag,
 		},
+		{
+			.mask = FLOW_ACTION_MASK(
+				RTE_FLOW_ACTION_TYPE_FLAG
+			),
+			.funct = add_flag,
+		},
 		{
 			.mask = FLOW_ACTION_MASK(
 				RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
diff --git a/app/test-flow-perf/main.c b/app/test-flow-perf/main.c
index 1f693d4ed1..ae0d1a3be5 100644
--- a/app/test-flow-perf/main.c
+++ b/app/test-flow-perf/main.c
@@ -170,6 +170,7 @@  usage(char *progname)
 		"ipv4 dscp value to be set is random each flow\n");
 	printf("  --set-ipv6-dscp: add set ipv6 dscp action to flow actions\n"
 		"ipv6 dscp value to be set is random each flow\n");
+	printf("  --flag: add flag action to flow actions\n");
 }
 
 static void
@@ -465,6 +466,14 @@  args_parse(int argc, char **argv)
 			.map = &flow_actions[0],
 			.map_idx = &actions_idx
 		},
+		{
+			.str = "flag",
+			.mask = FLOW_ACTION_MASK(
+				RTE_FLOW_ACTION_TYPE_FLAG
+			),
+			.map = &flow_actions[0],
+			.map_idx = &actions_idx
+		},
 	};
 
 	static const struct option lgopts[] = {
@@ -522,6 +531,7 @@  args_parse(int argc, char **argv)
 		{ "dec-ttl",                    0, 0, 0 },
 		{ "set-ipv4-dscp",              0, 0, 0 },
 		{ "set-ipv6-dscp",              0, 0, 0 },
+		{ "flag",                       0, 0, 0 },
 	};
 
 	hairpin_queues_num = 0;
diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst
index 7c9d508a07..eed3900a8c 100644
--- a/doc/guides/rel_notes/release_20_08.rst
+++ b/doc/guides/rel_notes/release_20_08.rst
@@ -281,6 +281,7 @@  New Features
     items matching as well.
 
   * Start supporting header modify actions.
+  * Start supporting flag action.
 
 
 Removed Items
diff --git a/doc/guides/tools/flow-perf.rst b/doc/guides/tools/flow-perf.rst
index e225550e40..69cdd1b222 100644
--- a/doc/guides/tools/flow-perf.rst
+++ b/doc/guides/tools/flow-perf.rst
@@ -303,3 +303,6 @@  Actions:
 *	``--set-ipv6-dscp``
 	Add set IPv6 dscp action to all flows actions.
 	The dscp value to be is random each flow.
+
+*	``--flag``
+	Add flag action to all flows actions.