From d71bc9e99cbfc9b40382be0f771dfe81cc46ecb8 Mon Sep 17 00:00:00 2001 From: Wisam Jaddo Date: Sun, 30 Aug 2020 11:15:36 +0000 Subject: [PATCH] app/flow-perf: support flag action Introduce flag action support to flow perf application. Signed-off-by: Wisam Jaddo Acked-by: Alexander Kozyrev --- app/test-flow-perf/actions_gen.c | 14 ++++++++++++++ app/test-flow-perf/main.c | 10 ++++++++++ doc/guides/rel_notes/release_20_11.rst | 1 + doc/guides/tools/flow-perf.rst | 3 +++ 4 files changed, 28 insertions(+) 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_11.rst b/doc/guides/rel_notes/release_20_11.rst index a467cb1d77..b3288cc886 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -63,6 +63,7 @@ New Features moreover the app also now starts to support inner items matching as well. * Added header modify actions. + * Added 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. -- 2.20.1